Repository navigation
Conversation
🦋 Changeset detectedLatest commit: 8f1239c The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
4aebb03 to
f8ae20d
Compare
ac51665 to
3424e1a
Compare
Harbor agent check — advisory20 todo-app trajectories per arm. Pass rates carry Wilson 95% intervals; metric differences are candidate − baseline medians over passed phases with a seeded bootstrap 95% interval, shown only when both arms have at least 3 passes. The primary metric is cache-neutral cost; the storage section compares arms within one storage block. Local mock mode only; nothing is deployed.
Packed packages differ between arms. Trials
Pass rate
Passed-phase medians (IQR)
† Descriptive, not comparable across arms: new input (uncached input + cache writes) and cache read depend on prompt-cache warm-up order, so no difference is reported for them. Candidate − baseline
Δ is the difference of medians (percent of the baseline median) [bootstrap 95% interval]. A phase passes when it and every earlier phase passed with complete accounting in one session. Trials without a result or with an infrastructure error are excluded from rates. Cache-neutral cost is the primary metric: each phase at the pinned model’s list prices as if its own session wrote every context token to the prompt cache once (context growth at the cache-write rate, the rest of the input processed at the cache-read rate, output at the output rate), so it does not depend on which concurrent session warmed the cache. Input processed = uncached input + cache writes + cache reads. List-price cost is Claude Code’s estimate, not AWS billing, and is secondary: it moves with cache hits from other sessions. Failed or incomplete work is excluded from metrics: less usage there is not an efficiency win. Storage block
The storage block the create phase constructed, read from its snapshot. It moves cost by itself, so a different storage mix between arms shifts the pooled medians above. Costs here are whole-run medians over trials that passed every phase; a difference is shown only when both arms have at least 3 such passes in that storage. |
Rename the second ApiNamespace constructor parameter from `name` to `label` and document it: clients never send it, they call a namespace by the name it is exported under from the backend module. Update the BlocksRequest.apiNamespace JSDoc and two codegen comments to use the same term. No runtime change.
48c2333 to
8f1239c
Compare
Problem
The second
ApiNamespaceconstructor parameter is namednameand has no documentation, sonew ApiNamespace(scope, name, handler)reads as the name clients call. Clients call a namespace by the name it is exported under from the backend module: dispatch resolvesapiNamespaceas an export of the backend module (resolveApiNamespaceinrpc-dispatch.ts), the client generator emits one client per export, and the shared gateway keys namespace routes on the export name (resolveNamespaceRoutesincdk/shared-gateway.ts). The constructor string only marks the handler as an API namespace. For example, the auth Building Blocks'createApi()passes'auth', and apps export the result asauthApi, which is the name clients call.mainalready documents the client side: theBlocksRequest.apiNamespaceJSDoc says it holds the backend export name, and the templateAGENTS.mdsays the namespace is the exported variable name. This PR covers the constructor parameter.Issue #, if available: N/A
Changes
ApiNamespaceConstructorand theApiNamespaceclass: rename the second parameter fromnametolabel, and document it with@param label: clients never send it, soexport const api = new ApiNamespace(scope, 'todos', handler)is called asapi.list(). This is a parameter rename only; callers pass the same positional argument, andApiNamespaceConstructoris not exported from the package entry point, so the API report is unchanged.BlocksRequest.apiNamespaceand theAPI_NAMESPACE_COMPUTEdocs: "the constructor'sname" becomes "the constructor'slabel". No other wording changes.generate-spec.tsandextract-ts-types.tsuse the samelabelterm.@aws-blocks/corepatch changeset. No runtime change.Validation
No test added: the change is a parameter rename plus documentation, and export-name dispatch is already covered by
rpc-dispatch.test.ts. On Node 22.23.1, rebased onmain(b16e5b68):npm ci,npm run build,npm run lint,npm run lint:depsandnpm run check:apipassed, each with exit status 0; the API report is unchanged.npm test: 6150 passed, 0 failed, 7 skipped.npx tsx scripts/changeset-guard.ts verify-coverage: all changed packages covered.Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.