chore(plan-9): final verification + changelog summary

Straggler fixes: web-next and web-tanstack app callers did not pass {}
to queryOptions()/caller calls after Plan 9 added .input(z.object({}).strict())
to siteSettings and header procedures. All 360 tests pass, full typecheck
green across 14 packages. Refactor log §7 updated with verification summary.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-06 16:07:36 +02:00
parent 2b67964213
commit 2df137c70c
3 changed files with 21 additions and 4 deletions

View File

@@ -7,8 +7,8 @@ export default async function Home() {
const caller = appRouter.createCaller({});
const [siteSettings, header, articles] = await Promise.all([
caller.marketingPages.siteSettings(),
caller.navigation.header(),
caller.marketingPages.siteSettings({}),
caller.navigation.header({}),
caller.blog.listArticles({ status: "published", limit: 20 }),
]);

View File

@@ -9,8 +9,8 @@ export const Route = createFileRoute("/" as any)({
function Home() {
const trpc = useTRPC();
const siteSettings = useQuery(trpc.marketingPages.siteSettings.queryOptions());
const header = useQuery(trpc.navigation.header.queryOptions());
const siteSettings = useQuery(trpc.marketingPages.siteSettings.queryOptions({}));
const header = useQuery(trpc.navigation.header.queryOptions({}));
if (siteSettings.isPending || header.isPending) {
return <main>Loading</main>;

View File

@@ -155,6 +155,23 @@ media: 4 new R26 tests in router.test.ts — NOT_FOUND on getMedia with nonexist
no-op (defineErrorMiddleware uses `instanceof`), but ensures correct
serialization, stack-trace labels, and JSON inspectability.
### Plan 9 final verification (Task 8, 2026-05-06)
- pnpm typecheck / lint / test / turbo boundaries / build: all green after fixing 2 Plan 9 regressions in app callers (see stragglers below).
- Total tests: 360 across 15 test suites. Net delta vs pre-Plan-9: +144 tests (Plan 9 added R25 output-validation + R26 router error-mapping + R27/R28 presenter shape tests across all 5 features).
- Spec §8 acceptance criteria sweep:
- All non-test use cases export xInputSchema. ✓
- Non-void use cases also export xOutputSchema (void exempt: sign-out, delete-media). ✓
- All non-void controllers have `function presenter`; void controllers (sign-out, delete-media) return Promise<void>. ✓
- 5 procedures.ts files (one per feature). ✓
- 5 ./ui subpath entries in package.json. ✓
- All error classes set this.name (R6 satisfied after `9663c82`). ✓
- R26 router error-mapping tests pass for all 5 features (46 tests each). ✓
- Stragglers fixed in this task (Plan 9 regressions, NOT pre-existing):
- `apps/web-tanstack/src/routes/index.tsx``queryOptions()``queryOptions({})` for siteSettings and header (both procedures now require `{}` input after Plan 9 added `.input(z.object({}).strict())`).
- `apps/web-next/src/app/page.tsx``caller.marketingPages.siteSettings()``caller.marketingPages.siteSettings({})` and `caller.navigation.header()``caller.navigation.header({})` (same root cause).
- Pre-existing items (NOT introduced by Plan 9): none.
---
## Doc update checklist (deferred — combined with paused Plan 8 doc pass)