I3314 — An object's read names the commit that last changed its file, and its page lists the commits that changed it
Add a read-only history projection to an object of the layer: the last commit, its date and the commits that touched the object's file (git log --follow, bounded), served on the entity read and its detail page, and computed from git rather than stored.
READY wave 0 · p3 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I3314 will be accepted.
Objective
Add a read-only history projection to an object of the layer: the last commit, its date and the commits that touched the object's file (git log --follow, bounded), served on the entity read and its detail page, and computed from git rather than stored.
Why
The 2026-09-04 data-driven MCP design asked for an entry's git history beside its document. At 707a04c majordomus history reads the task ledger (lib/history.sh) and commit.history judges commit messages (capability/builtin/commit.rs), but an ADR, rule or knowledge record answers nothing about when or by which commit it last changed, so a reader judging whether a record is current has to leave the surface. I1012 assembles a node's detail view from what it has; history is one more thing it can have. Sources: chatgpt-majordomus:c008#2.
Current state
At 707a04c no entity read or page carries a last-changed commit.
Desired state
Every object with a file names its last commit and opens its history, bounded, with no tracked copy of either.
Scope
- apps/majordomus-cli/src/capability/builtin/entity.rs
- apps/majordomus-cli/src/cockpit/pages.rs
- apps/majordomus-cli/src/git/mod.rs
- apps/majordomus-cli/tests/objects.rs
Out of scope
- Storing history in the index
- Diffs of the object
Dependencies
None. This issue is a root of the graph.
What waits on this
Acceptance criteria
- The entity read of an ADR carries the commit and date that last changed its file
- The history is bounded and says when it was cut
- An object with no file says history not applicable, never empty
- The projection is read-only on every transport
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test objects
Evidence required
- test_entity_history
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3314.yaml. Read it back with majordomus plan show I3314.