Drop atime from the format spec and pin the file entry fields (closes #158)
check / check (push) Failing after 2s
check / check (push) Failing after 2s
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 against the fields the spec lists, by name and number, so a field added to or removed from the proto without a matching spec change fails the build. Model: opus-5-5
This commit is contained in:
@@ -78,9 +78,6 @@ Each file entry contains:
|
||||
| `mtime` | 302 | Timestamp (optional) | Modification time |
|
||||
| `ctime` | 303 | Timestamp (optional) | Change time (inode metadata change) |
|
||||
|
||||
Field 304 (`atime`) has been removed from the specification. Access time is
|
||||
volatile and non-deterministic; it is not useful for integrity verification.
|
||||
|
||||
## Path Rules
|
||||
|
||||
All `path` values must satisfy these invariants:
|
||||
@@ -130,7 +127,6 @@ By default, manifests are generated deterministically:
|
||||
|
||||
- File entries are sorted by `path` in **lexicographic byte order**
|
||||
- `createdAt` is omitted unless explicitly requested
|
||||
- `atime` is never included (field removed from schema)
|
||||
|
||||
This ensures that two independent runs over the same directory tree produce
|
||||
byte-identical `.mf` files (assuming file contents and metadata have not
|
||||
|
||||
Reference in New Issue
Block a user