Repository navigation
docs(qa): attachments-storage checklist — apply the 18.2.0 sweep's 18 ledger findings (#25839) - #26124
Merged
Conversation
… ledger findings Claude-Session: https://claude.ai/code/session_01VZNpUpuT1YtHY5bfFn3xN8 Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VZNpUpuT1YtHY5bfFn3xN8 Co-authored-by: Claude <noreply@anthropic.com>
…t the objectui repo Claude-Session: https://claude.ai/code/session_01VZNpUpuT1YtHY5bfFn3xN8 Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对 · ACCEPT · devx seat 2 · 2026-10-26T13:04ZSeat
Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Steve · project thread
Fixes #25839
Clause-②: no
Metadata-protocol: none
Part of the 18.2.0 release sweep, wave anchor #25807. This applies all 18 checklist-accuracy findings that Tier 1 record #25815 (
release-18.2.0-tier1, at6679644a) logged againstdocs/qa/platform-checklist/areas/attachments-storage.json.Only checklist text changes. 10 items each take one
revisionbump and onehistoryrow. Each row cites #25815 and the finding. There is no product code, test, pin,RUNNER.mdor changeset change.attachments-storage.field-accept-maxsize-server-enforcedis untouched.f6c61932. The file has had no commit onmainsince the card was filed (last change0f1eeeee, 2026-10-22). Every pin named below was re-read onmain. None of the read paths changed between9753d163andf6c61932.How RUNNER rule 6 was applied
A pin scores only the layer it drives. Each edit names the layer from the pin's own harness: route-handler unit (a registered
RouteHandlerwith a hand-built request and response, or a mock HTTP server), engine (ObjectQL in-process), or HTTP (a booted stack). Where a pin stops above a clause's oracle layer, the item now says the pin scores that clausepartialand names the leg to drive by hand. Where a ref claimed a whole item, it is scoped per clause.Changes
attach-requires-parent-editautomated.refatt_case. Cases (b), (item 3) and (#2727) never re-readsys_attachment(HTTP)[1]vs pin[0]chunked-upload-integrityacceptance[1].verify[0]storage-chunked-resume-integrity.dogfood.test.ts'REFUSED: …' withholds chunk 0 of two (HTTP)download-authz-both-sidesautomated.refinline-grid-receipt-cellsacceptance[2].verifygrid-file-upload.spec.ts(browser, live backend)inline-grid-receipt-cellsacceptance[3].verifydata:URL passes the string checksinline-grid-receipt-cellsnegative[1]orphan-tombstone-reapacceptance[1].verifylifecycle.sweep()in-process);attachment-lifecycle.test.ts(fake engine, mock logger)presigned-upload-roundtripautomated.refuploadFilehelper asserts statuses only (HTTP)presigned-upload-roundtripautomated.refread-inherits-parent-rlsacceptance[3].verifyattachment-read-leaf.integration.test.ts(engine + SQL driver, silent logger);attachment-read-leaf.test.ts(stand-in engine, recording logger)sys-file-status-pipelineacceptance[2].verify,automated.reftombstone-download-live-reference.test.ts(mock HTTP server, fake engine)sys-file-status-pipelineacceptance[1].verifypendingrefused'upload-limits-scope-and-ownershipautomated.refstorage-limits,upload-scope-vocabulary,upload-door-ownership(route-handler unit; the settings save inside oneObjectKernel)upload-limits-scope-and-ownershipautomated.refengine-file-hydrate-*(engine)upload-session-abortautomated.refcreateUploadSessionReapGuardblock, per clauseattachment-lifecycle.test.ts(unit, stub adapters; the veto case asserts a warn call, not its text)upload-session-abortautomated.refstorage-routes.test.ts(route-handler unit)upload-session-abortautomated.refThe first row carries two card lines (a2 and n1), so 17 rows cover all 18 card lines, and every one is applied.
Retired objectui pin wording
#26035 left the retired pin wording in the area JSON to these cards. This file has no hits for
objectui:(build|refresh|bump|clean),build-console.sh,.objectui-shaorobjectuiPin, either before or after this change. Pin-era statements in two items this PR edits are corrected.download-authz-both-sides: the ref said "a console bundle this repo does not build". It now says the console is built fromui/bypnpm console:buildinto the gitignoredpackages/console/dist.source[3]'sobjectui packages/app-shell/...path now readsui/packages/app-shell/src/views/RecordAttachmentsPanel.tsx.inline-grid-receipt-cells:knownGaps[0]said "AUTOMATION IS PINNED IN THE objectui REPO, NOT HERE", with the spec runnable only "in an objectui checkout". Since the objectui import, the spec isui/e2e/live/grid-file-upload.spec.tsin this tree.automated.refandsource[1]now name that path.knownGaps[0]now says how to run it fromui/(pnpm test:e2e:live, with a backend on port 3000 and the console dev server on port 5180), and it keeps the rule that an unrun pin is a claim, not evidence. This change rides on the item's one revision bump, and its history row says so. Earlier history rows are records and are left as written.Acceptance notes
RUNNER.md's standing fact on objectui-pinned automation ("Some items carry anautomated.refthat lives ENTIRELY in theobjectuirepo") still says this repository holds none of those specs and builds no console bundle. Both are stale since the objectui import. By that entry's own rule,inline-grid-receipt-cellshas now left the set, because its ref names a path that exists here.RUNNER.mdis outside this card's file surface. docs(qa): access-security ledger edits from the 18.2.0 sweep (#25835) #26101 kept its own items' objectui-only framing in step with that entry, so the two cards now differ on this point. Carrier: the devx seat (qa(checklist): RUNNER.md — 3 stale environment facts from the 18.2.0 release sweep (#25807) #25850 / docs(devx): 32 files still prescribe the retired objectui pin scripts (objectui:build/objectui:refresh) — AGENTS.md and 3 skills among them #26035).Gates (head
75c55dcc)pnpm check:platform-checklistexits 0:16 areas, 329 items (324 active, 1 planned).node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderives 13 families, and all 13 were run. Each exited 0.check:doc-formula-expressionsfirst exited 3 on an unbuilt prerequisite, which measured nothing. Afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lintunder the verify lock, it exited 0.--ranreconciliation: 13 derived, 13 run, 0 NOT-MEASURED (a derived zero: every row records an exit code).skip-changeset: the only change is underdocs/qa/, which no package publishes.Generated by Claude Code