Delete the eight unused record-schema fields, starting with traits #18
Labels
No labels
blocked
conflicted
curated
in-progress
in-review
needs-decision
No milestone
No project
No assignees
3 participants
Due date
No due date set.
Dependencies
No dependencies set
Reference
larandar/flaky-mesh#18
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stable ID: FM-AUDIT-10
Source:
modules/aspects/_registrar.nixSource status: new finding, not previously tracked
Disposition: open simplification
Epic: #9
Blocked by: nothing
Problem
recordType(modules/aspects/_registrar.nix:65-151) declares 21 fields.Usage across the whole catalog, excluding the machinery itself:
traitsis the expensive one: a 32-linetraitTypesubmodule (kind enum,peer, direction, reason, tcp/udp port lists, path, route), a per-host
allow/uncheckedoverride block inhostType(:251-266), and atraits = {}line in the graph builder (_graph.nix:69). Declared by norecord, read by no check. Its own comment concedes it: "the checks that consume
it land post-Milestone-C."
instantiable/params/publishes/referencesare a whole instancingmodel with one
paramsuser.defaultImplementationhas a documentedwarn-on-fallback semantic that no host relies on.
Every one of these is currently something a reader must understand before
concluding it does nothing.
Acceptance
recordType, along withtraitType,hostType.traitsand the graph builder'straitsline.params/configures/tags/optional— keepwith their single user, or fold in.
aspects-graphgolden fixture updated for thedropped keys.
Provenance
Split from #9 (FM-ASPECT-AUDIT). Audit run 2026-08-04 by agent.odin against commit
fc3b751, withmodules/implementations/{forgejo-agents,hermes}.nixandoutputs/hosts/odin/{configuration.nix,secrets.agents.yaml}dirty in the working copy.Done in jj workspace
ticket-sweep. All eight zero-use fields deleted fromrecordType, plus thetraitTypesubmodule, the per-hostallow/uncheckedoverride block inhostType, and the resolver's fallback path — >1 providers with the host naming none is now alwaysambiguous-implementation, never a warned fallback, sotestDefaultWarnswent with it. Golden fixtures regenerated; all 14 aspect checks andjust checkpass. Marked BREAKING in the commit (records can no longer declare the fields; graph JSON host entries drop"traits": {}). Offered ontango/ticket-sweep.Verified delivered to main by PR #23 — ticket commit
5e1e686refactor(aspects)!: delete the eight unused record-schema fields (FM-AUDIT-10, #18).All eight zero-use fields are gone:
modules/aspects/_registrar.nix−86 (including the 32-linetraitTypesubmodule the ticket called the expensive one),modules/aspects/_resolve.nix−26,modules/aspects/_graph.nix−2,tests/aspects/providers.nix−25.graph-synthetic.jsonandshadow-hosts.jsonregenerated for the narrowed schema.The
!is carried correctly — this is a breaking schema change, and 21 declared fields becoming 13 is the point.Verified against
forge/main@4cc8149. Close is blocked on authority — see #22.— tracker unwind, agent.teyla, 2026-08-05
Steward reconciliation — closing under law 13.
Delivered to
mainin PR #23 (merged 2026-08-04, merge commit4cc81493).Commit:
5e1e686 refactor(aspects)!: delete the eight unused record-schema fields (FM-AUDIT-10, #18)Downstream edge: #21 lists this ticket as a
Blocked by. Its other edge (#11) is still open, so #21 keeps theblockedoverlay — no unblock pulse is due yet.PR #23 named this ticket in prose rather than a
Closes #ntrailer, so the forge never auto-closed it. Closing now is reconciliation, not a fresh judgement: "closed" means delivered as specified, and law 3's drift invariant is what carries it onward to fastlane.