Skip to content

Record the M3.13e delivery and the next slice - #218

Merged
kaikisegfault merged 1 commit into
mainfrom
docs/m3-13e-closeout
Aug 31, 2026
Merged

Record the M3.13e delivery and the next slice#218
kaikisegfault merged 1 commit into
mainfrom
docs/m3-13e-closeout

Conversation

@kaikisegfault

Copy link
Copy Markdown
Owner

Documentation only. docs/project/current-state.md, no source, build, workflow,
or vector change, so this is the focused metadata verification path.

What it records

  • M3.13e is delivered: decode_genesis and protocol-application-v7 are on
    main across cf1d28c..8ffc2bd, and a version-seven node is a process that
    can be started, connected to, restarted, and shut down.
  • Why the decoder is the encoder's inverse and checks itself, what the round
    trip catches that a restatement would not, and the field-order trap it exists
    for: total_supply is encoded before fixed_transfer_fee while the struct
    declares them the other way round.
  • The failure the hosted matrix caught that no local check could. A target
    declared but never added to PROTOCOL_STACK_TARGETS builds at the compiler's
    default standard, and the scratch harness passes -std=c++20 on every
    invocation, so it compiles clean locally and fails in all four hosted jobs with
    errors pointing at headers that have not changed in months. The guard added
    with the fix makes it non-repeatable, and the handoff records that adding an
    executable now means four edits rather than three.
  • Two probes that passed without being gaps, and why each was right to:
    one changed an allocation bound rather than a rule, and one aimed at a rule
    the application suite owns — which was re-run to confirm the coverage rather
    than assumed.

The next slice

M3.13f, the version-seven ABCI adapter — the last structural piece between
the stack that exists and a network that runs it. The entry records that
adapter/cometbft already speaks the same frame format, that only three things
differ (the block identifier in the finalized-block response, the app state
string, and the wider result-code table), and that the slice's one real design
question is not encoding at all: what the adapter does about the replay
handshake
, since ApplicationV7 refuses terminally a finalize_block at any
height that is not the next one, including one it has already committed, which is
exactly what CometBFT does to an application behind its engine.

A note on dates

The deliveries are dated 2026-08-31 because that is what their CI evidence shows;
the handoff itself is written after local midnight, so Last updated is
2026-09-01.

Verification

python3 -B tools/verify_metadata.py — 5 repository skills and 265 internal
Markdown links validated. git diff --check clean. The hosted focused metadata
path is the gate for this exact commit.

The version-seven node process is merged. The handoff records why the
genesis decoder is defined as the encoder's inverse and checks itself,
the field-order trap that makes the round trip worth more than a
restatement, and the two probes that passed without being gaps.

It also records the failure the hosted matrix caught that no local check
could: a target declared but never added to `PROTOCOL_STACK_TARGETS`
builds at the compiler's default standard, and the scratch harness passes
`-std=c++20` on every invocation so it can never reproduce the class. A
guard now requires every built target to appear in that list, and adding
an executable means four edits rather than three.

The next action is M3.13f, the version-seven ABCI adapter, which is the
last structural piece before a network. The entry names the three things
that actually differ from version one's adapter and the one real design
question inside it: what to do about the replay handshake, since the
application refuses terminally a finalize at any height that is not the
next one, including one it has already committed.
@kaikisegfault
kaikisegfault merged commit d05b618 into main Aug 31, 2026
3 checks passed
@kaikisegfault
kaikisegfault deleted the docs/m3-13e-closeout branch August 31, 2026 22:02
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.

1 participant