Skip to content

record(ENG-RECORD-CONFLICT-SURFACES): file two records-tooling defects - #3152

Open
localai-org-maint-bot wants to merge 1 commit into
mainfrom
row/ENG-RECORD-ISSUE-ROUNDTRIP
Open

record(ENG-RECORD-CONFLICT-SURFACES): file two records-tooling defects#3152
localai-org-maint-bot wants to merge 1 commit into
mainfrom
row/ENG-RECORD-ISSUE-ROUNDTRIP

Conversation

@localai-org-maint-bot

@localai-org-maint-bot localai-org-maint-bot commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

record(ENG-RECORD-CONFLICT-SURFACES): file two records-tooling defects

Both were found while landing the ROCm IQ4_NL arm (PR #3149) and neither is
that row's work, so both are filed here rather than folded into it. Neither is
fixed in this change, deliberately: each repair is a design question rather than
a typo, and both want a spec and a red-before case.

agent-issue.py renders an issue file from a fixed IssueRecord schema and never
reads the file forward, so every update and close deletes any section the schema
does not name. The caller sees a success and no diff. Observed rather than
theorised: closing a row's local issue dropped two dated Reconciliation sections
that were the only record of why that row's scope changed twice, each citing
commits and file:line anchors. They were restored by hand and nothing in the
tool's output said they had gone. The normal success path of a sanctioned
records tool deleting evidence inverts the Records rule, in the one file class
this protocol treats as canonical, and does it invisibly.

check-pr-size requires any change touching a governance checker to also change
that checker's one named evidence test file, so every row entering the
RUNNABLE_BASELINE population edits one shared file. That is the shape AGENTS.md
Records calls defective and tells us to move to a per-row surface. Measured
rather than argued: the same ERROR fires on three already-merged commits of this
shape. Two properties kept it invisible until a fresh review -- the checker
prints ERROR and exits 0, and agent-preflight SKIPS it for want of arguments, so
the first signal is CI. It is also stricter than the rule it enforces, since
AGENTS.md accepts a red-before test OR MUTATION and this gate accepts only a
changed line in one named file.

Neither issue cites the IQ4_NL record by ID. That record lives on the #3149
branch, so a reference to it here resolves to nothing and reds
check-agent-record; the pull request names it instead. Found the same way as
everything else in this change, by reading a checker's OUTPUT after it printed
ERROR and exited 0.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5-1m [claude-code]

@mudler
mudler force-pushed the row/ENG-RECORD-ISSUE-ROUNDTRIP branch from 8cbf96a to 5372d57 Compare September 12, 2026 02:59
@localai-org-maint-bot localai-org-maint-bot changed the title record(ENG-RECORD-CONFLICT-SURFACES): file the issue round-trip data loss record(ENG-RECORD-CONFLICT-SURFACES): file two records-tooling defects Sep 12, 2026
Both were found while landing the ROCm IQ4_NL arm (PR #3149) and neither is
that row's work, so both are filed here rather than folded into it. Neither is
fixed in this change, deliberately: each repair is a design question rather than
a typo, and both want a spec and a red-before case.

agent-issue.py renders an issue file from a fixed IssueRecord schema and never
reads the file forward, so every update and close deletes any section the schema
does not name. The caller sees a success and no diff. Observed rather than
theorised: closing a row's local issue dropped two dated Reconciliation sections
that were the only record of why that row's scope changed twice, each citing
commits and file:line anchors. They were restored by hand and nothing in the
tool's output said they had gone. The normal success path of a sanctioned
records tool deleting evidence inverts the Records rule, in the one file class
this protocol treats as canonical, and does it invisibly.

check-pr-size requires any change touching a governance checker to also change
that checker's one named evidence test file, so every row entering the
RUNNABLE_BASELINE population edits one shared file. That is the shape AGENTS.md
Records calls defective and tells us to move to a per-row surface. Measured
rather than argued: the same ERROR fires on three already-merged commits of this
shape. What kept it invisible until a fresh review is that agent-preflight
SKIPS it for want of arguments, so the first signal is CI. An earlier draft of
this message also claimed the checker exits 0 while printing ERROR; that was
wrong and is corrected in the issue body. It returns 1. The zero came from
reading $? after a pipe, which reports tail's status. It is also stricter than the rule it enforces, since
AGENTS.md accepts a red-before test OR MUTATION and this gate accepts only a
changed line in one named file.

Neither issue cites the IQ4_NL record by ID. That record lives on the #3149
branch, so a reference to it here resolves to nothing and reds
check-agent-record; the pull request names it instead. Found the same way as
everything else in this change, by reading a checker's OUTPUT after it printed
ERROR and exited 0.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5-1m [claude-code]
@mudler
mudler force-pushed the row/ENG-RECORD-ISSUE-ROUNDTRIP branch from 5372d57 to 349e3e7 Compare September 12, 2026 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants