Skip to content

symfonic.agent.cutover.memory_surfaces

memory_surfaces

TA8.37's thirty-one rows, assembled: C1-C, C1-D and C1-E in one ledger.

The lane's ledger, and the address importers and evidence files name for it. The rows themselves live in three sibling modules -- one per subgroup, because that is the boundary the evidence has and because one file holding all thirty-one passed its line budget -- and the admissions they rest on live in :mod:~symfonic.agent.cutover.memory_admission, which is what the envelope imports. Both sets are re-exported here.

C1-C (ten retrieval/hydration rows), C1-D (nine consolidation and entity-linking rows) and C1-E (the orchestrator container, ten nested knobs and the top-level enabled_layers that duplicates one of them) share a branch because they share files; they do not share evidence, so every row is a row and the tests drive each one separately.

The row shape -- and the rule that a divergence from the triage must carry an argument -- is :class:~symfonic.agent.cutover.memory_rows.MemorySurface. C1-E's five replaced rows publish their contract in :mod:~symfonic.agent.cutover.orchestrator_policy.

MemorySurface dataclass

MemorySurface(path: str, subgroup: str, owner: str, recorded: str, applied: str, served_by: tuple[str, ...], refused_by: tuple[str, ...], inert_on: tuple[str, ...], consumer: str, observable: str, condition: str | None = None, override_argument: str | None = None)

One TA8.37 row: what the triage recommended, and what this lane did.

served_by / refused_by / inert_on partition :data:~symfonic.agent.cutover.lifecycle_contract.PUBLIC_ENTRY_POINTS exactly, for the reason :class:~symfonic.agent.cutover.admission_surfaces.AdmissionSurface gives: an unmeasured third entry point is the gap that made two thirds of this programme's earlier evidence unusable, and a row with a hole in its surface would reintroduce it as a data structure.

inert_on is the honest third state and it is not a synonym for served. A field whose only reader sits above the dispatch, or behind a flag the envelope refuses, is honoured identically whichever body serves the turn — which is a fact about the field, not a claim about the migrated path.

overridden property

overridden: bool

True when this lane did not apply the recorded recommendation.

memory_rows_for_subgroup

memory_rows_for_subgroup(subgroup: str) -> tuple[MemorySurface, ...]

Every row this lane filed under subgroup, in ledger order.

Source code in src/symfonic/agent/cutover/memory_surfaces.py
def memory_rows_for_subgroup(subgroup: str) -> tuple[MemorySurface, ...]:
    """Every row this lane filed under ``subgroup``, in ledger order."""
    return tuple(row for row in _ROWS if row.subgroup == subgroup)