david pushed to fse-migration at david/daw

  • 90a0275d3b feat: FA Pro kit → SVG sprite pipeline (dw_icon helper) bin/build-icons.mjs combines the FA Pro kit's pre-built per-style sprites (@awesome.me/kit-*) into one namespaced icons.svg (40 icons, ~41 KB) — wired into `npm run build` + `npm run icons`. inc/template.php adds dw_icon('name') (→ <svg class=dw-icon><use href=#dw-name>) and injects the sprite once on wp_footer. .dw-icon CSS sizes it like a font glyph. Verified: helper output, sprite injection, build. This replaces the 689 KB FA webfont once the markup is migrated (next).

2 days ago

david pushed to fse-migration at david/daw

  • 4d10e1acf3 note: keep FontMfizz (FA lacks nginx/postgres/etc) — FA kit covers only the FA-font icons

1 week ago

david pushed to fse-migration at david/daw

  • 6e357fd287 note: FontMfizz → FA kit confirmed (drop the font, source 14 icons from the kit sprite)

1 week ago

david pushed to fse-migration at david/daw

  • 257d61a922 security: untrack .npmrc (token must never be committed) Installing the kit wrote the raw FA Pro token into .npmrc, which was tracked. Untracked it (git rm --cached) + gitignored it, so the token-bearing local file can never be committed. Added .npmrc.example as the committed template. Verified the token is not in HEAD, staged content, or history.

1 week ago

david pushed to fse-migration at david/daw

  • 117796dde9 chore: FA Pro kit — add @awesome.me scope to .npmrc, update plan User created an FA Pro kit, so the icons come from the kit npm package (@awesome.me/kit-<id>), not @fortawesome/pro-*-svg-icons. Added the @awesome.me scope to .npmrc (same FA registry + env-var token); plan note updated accordingly.

1 week ago

david pushed to fse-migration at david/daw

  • c6d05a3a2f chore: scaffold FA Pro .npmrc (env-var token, no secret committed) Committed .npmrc sets the @fortawesome registry + reads the auth token from ${FONTAWESOME_NPM_TOKEN} at install time (no token in the file). Token lives in the shell env (~/.zprofile), never in git. .gitignore covers .env/.env.*/.npmrc.local as a safety net. Plan note updated to the env-var approach.

1 week ago

david pushed to fse-migration at david/daw

  • 434dc0421b decruft: split FullCalendar to an About-only bundle (−263 KB site-wide) FullCalendar is only used by the About #calendar but was bundled site-wide. New webpack entry src/fullcalendar.js → js/v4-fullcalendar.min.js (+ keep css/v4-fullcalendar.css standalone); removed it from src/main.js and src/legacy-style.js; dw_scripts enqueues both on is_page('about') only, before about.js consumes window.FullCalendar. Site-wide v4-script.min.js 503→240 KB, v4-style.min.css 278→253 KB. About unchanged (loads the split bundle).

1 week ago

david pushed to fse-migration at david/daw

  • c98a4413c7 decruft: drop animate.css + WOW entirely (−78 KB) Removed both npm deps (animate.css, wowjs), their imports from src/legacy-style.js and src/main.js, and the 4 `new WOW().init()` calls (about/studio/art/desk.js) — those would otherwise crash now that window.WOW is gone (the Modernizr pattern). The 26 inert .wow/fadeIn* classes stay in markup (trivial to re-enable). Rebuilt: v4-style.min.css 348→278 KB, v4-script.min.js 511→503 KB. All pages 200.

1 week ago

david pushed to fse-migration at david/daw

  • 582a8ba430 decruft: trim FontMfizz to woff-only (−372 KB) FontMfizz (14 brand logos in the About icon-grid) was 390 KB across eot/woff/ttf/svg; the woff is only 28 KB. Dropped eot/ttf/svg + the redundant @font-face srcs in fonts.css. Icons still render via woff. Full removal (the 14 brand logos → FA-Pro Brands sprite) deferred so they aren't hand-sourced twice. fonts/ 1804 → 1432 KB.

1 week ago

david pushed to fse-migration at david/daw

  • b9f7df3d0e decruft: re-add Bootstrap alert + pagination partials (used live) The subset dropped two partials that are actually used: .alert (contact-form success/error in inc/tweaks.php) and .pagination (paginate_links helper in inc/template.php). Re-added both (small). Mark Bootstrap subset done in the checklist.

1 week ago

david pushed to fse-migration at david/daw

  • 76f5f675e9 decruft: subset Bootstrap to used partials (−49 KB CSS) styles.scss now imports only the Bootstrap 5 parts the theme uses (grid, containers, offcanvas, carousel, nav/navbar, forms, buttons, tables, list-group, card, utilities API) instead of the full framework. Dropped: dropdown, button-group, accordion, breadcrumb, pagination, badge, alert, progress, toasts, modal, tooltip, popover, spinners, placeholders. Added variables-dark to the foundation for correct map ordering; removed the stale BS4-era commented import list. v4-style.min.css 393 → 344 KB. (Full Bootstrap removal is the end-state; this is the no-markup-change interim win.)

1 week ago

david pushed to fse-migration at david/daw

  • fb7e863cf6 note: record decruft progress + icon/font strategy in upgrade-plan (Phase 5)

1 week ago

david pushed to fse-migration at david/daw

  • da4190b9e9 decruft: drop bootstrap-icons → inline SVG (font + ~2000 CSS rules + dep) The header's 8 nav icons are the only bootstrap-icons usage. Replaced them with inline <svg> in parts/header.html (paths from node_modules), removed the styles.scss @import (which injected ~2000 .bi-* rules + the @font-face), deleted the font files (woff+woff2, 314KB), and dropped the npm dependency. v4-style.min.css 472→393 KB. Icon-only links (Home/Sitemap) gained aria-labels. Verified: 8 inline SVGs render, no bi usage left, all pages 200, bespoke homepage unaffected.

1 week ago

david pushed to fse-migration at david/daw

  • 82283fc387 note: mark CM + Glyphicons decruft done

1 week ago

david pushed to fse-migration at david/daw

  • f22c136736 decruft: trim Computer Modern fonts (woff-only) + drop Glyphicons (~2.9 MB) Fonts dir 5.0 MB -> 2.1 MB. Computer Modern was 8 weights x 4 formats; keep woff for the 5 used weights (cmunrm/bx/sl/sx/obx), drop all ttf/eot/svg + the unused CM Bright (cmunbbx) and unreferenced cmunbmr/cmunbsr. style.css @font-face + the .cm-bright class pruned; theme.json CM fontFace -> woff only. Glyphicons (Bootstrap-3 leftover) deleted — not loaded by the active bundle (only legacy non-enqueued boot.css/style.min.css referenced it). Rebuilt v4-style.min.css.

1 week ago

david pushed to fse-migration at david/daw

  • c009e78ba8 note: decruft checklist (quantified fonts/css/js cruft) Extend dependencies.md with a concrete, quantified decruft inventory: fonts (~4.9MB; Computer Modern 3.2MB, FA 689KB, FontMfizz 390KB, BS Icons 306KB, Glyphicons 208KB), CSS (472KB built; animate 93KB, fullcalendar 40KB, Bootstrap full), JS bundles, with used-by + drop-when per item. Recommended first cut: CM format trim + Glyphicons removal + BS-icons subset (~3MB, design-neutral).

1 week ago

david pushed to fse-migration at david/daw

  • b7055760e5 phase 3 (branch): flip to block theme (hybrid) Add templates/index.html → wp_is_block_theme() now true. Hybrid behavior verified: most-specific template wins, ties go to the block template. So generic content (posts/search/404/blog/generic pages) now renders via the block templates, while homepage (front-page.php), page-{slug}.php, and category/tag.php stay classic (more specific) until migrated. Health-swept: 200, no fatals. Decision: embrace block styling for generic pages. Migration is now incremental (author templates/page-{slug}.html → tie-beats the classic file → delete classic). main stays fully classic; this is all on the fse-migration branch.

1 week ago

david pushed to fse-migration at david/daw

  • 92548898a4 phase 3 (branch): foundational FSE templates (no flip yet) Add templates/{page,single,archive,search,404}.html — compose the header/footer parts + standard blocks (post-title/post-content, query loop, comments), modeled on the srh reference but simplified to daw's aesthetic. Correct footer part per template (single/search/page -> footer; archive/404 -> footer-home). Deliberately NO templates/index.html yet, so wp_is_block_theme() stays false and the site remains classic/unflipped. All five parse with no unregistered blocks. Next: bespoke page templates, then add index.html to flip + test.
  • e0d1eb21e2 phase 3: header -> FSE template part (bridged) Same pattern as the footers. Header chrome (navbar + offcanvas nav) now lives in parts/header.html; header.php keeps only the document <head> + wp_head() + <body> open (can't live in a block part) then calls block_template_part('header'). - Nav links -> root-relative (domain-agnostic). - theme.json registers the header part (area "header"). - Verified now/contact/about/studio render header + offcanvas + Work, 200, no errors; bespoke front-page.php unaffected. All shared chrome (header + both footers) is now in parts/, live via the bridge and ready for the FSE flip.
  • 1b3c4b5e88 phase 3: footers -> FSE template parts (bridged) Migrate both footer variations to block template parts, kept live in the classic theme via block_template_part(): - parts/footer.html (minimal) + parts/footer-home.html (full nav + social + cookie), block markup in wp:html blocks preserving the Bootstrap structure + JS hooks. - footer.php / footer-home.php reduced to shims: block_template_part(...); wp_footer(); + </body></html>. - theme.json declares both parts (area "footer"). - home_url() links -> root-relative (/about ...): parts can't run PHP, and it's domain-agnostic ahead of the davidawindham -> davidwindham move. block_template_part() resolves parts/*.html in a classic theme (verified), so these render now AND are wired for the FSE flip. Establishes the migration pattern.
  • d7c657cacd phase 3: consolidate to one header, loader opt-in Retire header-home.php (the nested Font Awesome sidebar/offcanvas nav). About + Studio now use the single header.php (flat Bootstrap Icons horizontal nav) like the rest of the site — the full navigation lives in the footer now, so the header only needs the minimal nav. Preloader preserved on those two pages via get_template_part('loader') in their page templates (loader.php is self-contained: fixed overlay + own vanilla hide-JS). header.php is now the theme's only header. Orphaned (left for a later CSS-trim pass): the #nav / #nav.affix rules in style.css.
  • 5716b79e3b note: /work nav + domain migration plan

1 week ago

david created new branch fse-migration at david/daw

1 week ago

david pushed to main at david/daw

  • e0d1eb21e2 phase 3: header -> FSE template part (bridged) Same pattern as the footers. Header chrome (navbar + offcanvas nav) now lives in parts/header.html; header.php keeps only the document <head> + wp_head() + <body> open (can't live in a block part) then calls block_template_part('header'). - Nav links -> root-relative (domain-agnostic). - theme.json registers the header part (area "header"). - Verified now/contact/about/studio render header + offcanvas + Work, 200, no errors; bespoke front-page.php unaffected. All shared chrome (header + both footers) is now in parts/, live via the bridge and ready for the FSE flip.

1 week ago

david pushed to main at david/daw

  • 1b3c4b5e88 phase 3: footers -> FSE template parts (bridged) Migrate both footer variations to block template parts, kept live in the classic theme via block_template_part(): - parts/footer.html (minimal) + parts/footer-home.html (full nav + social + cookie), block markup in wp:html blocks preserving the Bootstrap structure + JS hooks. - footer.php / footer-home.php reduced to shims: block_template_part(...); wp_footer(); + </body></html>. - theme.json declares both parts (area "footer"). - home_url() links -> root-relative (/about ...): parts can't run PHP, and it's domain-agnostic ahead of the davidawindham -> davidwindham move. block_template_part() resolves parts/*.html in a classic theme (verified), so these render now AND are wired for the FSE flip. Establishes the migration pattern.

1 week ago

david pushed to main at david/daw

  • d7c657cacd phase 3: consolidate to one header, loader opt-in Retire header-home.php (the nested Font Awesome sidebar/offcanvas nav). About + Studio now use the single header.php (flat Bootstrap Icons horizontal nav) like the rest of the site — the full navigation lives in the footer now, so the header only needs the minimal nav. Preloader preserved on those two pages via get_template_part('loader') in their page templates (loader.php is self-contained: fixed overlay + own vanilla hide-JS). header.php is now the theme's only header. Orphaned (left for a later CSS-trim pass): the #nav / #nav.affix rules in style.css.

1 week ago

david pushed to main at david/daw

  • 5716b79e3b note: /work nav + domain migration plan

1 week ago

david pushed to main at david/daw

  • 85b40e1555 readme
  • 1f5f009cfb footer: add remaining sidebar nav items, alphabetized Add the header-home sidebar links not already in the footer (Home, Archive, TIL, Audio, Email, Pay, Guests) and alphabetize all 19 across three balanced, floated columns (the 3rd ul lacked float:left, which dropped Pay/Guests out of column).
  • 5cc63edd33 nav: blog index -> horizontal header index.php switches from header-home (sidebar nav) to the default header.php (horizontal). Studio stays on header-home (keeps its preloader); About keeps the sidebar nav.
  • 71e997b8fb nav: reorder + add Work item Homepage and header nav reordered to About - Contact - Desk - Now - Studio - Work. New Work item links to /work (briefcase icon in the header). Header keeps the Home and Sitemap icons on either end.
  • View comparison for these 4 commits »

1 week ago

david pushed to main at david/daw

  • 0fdc2064bd fix homepage font (dequeue global styles on front page) front-page.php is fully self-contained (no wp_head, hand-rolled critical CSS, zero blocks/presets), but WordPress still injected theme.json's global styles into its footer. The body + h1-h6 element rules overrode the homepage's inline typography (serif -> sans, and the card headings jumped to the theme.json type scale). Dequeue 'global-styles' on is_front_page() only; the rest of the site keeps theme.json intact.

1 week ago

david pushed to main at david/daw

  • 17738bd8af fix php 8 warnings (studio thumb, GF date) - page-studio.php: guard $img_url[0] (empty when a studio post has no thumbnail and no featured_image_url meta) + esc_url it. Kills "Undefined array key 0". - inc/form.php: declare DW_GF_Date::$_args (PHP 8.2 dynamic-property deprecation).

1 week ago

david pushed to main at david/daw

  • c736e7fa05 browsersync reload via rest hooks Replace the .bs-reload sentinel-file touch (+ its webpack file-watch) with a direct, non-blocking ping to BrowserSync's reload endpoint on the REST save events the block editor actually fires (rest_after_insert_page/post) plus customizer + nav-menu saves. WP_DEBUG-gated. Removes the .bs-reload file and its .gitignore entry.
  • dbb7537288 rm dead features + legacy cruft Pre-Phase-3 simplification — remove unused features, a duplicate header, stale config. - page-chat (abandoned Twilio): page-chat.php + chat.{js,min.js,_func.js} + css/chat.css + front.min.{js,css}; /chat/ page trashed. - DAW Online / Messenger status feature: the dwstatus settings page + functions (inc/tweaks.php), the front-page.php call, css/messenger.css, the orphaned pre-webpack js/front-page.min.js, and the stale unloaded root tweaks.php. - header-studio.php (byte-dup of header-home) -> page-studio uses get_header('home'). - Orphaned js/terminal.js (old terminal emulator, replaced by davo-bot). - Legacy config: .tm_properties (TextMate), .scrutinizer.yml (unused CI).
  • View comparison for these 2 commits »

1 week ago

david pushed to main at david/daw

  • 69b0a849ca theme.json Phase 2: add a v3 theme.json design-token foundation, ported from the theme's real tokens in style.css/styles.scss (not the srh reference's identity). - Palette (12): maroon link #67000a, link-hover #2a6496, terminal green #34f743, slate/slate-deep page bgs, base/surface/ink/contrast/coral/meta/border. - Typography: 7-step scale (x-small .75rem -> display 3.75rem); 4 families incl. Computer Modern (fontFace -> existing fonts/cmun*), Georgia, Helvetica Neue, Courier. - Layout: contentSize 1170 / wideSize 1280. Element styles: h1-h6 scale, link colors, #000 headings, button. Theme stays classic: front end remains v4-style.min.css-driven (global styles inject via low-specificity :where()); theme.json powers the editor + Phase-3 blocks. useRootPaddingAwareAlignments:false; front-page.php (no wp_head) unaffected. Verified valid + /, /about/, /studio/ all 200.

1 week ago

david pushed to main at david/daw

  • afe636e76c gulp teardown Retire gulp entirely now that webpack (@wordpress/scripts) builds everything. - Delete gulpfile.js + 8 gulp-only devDeps (gulp, gulp-clean-css/concat/rename/ sass/terser/uglify, streamqueue); keep browser-sync + sass (webpack uses both). - Remove 19 orphaned files: gulp vendor copies (v4-jquery/bootstrap/fullcalendar/ svg-morpheus.js + bootstrap.bundle.js.map), dropped gulp JS inputs (modernizr/ validate/scripts/svg-morpheus/messenger), superseded outputs (script.min/ validate.min/fullcalendar(.min)/moment.min/drawfillsvg), orphaned CSS (v4-animate.css, styles.css, v4-front.min.css). - Keep front.min.js (page-chat.php loads it) + non-build orphans terminal/code/color. - Update webpack.config.js header + CLAUDE.md Build section to webpack-only. npm run build verified clean; outputs unchanged.

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

  • 418a9ae7f7 js upgrades Migrate the JS bundles from gulp to the webpack (@wordpress/scripts) build, sourcing vendor from npm so it stays npm-updatable. - src/front.js -> js/v4-front.min.js (jquery + svg-morpheus + front-page.js) - src/main.js -> js/v4-script.min.js (jquery, bootstrap, fullcalendar, wowjs, js-cookie, jquery-validation/backstretch/lazyload + vendored DrawFillSVG/Rainbow) - Drop the 2,834-line scripts.js pile + modernizr/messenger/terminal. - Fix DrawFillSVG: replace Modernizr.prefixed('transition') (now-dropped global, was crashing the whole bundle) with the unprefixed "transitionend". - Fix FullCalendar v5 exposure: namespace import (its exports carry __esModule with no .default, so a default import unwrapped to undefined). Verified every dependency resolves via a jsdom harness loading the built bundle.

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

  • 96cb021d47 upgrade bootstrap-icons 1.13 + animate.css to npm source

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

1 week ago

david pushed to main at david/daw

  • 22698388d6 v0.5.0 Phase 1: @wordpress/scripts (v30) + webpack build toolchain

1 week ago

david pushed to main at david/daw

  • e6bf318c71 front-page: position card a quarter down the page

2 weeks ago

david pushed to main at david/til

2 weeks ago

david pushed to main at david/daw

2 weeks ago

david pushed to main at david/srh-edit-public

  • a8b710b4fa Re-export 2026-06-11 17:04 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

2 weeks ago

david pushed to main at david/srh-edit-public

  • 8f2acb6f06 Re-export 2026-06-11 17:04 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

2 weeks ago

david pushed to main at david/dw

2 weeks ago

david pushed to main at david/dw

  • 42d1a6d22b Rebuild app/ with today's changes; bundle davo-bot into dw.js Move the davo-bot loader inside the build:js block so useref bundles it into app/js/dw.js (the assets task copies only img/fonts, so a standalone js/ask-widget.js would be referenced but never shipped to app/). Rebuild the app/ output (gulp mixin/build/assets/html) so the bundled CSS uses the relative ../fonts and ../img paths, dw.js carries the widget loader, and the footer Updated date is current.

2 weeks ago

david pushed to main at david/dw

  • 9904b3c55f Wire in davo-bot tag + index cleanups - Embed the davo-bot widget loader and add a rel=canonical link - Fix JSON-LD image path (img/ogt_image.jpg) and vendor img alt text - Guard the opendate calendar handler against a missing element (it threw a TypeError on every load) - Drop a stray semicolon; bump the footer Updated date
  • b04a59becc Use relative font/image paths in CSS Absolute /fonts and /img URLs 404'd when the site is served under a subpath (e.g. dw.stu/dw), breaking the Bootstrap icons, Gaegu font, and background SVGs. Relative ../ paths resolve under both the subpath and the production root. Also updates the bootstrap-icons font-dir in the SCSS source.
  • 654c640f0f Add davo-bot 2000 widget loader Cross-origin loader for davidwindham.com (a different origin from the davidawindham.com /ask proxy): probes the widget bundle and injects it only when the response is really JavaScript, so it's a silent no-op when the backend is down.
  • View comparison for these 3 commits »

2 weeks ago

david pushed to main at david/srh-edit-public

  • 09578b0524 Re-export 2026-06-11 12:10 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

2 weeks ago

david pushed to main at david/srh-edit-public

  • 63a3f904b6 Re-export 2026-06-11 11:59 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

2 weeks ago

david pushed to master at david/dw-guten

  • 5fa202141d v0.4 — rebuild for WP 7.0: no-build Post Meta sidebar (og:video/og:image/meta_desc) + sup/sub formats

2 weeks ago

david created new branch master at david/dw-guten

2 weeks ago

david created repository david/dw-guten

2 weeks ago

david pushed to main at david/daw

2 weeks ago

david pushed to main at david/daw

2 weeks ago

david pushed to main at david/srh-edit-public

  • e9fe9473a7 Re-export 2026-06-08 15:00 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

2 weeks ago

david pushed to main at david/til

3 weeks ago

david pushed to main at david/til

3 weeks ago

david pushed to main at david/til

3 weeks ago

david pushed to main at david/til

3 weeks ago

david pushed to main at david/til

3 weeks ago

david pushed to main at david/til

3 weeks ago

david pushed to main at david/srh-edit-public

  • afe2d41c58 Re-export 2026-06-04 17:05 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

3 weeks ago

david pushed to main at david/srh-edit-public

  • 5ed16697d3 Re-export 2026-06-04 17:03 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

3 weeks ago

david pushed to main at david/srh-edit-public

  • c3fbf91c39 Re-export 2026-06-04 14:31 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

3 weeks ago

david pushed to main at david/srh-edit-public

  • 597dfca356 Re-export 2026-06-04 12:13 EDT Source: wp-content/themes/srh/static-export/ in windhamdavid/srh-edit Files: header.html footer.html subdomain-shell.css Asset URLs absolute against https://www.selfregional.org/.

3 weeks ago

david created new branch main at david/srh-edit-public

3 weeks ago

david created repository david/srh-edit-public

3 weeks ago

david pushed to main at david/til

1 month ago

david pushed to main at david/til

1 month ago

david pushed to main at david/til

1 month ago

david pushed to main at david/til

1 month ago

david pushed to main at david/til

1 month ago

david pushed to main at david/til

2 months ago

david pushed to main at david/til

2 months ago

david pushed to main at david/til

2 months ago

david pushed to main at david/til

2 months ago

david pushed to main at david/til

2 months ago

david pushed to main at david/til

2 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/til

3 months ago

david pushed to main at david/dw

5 months ago

david pushed to main at david/daw

5 months ago

david pushed to main at david/til

5 months ago

david pushed to main at david/til

5 months ago

david pushed to main at david/gwp

5 months ago

david pushed to main at david/gwp

5 months ago

david pushed to main at david/gwp

5 months ago

david pushed to main at david/gwp

5 months ago

david pushed to main at david/daw

5 months ago