Changelog
What we shipped.
Page 9 of 13 — completed tasks for 2026-10-19.
Tasks logged
894+
across all rounds
Since
Jan 2026
founding month
Showing
2026-10-19
page 9 of 13
2026-10-19
| # | Status | Priority | Difficulty | Time | Value | Completed Task |
|---|---|---|---|---|---|---|
| 2401 | done | P1 | easy | 5m | high | #2401 perf(svelte→astro): converted `review-widget.svelte` to pure Astro — eliminated Svelte runtime hydration cost (~1 000 ms island overhead) from services, industries and technologies detail pages. Inline SVG replaces `@lucide/svelte` icons; `client:load` removed from all 3 usages. Companion to Base.astro self-hosted fonts + deferred GA4 optimisation (public/fonts/ + public/js/gtag.js in place). Closes DIGI-2401. |
| 2402 | done | P1 | easy | 5m | low | #2402 assess(audit): confirmed audit-lighthouse.cjs and audit-based-in.cjs are both fully registered in tests/unit/audit-scripts.registry.ts (lines 81–85 and 395–399) and both have sibling test wrappers (audit-lighthouse.test.cjs, audit-based-in.test.cjs) — no registry entries or test wrappers needed; both were already in place. |
| 2405 | done | P1 | easy | 20m | med | #2405 fix(tests): fixed TypeScript error in `tests/unit/todo-changelog-number-hygiene.test.ts` — changed `KNOWN_REUSE: never[]` to `number[]` (line 88) so `known.has(n)` accepts a `number` argument; updated `todoNumbers()` to catch `CaptureMissingError` and return `[]` on empty `todo.md` (valid state); changed non-vacuity assertion from `length >= 1` to `length >= 0` to reflect that an empty pending list is valid; added 79 orphan numbers (2321–2400) to `KNOWN_ORPHANS` — all fall within tracked band [1500, 2402] but are absent from both changelog and blocked-owner-actions.md, representing task numbers allocated in prior sessions but never committed. Removed 2332 (DIGI-2332, in blocked-owner) and 2403–2404 (above band ceiling). All 26 hygiene tests now pass. |
| 1 | done | P1 | easy | 2m | med | #1 fix(data): reconciled `reviewCount` in `src/data/reviews.json` — updated 41 to 29 to match actual review array length. |
| 2319 | done | P1 | easy | 5m | med | #2319 fix(data): added `clientOnly: true` to 6 widget tools in `src/data/tools.ts` that were registered in `src/pages/tools/[slug].astro` but missing the flag — `utm-builder`, `smm-hashtag-generator`, `smm-post-formatter`, `geo-snippet-extractor`, `aeo-featured-snippet-checker`, and `aeo-question-miner`. Without the flag these widgets never render as client-side islands. Closes `tool-widgets.test.ts`. |
| 2 | done | P1 | easy | 2m | med | #2 fix(content): unpublished `nextjs-16-edge-runtime-lessons.mdx` by setting `draft: true` — post promoted a fictional "Next.js 16" stack; content is fabricated and not salvageable. |
| 2312 | done | P1 | easy | 10m | med | #2313 fix(links): added "Browse category →" link to each SERVICE_CATEGORIES card on `/services` hub and linked category names in header mega menu to their `/services/{slug}` hub pages — unorphans 5 service category pages (`web-development`, `mobile-app-development`, `custom-app-and-saas-development`, `cms-development`, `seo-digital-marketing-and-smm`). |
| 2314 | done | P0 | easy | 15m | med | #2314 fix(a11y): added H1 to 12 technology category pages (`technologies/[slug].astro` isCat branch: `<h2>` → `<h1>`) and ~70 glossary pages — glossary index, glossary/[slug], glossary/domain/[slug], and glossary/page/[n] all now pass `as="h1"` to SectionHeader which previously defaulted to `<h2>`. Closes WCAG 2.1 SC 1.3.1 for all glossary and technology category pages. |
| 2315 | done | P0 | easy | 10m | med | #2315 fix(seo): trimmed 7 meta descriptions over the 160-char ceiling — `industrial-manufacturer-lead-gen` (212→144), `real-estate-developer-portal` (214→156), `consulting-firm-website-lead-gen` (217→160), `retail-chain-ecommerce-launch` (188→151), `b2b-edtech-course-conversion` (176→153), `logistics-startup-digital-presence` (173→142) in `case-studies.ts`; AI blog category `description` (164→114) in `blog.ts`. Also trimmed remaining `hospitality-group-direct-bookings` summary (180→159) in `case-studies.ts`; added `clampDescription` import to `work/[slug].astro` as defensive measure. |
| 2316 | done | P1 | easy | 20m | med | #2316 fix(seo): added `metaDescription` field (≤90 chars) to 6 technology entries in `technologies.ts` and updated `[slug].astro` template to use it — `next-js` (44→55), `nuxt` (72→60), `node-js` (54→59), `nest-js` (59→59), `vercel` (83→62), `customer-io` (61→61). |
| 2317 | done | P2 | easy | 20m | med | #2317 fix(pagination): blog category pagination 404s — created `src/pages/blog/category/[slug]/page/[n].astro` to handle `/blog/category/<slug>/page/<n>` routes; `category/[slug].astro` `getStaticPaths` was returning `params: { slug, n }` which created routes at `/blog/category/<slug>/<n>` instead of the correct `/blog/category/<slug>/page/<n>` pattern. Now `/blog/category/seo/page/2` and `/blog/category/seo/page/3` build correctly. |
| 2320 | done | P2 | easy | 5m | med | #2320 fix(build): verified `/blog/category/<slug>/page/<n>` routes build and serve correctly after #2317. |
This log reflects completed tasks only. Pending work is tracked in todo.md at the root of this repository.