Skip to content

Carry distance_metadata and global-clock oneepoch whole as v1 - #296

Merged
jesshaley merged 2 commits into
V2from
claude/carry-reshaped-retire
Oct 30, 2026
Merged

jesshaley merged 2 commits into
V2from
claude/carry-reshaped-retire

Conversation

@jesshaley

Copy link
Copy Markdown
Collaborator

Decision

Decided by Jess Haley, 2026-10-29 [reshaped retire classes carried] (did-schema schemas/V_eta_go_forward_class_audit.md, her answer "B"): v1 distance_metadata and oneepoch documents are carried whole as v1 for now. They are no longer reshaped into their retire classes. The reshape waits until their V2 homes exist. The register rows are carry-147 (distance_metadata) and carry-148 (oneepoch on a global clock), both awaiting_home, in did-schema #238.

What changed

  • +migrators_j/oneepoch.m: until now, a oneepoch whose clocks include a global one kept the class oneepoch, with its element_epoch block folded onto it. It is now carried as the untouched v1 source, with a carried_as_v1 note [carry-148] awaiting_home: ... and a % carry-register: carry-148 marker. The carry-126 branch (device-local) and the carry-100 / carry-049 branches are unchanged. The fold code is removed and the header (BUILT HERE / NOT BUILT YET) is updated.
  • +migrators_j/distance_metadata.m: every document the endpoint reshape reached is now carried with [carry-147] awaiting_home: ... and a % carry-register: carry-147 marker. The carry-100 / carry-049 carries and the missingBlock error are unchanged. The reshape helpers are removed; the header keeps the old field mapping as a record of what was replaced.
  • +roundtrip/distance_metadata.m and +roundtrip/oneepoch.m are kept. Their headers now say that no migrator output reaches them, the same way position_metadata's inverse is handled.
  • The +migrators_j/Contents.m roster was regenerated (check_migrator_roster.py --write). Narrative comments are updated in +migrators/Contents.m and +migrators_j/element_epoch.m.

Tests inverted (not deleted, none skipped)

  • testMigratorsJ:
    • testDistanceMetadataReshapesFlatEndpoints becomes testDistanceMetadataIsCarriedWholeAsV1.
    • testOneEpochFoldsItsInheritedBlockAndKeepsItsClass becomes testOneEpochOnAGlobalClockIsCarriedWholeAsV1.
    • testOneEpochCarriesTheClocksTheBaseMigratorBuilt becomes testOneEpochCarryKeepsBothClocksAsV1WroteThem.
    • testOneEpochKeepsTheSourceEpochIdsAndTheElementEdge becomes testOneEpochCarryKeepsTheSourceEpochIdsAndTheElementEdge.
    • testOneEpochValidatesAgainstItsNewTombstone becomes testOneEpochOnAGlobalClockIsCarriedUnderValidation.
  • testRawV1RoundTripOneEpoch:
    • In testWriterShapesRoundTrip, the two-clock fixture is now expected to be carried.
    • The "global clock is not carried" half of testADeviceLocalOneEpochIsCarried becomes the new testAGlobalClockOneEpochIsCarried, which expects carry-148 and not carry-126.
    • testADifferentSourceIsReportedLost now reads the carry.
  • testRawV1RoundTripPosition:
    • The distance writer cases are now expected to be carried.
    • testCarriesCiteTheirRows now expects carry-147. Next to its carried element, the document is now carried first by its own migrator, so the old carry-064 note (from carryDependents, which follows only converted documents) no longer appears.
    • testTheConvertedDocumentsValidate becomes testTheCarriedDistancesPassValidation.
    • testABrokenEmissionIsReportedLost now changes the carried body.
  • Comment-only updates: testFixtureCorpus (fx_distance_metadata), testMigrators, testResolveEpochProbemap.
  • Read and left unchanged: testEpochMint (epochStrings reads epochid whatever the stamp), testEpochIndex (it reads the schema, which is unchanged), testTimeReferenceCollapse, testConvertV1ToV2, testMigratorsJClockAlignment (only history comments mention these classes there).

Checks run locally

  • python3 tools/check_carry_citations.py --did-schema <did-schema at #238's branch>: OK.
  • python3 tools/check_migrator_roster.py: OK.
  • The quick workflow's Python tool tests: they all pass.

Not run locally: there is no MATLAB here, so CI is the first run of the MATLAB tests.

Merge order

This needs did-schema #238 merged first. DID-matlab CI reads the carry register from did-schema main; the quick tests read a did-schema branch with the same name, else main. Without #238, check_carry_citations fails R1 on carry-147 and carry-148.


Generated by Claude Code

[reshaped retire classes carried] (Jess Haley, 2026-10-29, did-schema
V_eta_go_forward_class_audit.md, "B"): v1 distance_metadata and oneepoch
are carried whole as v1 for now, not reshaped into their retire classes.

- +migrators_j/oneepoch.m: a oneepoch on a global clock, which kept the
  class with its element_epoch block folded on, is carried as the untouched
  v1 source citing carry-148 (awaiting_home). The carry-126 (device-local)
  and carry-100 branches are unchanged; the fold code is removed.
- +migrators_j/distance_metadata.m: every document the reshape reached is
  carried citing carry-147 (awaiting_home); carry-100/carry-049 unchanged;
  the endpoint-reshape helpers are removed.
- The two round-trip inverses are kept, noted as reached by no migrator
  output (as position_metadata's). Contents.m roster regenerated.

Tests inverted, not deleted: testMigratorsJ (distance_metadata and the
four oneepoch tests), testRawV1RoundTripOneEpoch, testRawV1RoundTripPosition.

Needs did-schema #238 (register rows carry-147, carry-148) on main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FxKLA8Tbf9cpvDe7fuVeKf
@jesshaley
jesshaley marked this pull request as ready for review October 30, 2026 01:33
@jesshaley
jesshaley merged commit 42d454e into V2 Oct 30, 2026
11 checks passed
@jesshaley
jesshaley deleted the claude/carry-reshaped-retire branch October 30, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants