You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
finding(qa): attachments-storage checklist quotes the pre-#10170 create-only enable.files wording, and appears to probe FILES_DISABLED on create only #10735
Found while implementing #10336 (bringing the enable.files / enable.feeds.describe() strings up to the enforced contract, PR #10733). Filed rather than fixed: the checklist is outside that card's declared file surface, and the second half below is a coverage question rather than a mechanical text swap.
What is there
docs/qa/platform-checklist/areas/attachments-storage.json builds a purpose-made qa_nofiles fixture as the FILES_DISABLED probe target, and its step-4 source field cites the spec verbatim:
packages/spec/src/data/object.zod.ts:281 — enable.files defaults to false; 'true surfaces the panel and permits attachments targeting this object; otherwise creation is rejected'
Two separable things follow from #10170 (PR #10332), which registered both capability gates on beforeUpdate as well as beforeInsert:
The feeds side is worth the same look: FEEDS_DISABLED appears in docs/qa/platform-checklist/areas/records-forms.json, and whether that area covers a thread_id re-thread was not checked here.
Why it is worth recording
The gates' whole point after #10170 is that the flag is a property of the target object, not of the verb — enable.files says whether attachments may target this object at all. A checklist that only probes create keeps passing while the update-verb enforcement it is supposed to cover could regress silently, and the stale citation is what would make a reader conclude the create-only scope was intentional.
Nothing is broken today and no behaviour depends on this — it is a checklist accuracy/coverage item, which is why it is finding and not queued.
Suggested shape
Re-quote the step-4 source against the post-#10733 describe string, and decide whether the area gains a step that re-points an existing sys_attachment onto qa_nofiles and expects 403 FILES_DISABLED (plus the matching re-thread probe for feeds). The fixtures the area already lands (qa_vault / qa_shared / qa_nofiles, #7670) look sufficient for it without new setup.
Backlinks: #10170 (registers the update-verb enforcement), #10336 / PR #10733 (the describe-string fix that stales the quote), #7671 (prior checklist-maintenance card for this same area).
Found while implementing #10336 (bringing the
enable.files/enable.feeds.describe()strings up to the enforced contract, PR #10733). Filed rather than fixed: the checklist is outside that card's declared file surface, and the second half below is a coverage question rather than a mechanical text swap.What is there
docs/qa/platform-checklist/areas/attachments-storage.jsonbuilds a purpose-madeqa_nofilesfixture as theFILES_DISABLEDprobe target, and its step-4sourcefield cites the spec verbatim:Two separable things follow from #10170 (PR #10332), which registered both capability gates on
beforeUpdateas well asbeforeInsert:grepoverattachments-storage.jsonreturns zero hits for10170,re-point, orrepoint, and no step issues an update againstsys_attachmentthat re-pointsparent_objectonto a walled object. The 403FILES_DISABLEDdeny side looks to be probed on create only, which is precisely the half that was already enforced beforeenforceFilesCapability/enforceFeedsCapabilityarebeforeInsert-only — a re-point via update dodges the capability opt-in on the NEW parent object #10170.The feeds side is worth the same look:
FEEDS_DISABLEDappears indocs/qa/platform-checklist/areas/records-forms.json, and whether that area covers athread_idre-thread was not checked here.Why it is worth recording
The gates' whole point after #10170 is that the flag is a property of the target object, not of the verb —
enable.filessays whether attachments may target this object at all. A checklist that only probes create keeps passing while the update-verb enforcement it is supposed to cover could regress silently, and the stale citation is what would make a reader conclude the create-only scope was intentional.Nothing is broken today and no behaviour depends on this — it is a checklist accuracy/coverage item, which is why it is
findingand not queued.Suggested shape
Re-quote the step-4
sourceagainst the post-#10733 describe string, and decide whether the area gains a step that re-points an existingsys_attachmentontoqa_nofilesand expects 403FILES_DISABLED(plus the matching re-thread probe for feeds). The fixtures the area already lands (qa_vault/qa_shared/qa_nofiles, #7670) look sufficient for it without new setup.Backlinks: #10170 (registers the update-verb enforcement), #10336 / PR #10733 (the describe-string fix that stales the quote), #7671 (prior checklist-maintenance card for this same area).
Generated by Claude Code