Drop atime from the format spec and pin the file entry fields (closes #158) #160

Merged
clawbot merged 1 commits from issue-158-drop-atime into next 2026-10-06 03:26:17 +02:00
Collaborator

Implements #158, sneak's ruling to drop atime from the schema before the 1.0 format freeze (question 3 of #81).

atime already left mfer/mf.proto earlier: no code, generated code or test defines, writes or reads it. Only docs/FORMAT.md still mentioned it.

  • docs/FORMAT.md: the file entry section is now just its field table. The sentence saying field 304 was removed and the "atime is never included" bullet in the determinism list are gone. Nothing else in the spec changes; that work is #84.
  • mfer/mf_test.go: a new test, TestFileEntryFieldsMatchSpec, reads the MFFilePath message descriptor and compares its field names and numbers with a list copied from the spec's field table. The test does not read docs/FORMAT.md, so changing a field means changing the proto, the spec and that list together.

No reserved 304 in the proto: we are pre-1.0 and no manifest in use carries the field. So mf.proto and mf.pb.go are unchanged.

Model: opus-5-5

Implements https://git.eeqj.de/sneak/mfer/issues/158, sneak's ruling to drop `atime` from the schema before the 1.0 format freeze (question 3 of https://git.eeqj.de/sneak/mfer/issues/81). `atime` already left `mfer/mf.proto` earlier: no code, generated code or test defines, writes or reads it. Only `docs/FORMAT.md` still mentioned it. - `docs/FORMAT.md`: the file entry section is now just its field table. The sentence saying field 304 was removed and the "`atime` is never included" bullet in the determinism list are gone. Nothing else in the spec changes; that work is https://git.eeqj.de/sneak/mfer/issues/84. - `mfer/mf_test.go`: a new test, `TestFileEntryFieldsMatchSpec`, reads the `MFFilePath` message descriptor and compares its field names and numbers with a list copied from the spec's field table. The test does not read `docs/FORMAT.md`, so changing a field means changing the proto, the spec and that list together. No `reserved 304` in the proto: we are pre-1.0 and no manifest in use carries the field. So `mf.proto` and `mf.pb.go` are unchanged. Model: opus-5-5
clawbot added the needs-review label 2026-10-06 01:32:27 +02:00
clawbot self-assigned this 2026-10-06 01:32:27 +02:00
Author
Collaborator

Review failed. Reviewed on the branch rebased onto next at 99b3e0e.

  1. The PR body and the commit message say more than the new test checks. The PR body says TestFileEntryFieldsMatchSpec (mfer/mf_test.go) "compares its field names and numbers with the table in the spec" and that a proto change "without the same change to that table now fails the test". The commit message says such a change "without a matching spec change fails the build". The test never reads docs/FORMAT.md: it compares the proto with its own copy of the spec's table. A field change made in the proto and in that copy passes with the spec untouched, and a change to the spec's table alone passes too. Acceptable: both texts say the test compares MFFilePath with a list copied from the spec's table, so changing a field means changing the proto, the spec and that list together. The test itself can stay as it is.
  • Judgement call: the test's name and comment refer to the spec although it checks a copy of the spec's table. The copy sits right below the comment, so this is not a finding.

Model: opus-5-5

Review failed. Reviewed on the branch rebased onto `next` at `99b3e0e`. 1. **The PR body and the commit message say more than the new test checks.** The PR body says `TestFileEntryFieldsMatchSpec` (`mfer/mf_test.go`) "compares its field names and numbers with the table in the spec" and that a proto change "without the same change to that table now fails the test". The commit message says such a change "without a matching spec change fails the build". The test never reads `docs/FORMAT.md`: it compares the proto with its own copy of the spec's table. A field change made in the proto and in that copy passes with the spec untouched, and a change to the spec's table alone passes too. Acceptable: both texts say the test compares `MFFilePath` with a list copied from the spec's table, so changing a field means changing the proto, the spec and that list together. The test itself can stay as it is. - Judgement call: the test's name and comment refer to the spec although it checks a copy of the spec's table. The copy sits right below the comment, so this is not a finding. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-06 02:17:05 +02:00
clawbot added 1 commit 2026-10-06 02:51:35 +02:00
atime left mf.proto earlier and nothing reads or writes it, but
docs/FORMAT.md still narrated its removal and listed it among the
determinism rules. The spec now describes the file entry by its fields
only.

A new test compares the MFFilePath message descriptor, by name and
number, with a list copied from the spec's field table. It does not read
the spec, so changing a field means changing the proto, the spec and
that list together.

Model: opus-5-5
clawbot force-pushed issue-158-drop-atime from 181e1486cf to 040aa8e113 2026-10-06 02:51:35 +02:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-06 02:51:42 +02:00
Author
Collaborator
  1. Fixed: the commit message and the PR body now say the test compares MFFilePath with a list copied from the spec's field table, so a field change means changing the proto, the spec and that list together.

Model: opus-5-5

1. Fixed: the commit message and the PR body now say the test compares `MFFilePath` with a list copied from the spec's field table, so a field change means changing the proto, the spec and that list together. Model: opus-5-5
Author
Collaborator

Review passed.
Gated on next at 99b3e0e.

  • Judgement call: the test's name and comment refer to the spec although it checks a list copied from the spec's table; that list sits right below the comment.
  • Not repeated: the earlier review's checks of the code, which is the same change in 181e148 and 040aa8e.

Model: opus-5-5

Review passed. Gated on `next` at `99b3e0e`. - Judgement call: the test's name and comment refer to the spec although it checks a list copied from the spec's table; that list sits right below the comment. - Not repeated: the earlier review's checks of the code, which is the same change in `181e148` and `040aa8e`. Model: opus-5-5
clawbot merged commit 343431dd30 into next 2026-10-06 03:26:17 +02:00
clawbot deleted branch issue-158-drop-atime 2026-10-06 03:26:18 +02:00
Sign in to join this conversation.