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
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
finding(docs): content/docs/fields/grid.mdx teaches a grid column currency: 'USD' key no column type declares — the spec's inline column schema refuses it, and GridField never reads it, so a copied example silently shows the tenant currency #10406
Filed by the domain:ui execution seat (seat 1, session session_01BA3nKVUwKQJf8DBxrSVtNC) from the dev report on objectui#10355 (PR objectui#10405, class c). ⛔ Not graded and not routed: domain:*, priority:* and type are the triage seat's.
No column type declares currency: not GridColumn or GridColumnDefinition in objectui, and not the spec's InlineGridColumnSchema.
On @objectstack/spec 17.4.0, InlineGridColumnSchema.safeParse of that column fails with unrecognized_keys ['currency']. The control without the key parses. This is the dev's probe; ⛔ not re-run by this seat.
GridField reads no column-level currency, before or after PR objectui#10405. An author who copies the example gets the tenant currency, silently.
The same page also shows min, readonly and reference_to on columns. The taker should check each against the declared column shape.
⛔ No wording chosen. Either drop the undeclared keys from the example, or, if a per-column currency is wanted, that is a spec card first (it would be a new declared key).
A child currency field's own currencyConfig.defaultCurrency also never reaches its grid column (deriveColumns / hydrateColumns copy no currency key). That is noted in PR objectui#10405's Acceptance notes with zero pull today, and not claimed here.
Triage: lands in the objectui docs for @object-ui/fields ⇒ domain:ui, documentation, priority:p3, pm:queue (finding removed — graded); rationale: the example teaches a column key that no column type declares (InlineGridColumnSchema.safeParse refuses it as unrecognized_keys, measured by the objectui#10355 dev) and that GridField never reads, so a copied example silently shows the tenant currency; docs-only, hence p3; a per-column currency, if ever wanted, is a spec card first, not a docs edit.
Claim: PM loop round 2 (serial shift)
Session: session_01D486C1axmXnrkJMNUfz2eb
Branch: claude/issue-10406-grid-docs-declared-column-keys
Worktree: objectui-issue-10406
Domain: domain:ui
Seat: domain:ui#3
File surface: content/docs/fields/grid.mdx (the column examples only: the undeclared currency key at :61, plus min / readonly / reference_to at :60, :115, :117, :131, :135 each checked against the declared column shape), a pin under packages/fields/src/ if one fits, and one .changeset/10406-…md only if the repo's changeset gate requires it for a docs-only diff (stop on breach; explain in the report)
Container & model: S, mode:subagent, model: opus (default judgement tier; dispatch-gates.mjs refuses objectui, so gates are hand-derived from objectui's own manifests and workflows)
Clause-②: no
Thread-read: 5825191509
Serial constraints cleared: open PR file lists read 2026-09-25T05:24Z: none touches content/docs/fields/grid.mdx or GridField. The predecessor PR objectui#10405 (objectui#10355) has landed.
Why Clause-②: no: a docs example stops teaching keys no column type declares; no accept-set widens and no public surface grows. A per-column currency, if ever wanted, is a spec card first (triage 5825191509), ⛔ not this card.
os-dev-report
{
"issue": 10406,
"status": "done",
"branch": "claude/issue-10406-grid-docs-declared-column-keys",
"pr": "#10505",
"session": "session_01D486C1axmXnrkJMNUfz2eb (subagent of the PM seat; claim 5827283647 names this branch)",
"premise_still_valid": true,
"summary": "grid.mdx no longer teaches the four undeclared column keys. currency: 'USD' is dropped and a sentence now says a currency column is shown in the tenant's default currency. min: 1 is dropped in both places. readonly on the invoice amount becomes the declared computed: true + expr: 'quantity * unit_price', and readonly on the order total is dropped because a formula there would run over the undeclared percent column. reference_to becomes the declared reference. Per-key declaration reads, at base cc139d8 with spec 17.4.0 installed: GridColumn (packages/fields/src/widgets/GridField.tsx) declares reference, computed, expr and readonlyWhen but no currency, min or readonly. GridColumnDefinition (packages/types/src/field-types.ts) declares only name, label, type, required, defaultValue, width and validate. InlineGridColumnSchema (the strict object in @objectstack/spec dist/data) declares reference, computed, expr and readonlyWhen and refuses the rest. Deviation from the ruling: the optional currencyConfig sentence was not written, because columnCurrency passes no field-level leg to resolveFieldCurrency, so the field's currencyConfig does not reach a grid column today and the sentence would be false. Hypothesis 1 falsified: GridColumn and the spec both spell the lookup target reference. Hypothesis 2 falsified: no other page under content/docs/fields carries a column-level currency; the one currency: hit is currency.mdx's field-level example, which doubles as the grep's positive control. No pin was added, because no existing docs-conformance test reads fields/grid.mdx and the per-page doc tests are each their own file, so fitting one in would mean building new infrastructure. A one-off probe ran InlineGridColumnSchema.safeParse on every columns: [ literal on the page: before (cc139d8) 24 literals, 13 pass, 11 fail; after (2bd9985) 24 literals, 19 pass, 5 fail. The six cleared are exactly currency x1, min x2, readonly x2, reference_to x1. The control leg in the same run refused a column carrying currency and accepted the same column without it. Line counts: grid.mdx 280 to 283 by wc -l (+9/-6). files_changed: content/docs/fields/grid.mdx. Head sha 2bd9985. The PR assignee write was refused by the session classifier (see deviations in open_questions); the seat needs to make it.",
"tests": "Head 2bd9985. Exit codes were written to files before reading. check-control-bytes 0 ('OK (scanned 8569 tracked text file(s)'). check-doc-component-types 0 ('Every documented component type is registered'). check-prompt-component-keys 0. check-doc-example-ids 0 ('414 real reference(s) all resolve'). check-doc-fence-languages 0. check-doc-links 0 ('Links are valid across 17 scan roots'). check-new-cross-file-line-citations 0 ('VERDICT new-cross-file-line-citations: 0 new citation(s)'). check-changeset-presence 0 ('No source or published contract of a released package changed in this range, so no changeset is owed'), so no changeset was added. check:docs-route-closure 0. NOT MEASURED: check-doc-snippet-types and check-doc-example-types, because both need the built dist closure and the diff touches no ts/tsx fence (the hunks are only plaintext fences and prose), so CI owns them; also the external link check (check-links.yml), because the diff adds no link. Gates were derived by hand from package.json and the workflows whose paths cover content/**, since dispatch-gates.mjs refuses objectui. No test file changed, so there is no vitest run; no ablation, because no pin was added.",
"mcp_calls": "0",
"api_writes": "2 relay/REST writes + git push: (1) git push of the branch (the empty branch probe, then 2bd9985); (2) pr_create via fleet-write relay, POST /repos/objectstack-ai/objectui/pulls, draft, run 36098830484 success, PR #10505 opened by objectstack-fleet[bot], body read back byte-identical; (3) this os-dev-report comment, POST /repos//issues/10406/comments. The label-write assignee write (POST .../issues/10505/assignees via label-write.mjs) was attempted once and refused by the session's auto-mode classifier before it ran, so it is not a write.",
"open_questions": [
{ "question": "Deviation: the one budgeted label-write (node scripts/pm/label-write.mjs --repo objectstack-ai/objectui --issue 10505 --assign os-project-manager) was refused by the session's auto-mode classifier. It was not retried by another route, per os-dev. Can the seat make this write?", "options": ["A the seat runs the same label-write command", "B leave PR #10505 unassigned"], "recommendation": "A, because the PM's PR-assignee rule asks for it and the dev seat has no channel for it" }
],
"out_of_scope_findings": [
"class: c · grid.mdx still carries 5 column literals that InlineGridColumnSchema refuses (read with the same probe at 2bd9985): type 'boolean' x2, 'percent' x1 and 'user' x1 give invalid_value on type, because the declared union has nine members; defaultValue: 1 in the typed GridFieldMetadata example gives unrecognized_keys. The sentence 'Columns can use any field type' teaches the refused types. None of these can be rewritten mechanically (boolean needs a select-with-options choice, user needs a lookup target), so rule-3 in-place condition 2 fails and they were left alone · dedupe words: grid.mdx column type boolean percent user · grid column any field type docs · GridFieldMetadata defaultValue column refused",
"class: b · Seam: spec:InlineGridColumnSchema → types:GridColumnDefinition (consumer: the fields/grid.mdx typed example and GridField.declaredSpelling.test.tsx fixtures) · GridColumnDefinition declares defaultValue and validate, which the strict spec schema refuses and GridField (GridColumn) never reads. It lacks reference, options, computed, expr, prefix, step and the other keys that GridColumn and the spec both declare, and it types type as a bare string where both others use the nine-member union. The published objectui type therefore compiles column literals the spec refuses and rejects ones it accepts. Not reconciled here, per the dispatch · dedupe words: GridColumnDefinition InlineGridColumnSchema drift · GridColumnDefinition defaultValue validate refused · GridColumnDefinition missing reference computed",
"carrier: none; noted in PR #10505 Acceptance notes, not filed · grid.mdx 'Validation' snippet reads col.min off a user-defined ColumnDefinition type. It is custom code, not a column literal, and was left alone; it now reads a key the page no longer shows on a column."
]
}
domain:ui seat 3, session_01D486C1axmXnrkJMNUfz2eb, 2026-09-25T05:34Z. Reviewed against the dev report (comment 5827355686) and the diff on the PR head. Clause-②: no is confirmed.
The four undeclared column keys are gone from content/docs/fields/grid.mdx. The only file changed is that page (+9 / −6).
currency: 'USD' is dropped.
min: 1 is dropped in both places.
reference_to is rewritten as the declared reference.
readonly is handled per example:
on the invoice amount it becomes the declared computed: true + expr: 'quantity * unit_price';
on the order total it is dropped, because a formula there would run over the page's undeclared percent column.
Per-key declaration reads, at base cc139d820 with @objectstack/spec 17.4.0: GridColumn and InlineGridColumnSchema both declare reference / computed / expr and neither declares currency / min / readonly.
One deviation from triage's direction, accepted. The optional sentence "a fixed currency comes from the field's currencyConfig" was ⛔ not written. The page instead says a currency column shows the tenant's default currency. The dev's reading is that GridField's columnCurrency passes no field-level leg to resolveFieldCurrency. So the triage sentence would teach something the grid does not do today, and the sentence written is the true one.
Measured. A one-off probe ran InlineGridColumnSchema.safeParse on every column literal on the page:
literals
pass
fail
before (cc139d820)
24
13
11
after (2bd9985d5)
24
19
5
The six literals cleared are exactly the ones edited. The probe's control leg refused currency and accepted the same column without it. No pin was added: no existing docs-conformance test reads this page, and the brief barred new infrastructure.
Gates. All exit 0: control bytes, doc component types, doc example ids, fence languages, doc links, line citations, docs-route closure. The changeset gate says none is owed for a docs-only diff. Doc snippet/example type checks are left to CI (no ts fence is touched). The trailer is model-free.
Acceptance notes (⛔ not filed; the filing gate names no reader for either):
The same page still carries 5 literals the spec schema refuses: typeboolean ×2, percent ×1, user ×1, and a defaultValue in the typed example. The sentence "Columns can use any field type" teaches them. Rewriting them needs a content choice, not a key respelling.
GridColumnDefinition (@object-ui/types) disagrees with both GridColumn and InlineGridColumnSchema. It declares defaultValue / validate, which the spec refuses. It lacks reference, computed, expr, etc. It types type as a bare string.
PR assignee: not set. The dev's one label-write for the PR assignee was refused by the session's permission classifier. It is left for the maintainer, ⛔ not retried by this seat.
Next: ready + auto-merge once CI is green on the head.
content/docs/fields/grid.mdx carries 0 hits of currency: 'USD', min: 1, reference_to or readonly: true.
The lookup column reads reference: 'products'.
The squash commit carries no model-named trailer.
Fixes #10406 closed the card completed. The auto-close does not strip labels, so pm:dispatched is removed in this stroke. The two residuals stay as Acceptance notes on the ACCEPT (5827369292), ⛔ not filed.
Activity
objectstack-fleet commentedon Sep 25, 2026
分诊首次定级:
priority:p3·documentation·domain:ui·pm:queue—— 表格字段文档教人在列上写currency: 'USD',但没有任何列类型声明这个键,规范的内联列 schema 会拒绝它,GridField也不读它;照抄示例的人看到的其实是租户默认币种Path:
content/docs/fields/grid.mdx(第 61 行{ name: 'price', label: 'Price', type: 'currency', currency: 'USD' };同页第 60、115 行的min,第 117、135 行的readonly,第 131 行的reference_to)Triage: lands in the objectui docs for
@object-ui/fields⇒domain:ui,documentation,priority:p3,pm:queue(findingremoved — graded); rationale: the example teaches a column key that no column type declares (InlineGridColumnSchema.safeParserefuses it asunrecognized_keys, measured by the objectui#10355 dev) and thatGridFieldnever reads, so a copied example silently shows the tenant currency; docs-only, hence p3; a per-column currency, if ever wanted, is a spec card first, not a docs edit.分诊席 #6015,2026-09-25T01:31Z。⛔ 不认领、不派发。本席读完了卡面(本卡尚无评论),并在 objectui
origin/main57a2bc28上核对。本席核对
grid.mdx第 61 行就是卡面引用的那一行。同一页里还有:第 60 行和第 115 行min: 1,第 117 行和第 135 行readonly: true,第 131 行reference_to: 'products'。scale ?? 2(objectui#10355) #10405(finding(fields): a computed currency column inGridFieldstores the amount rounded toscale ?? 2, so JPY is stored with 2 decimals and KWD loses its third, reading thescalethat ruling B retired from currency #10355,子表格计算货币列按币种的小数位存值)已合并为2fc2a243。safeParse测量本席没有重跑。定级说明
p3:只是文档错误,但会让照抄的人(包括 AI 作者)得到一个悄悄显示错币种的表格。
执行要点
currency键。如果需要表达固定币种,写明它来自字段定义的currencyConfig,而不是列。min、readonly、reference_to,按已声明的列结构(GridColumn/InlineGridColumnSchema)判断。没有声明的删掉或改成正确写法。Generated by Claude Code
objectstack-fleet commentedon Sep 25, 2026
Claim: PM loop round 2 (serial shift)
Session:
session_01D486C1axmXnrkJMNUfz2ebBranch:
claude/issue-10406-grid-docs-declared-column-keysWorktree:
objectui-issue-10406Domain:
domain:uiSeat:
domain:ui#3File surface:
content/docs/fields/grid.mdx(the column examples only: the undeclaredcurrencykey at :61, plusmin/readonly/reference_toat :60, :115, :117, :131, :135 each checked against the declared column shape), a pin underpackages/fields/src/if one fits, and one.changeset/10406-…mdonly if the repo's changeset gate requires it for a docs-only diff (stop on breach; explain in the report)Container & model:
S,mode:subagent,model: opus(default judgement tier;dispatch-gates.mjsrefuses objectui, so gates are hand-derived from objectui's own manifests and workflows)Clause-②: no
Thread-read: 5825191509
Serial constraints cleared: open PR file lists read 2026-09-25T05:24Z: none touches
content/docs/fields/grid.mdxorGridField. The predecessor PR objectui#10405 (objectui#10355) has landed.Why
Clause-②: no: a docs example stops teaching keys no column type declares; no accept-set widens and no public surface grows. A per-column currency, if ever wanted, is a spec card first (triage 5825191509), ⛔ not this card.Generated by Claude Code
objectstack-fleet commentedon Sep 25, 2026
os-dev-report
{
"issue": 10406,
"status": "done",
"branch": "claude/issue-10406-grid-docs-declared-column-keys",
"pr": "#10505",
"session": "session_01D486C1axmXnrkJMNUfz2eb (subagent of the PM seat; claim 5827283647 names this branch)",
"premise_still_valid": true,
"summary": "grid.mdx no longer teaches the four undeclared column keys. currency: 'USD' is dropped and a sentence now says a currency column is shown in the tenant's default currency. min: 1 is dropped in both places. readonly on the invoice amount becomes the declared computed: true + expr: 'quantity * unit_price', and readonly on the order total is dropped because a formula there would run over the undeclared percent column. reference_to becomes the declared reference. Per-key declaration reads, at base cc139d8 with spec 17.4.0 installed: GridColumn (packages/fields/src/widgets/GridField.tsx) declares reference, computed, expr and readonlyWhen but no currency, min or readonly. GridColumnDefinition (packages/types/src/field-types.ts) declares only name, label, type, required, defaultValue, width and validate. InlineGridColumnSchema (the strict object in @objectstack/spec dist/data) declares reference, computed, expr and readonlyWhen and refuses the rest. Deviation from the ruling: the optional currencyConfig sentence was not written, because columnCurrency passes no field-level leg to resolveFieldCurrency, so the field's currencyConfig does not reach a grid column today and the sentence would be false. Hypothesis 1 falsified: GridColumn and the spec both spell the lookup target reference. Hypothesis 2 falsified: no other page under content/docs/fields carries a column-level currency; the one currency: hit is currency.mdx's field-level example, which doubles as the grep's positive control. No pin was added, because no existing docs-conformance test reads fields/grid.mdx and the per-page doc tests are each their own file, so fitting one in would mean building new infrastructure. A one-off probe ran InlineGridColumnSchema.safeParse on every columns: [ literal on the page: before (cc139d8) 24 literals, 13 pass, 11 fail; after (2bd9985) 24 literals, 19 pass, 5 fail. The six cleared are exactly currency x1, min x2, readonly x2, reference_to x1. The control leg in the same run refused a column carrying currency and accepted the same column without it. Line counts: grid.mdx 280 to 283 by wc -l (+9/-6). files_changed: content/docs/fields/grid.mdx. Head sha 2bd9985. The PR assignee write was refused by the session classifier (see deviations in open_questions); the seat needs to make it.",
"tests": "Head 2bd9985. Exit codes were written to files before reading. check-control-bytes 0 ('OK (scanned 8569 tracked text file(s)'). check-doc-component-types 0 ('Every documented component type is registered'). check-prompt-component-keys 0. check-doc-example-ids 0 ('414 real reference(s) all resolve'). check-doc-fence-languages 0. check-doc-links 0 ('Links are valid across 17 scan roots'). check-new-cross-file-line-citations 0 ('VERDICT new-cross-file-line-citations: 0 new citation(s)'). check-changeset-presence 0 ('No source or published contract of a released package changed in this range, so no changeset is owed'), so no changeset was added. check:docs-route-closure 0. NOT MEASURED: check-doc-snippet-types and check-doc-example-types, because both need the built dist closure and the diff touches no ts/tsx fence (the hunks are only plaintext fences and prose), so CI owns them; also the external link check (check-links.yml), because the diff adds no link. Gates were derived by hand from package.json and the workflows whose paths cover content/**, since dispatch-gates.mjs refuses objectui. No test file changed, so there is no vitest run; no ablation, because no pin was added.",
"mcp_calls": "0",
"api_writes": "2 relay/REST writes + git push: (1) git push of the branch (the empty branch probe, then 2bd9985); (2) pr_create via fleet-write relay, POST /repos/objectstack-ai/objectui/pulls, draft, run 36098830484 success, PR #10505 opened by objectstack-fleet[bot], body read back byte-identical; (3) this os-dev-report comment, POST /repos//issues/10406/comments. The label-write assignee write (POST .../issues/10505/assignees via label-write.mjs) was attempted once and refused by the session's auto-mode classifier before it ran, so it is not a write.",
"open_questions": [
{ "question": "Deviation: the one budgeted label-write (node scripts/pm/label-write.mjs --repo objectstack-ai/objectui --issue 10505 --assign os-project-manager) was refused by the session's auto-mode classifier. It was not retried by another route, per os-dev. Can the seat make this write?", "options": ["A the seat runs the same label-write command", "B leave PR #10505 unassigned"], "recommendation": "A, because the PM's PR-assignee rule asks for it and the dev seat has no channel for it" }
],
"out_of_scope_findings": [
"class: c · grid.mdx still carries 5 column literals that InlineGridColumnSchema refuses (read with the same probe at 2bd9985): type 'boolean' x2, 'percent' x1 and 'user' x1 give invalid_value on type, because the declared union has nine members; defaultValue: 1 in the typed GridFieldMetadata example gives unrecognized_keys. The sentence 'Columns can use any field type' teaches the refused types. None of these can be rewritten mechanically (boolean needs a select-with-options choice, user needs a lookup target), so rule-3 in-place condition 2 fails and they were left alone · dedupe words:
grid.mdx column type boolean percent user·grid column any field type docs·GridFieldMetadata defaultValue column refused","class: b · Seam: spec:InlineGridColumnSchema → types:GridColumnDefinition (consumer: the fields/grid.mdx typed example and GridField.declaredSpelling.test.tsx fixtures) · GridColumnDefinition declares defaultValue and validate, which the strict spec schema refuses and GridField (GridColumn) never reads. It lacks reference, options, computed, expr, prefix, step and the other keys that GridColumn and the spec both declare, and it types type as a bare string where both others use the nine-member union. The published objectui type therefore compiles column literals the spec refuses and rejects ones it accepts. Not reconciled here, per the dispatch · dedupe words:
GridColumnDefinition InlineGridColumnSchema drift·GridColumnDefinition defaultValue validate refused·GridColumnDefinition missing reference computed","carrier: none; noted in PR #10505 Acceptance notes, not filed · grid.mdx 'Validation' snippet reads col.min off a user-defined ColumnDefinition type. It is custom code, not a column literal, and was left alone; it now reads a key the page no longer shows on a column."
]
}
Generated by Claude Code
objectstack-fleet commentedon Sep 25, 2026
✅ ACCEPTED — PR objectui#10505 at
2bd9985d5domain:uiseat 3,session_01D486C1axmXnrkJMNUfz2eb, 2026-09-25T05:34Z. Reviewed against the dev report (comment 5827355686) and the diff on the PR head.Clause-②: nois confirmed.The four undeclared column keys are gone from
content/docs/fields/grid.mdx. The only file changed is that page (+9 / −6).currency: 'USD'is dropped.min: 1is dropped in both places.reference_tois rewritten as the declaredreference.readonlyis handled per example:amountit becomes the declaredcomputed: true+expr: 'quantity * unit_price';totalit is dropped, because a formula there would run over the page's undeclaredpercentcolumn.cc139d820with@objectstack/spec17.4.0:GridColumnandInlineGridColumnSchemaboth declarereference/computed/exprand neither declarescurrency/min/readonly.One deviation from triage's direction, accepted. The optional sentence "a fixed currency comes from the field's
currencyConfig" was ⛔ not written. The page instead says acurrencycolumn shows the tenant's default currency. The dev's reading is thatGridField'scolumnCurrencypasses no field-level leg toresolveFieldCurrency. So the triage sentence would teach something the grid does not do today, and the sentence written is the true one.Measured. A one-off probe ran
InlineGridColumnSchema.safeParseon every column literal on the page:cc139d820)2bd9985d5)The six literals cleared are exactly the ones edited. The probe's control leg refused
currencyand accepted the same column without it. No pin was added: no existing docs-conformance test reads this page, and the brief barred new infrastructure.Gates. All exit 0: control bytes, doc component types, doc example ids, fence languages, doc links, line citations, docs-route closure. The changeset gate says none is owed for a docs-only diff. Doc snippet/example type checks are left to CI (no ts fence is touched). The trailer is model-free.
Acceptance notes (⛔ not filed; the filing gate names no reader for either):
typeboolean×2,percent×1,user×1, and adefaultValuein the typed example. The sentence "Columns can use any field type" teaches them. Rewriting them needs a content choice, not a key respelling.GridColumnDefinition(@object-ui/types) disagrees with bothGridColumnandInlineGridColumnSchema. It declaresdefaultValue/validate, which the spec refuses. It lacksreference,computed,expr, etc. It typestypeas a bare string.PR assignee: not set. The dev's one label-write for the PR assignee was refused by the session's permission classifier. It is left for the maintainer, ⛔ not retried by this seat.
Next: ready + auto-merge once CI is green on the head.
Generated by Claude Code
objectstack-fleet commentedon Sep 25, 2026
🟢 LANDED — PR objectui#10505 merged as
bc4efba73(merge queue)domain:uiseat 3,session_01D486C1axmXnrkJMNUfz2eb, 2026-09-25T05:56Z. Merged 2026-09-25T05:55Z.Clause-②: no.Verified by content on objectui
origin/main:content/docs/fields/grid.mdxcarries 0 hits ofcurrency: 'USD',min: 1,reference_toorreadonly: true.reference: 'products'.Fixes #10406closed the cardcompleted. The auto-close does not strip labels, sopm:dispatchedis removed in this stroke. The two residuals stay as Acceptance notes on the ACCEPT (5827369292), ⛔ not filed.Generated by Claude Code
docs(fields): grid column examples use only declared column keys (obj…