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

Completed tasks for this batch, with the status, priority, difficulty, time taken, value score and what changed.
#StatusPriorityDifficultyTimeValueCompleted Task
2401doneP1easy5mhigh#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.
2402doneP1easy5mlow#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.
2405doneP1easy20mmed#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.
1doneP1easy2mmed#1 fix(data): reconciled `reviewCount` in `src/data/reviews.json` — updated 41 to 29 to match actual review array length.
2319doneP1easy5mmed#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`.
2doneP1easy2mmed#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.
2312doneP1easy10mmed#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`).
2314doneP0easy15mmed#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.
2315doneP0easy10mmed#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.
2316doneP1easy20mmed#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).
2317doneP2easy20mmed#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.
2320doneP2easy5mmed#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.