Repository navigation
Say what the Session model is now, in the three comments that still describe the old one (#97) - #100
Merged
Merged
Conversation
…escribe the old one (#97) Comments only; no behaviour, and the diff is three doc blocks. `core/clock.py` and `core/bridge.py` both justified `wall_clock` with a Session's `registered_at` being written to disk and read back by the next engine. #74 renamed the field to `first_seen` and deleted the Session half of `core/state.py`, so the sentence was false twice over — and it was the only example either comment offered for why two clocks exist at all. The fact that still holds is not durability. Nothing durable carries a timestamp any more: `PersistedState` is switch state and nothing else (`core/persistence.py:57-76`), and the roster is deliberately not persisted (`core/state.py:9-12`). What `first_seen` does is *leave the process* — it travels to every surface in the `sessions` payload (`control_plane/payloads.py:151`), where a monotonic reading is an offset from an origin only the engine knows and names no moment at all. So the rule is restated as "nothing read outside this process", which is broader than the durability rule it replaces and covers it. `ControlPanel.swift` said every action it offers "is one of the nine". #72 made it seven and #76 makes it eight. #97 offered pointing at `tests/test_app_bundle.py::TestTheThingsThatMustAgree` instead, but that class does not hold the two action sets together yet — that guard arrives with #76 — so the sentence is written to need no count and no pointer. The claim it was always making is "no private protocol", and that survives the count changing. Left alone on purpose: `docs/control-plane.md:121,129` carries the same stale `registered_at`, including as the payload's key name. #76 already rewrites both lines in its branch, so fixing it here would only be a merge conflict. Legacy: comments only, no runtime behaviour, so there is nothing to cite. Gates: ruff check, ruff format --check, pytest (1267 passed), swift build, swift test --disable-xctest (123 tests), swift format lint --strict. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #97. Comments only — three doc blocks, no behaviour, no code change.
The two Python sites
core/clock.pyandcore/bridge.pyboth justifiedwall_clockwith a Session'sregistered_atbeing written to disk and read back by the next engine. #74 renamed the field tofirst_seenand deleted the Session half ofcore/state.py, so the sentence was false twice over — and it was the only example either comment offered for why two clocks exist at all.registered_atoccurs nowhere else in the tree.Renaming the field in the sentence would not have fixed it, because the durability claim is gone too. Nothing durable carries a timestamp any more:
PersistedStateis switch state and nothing else (core/persistence.py:57-76)core/state.py:9-12), because discovery re-reads it on a cadence (Build 1/7 — Discovery, roster and reachability: lock the one Session-inspection type #74)SwitchSnapshothas no time fieldThe fact that still holds is that
first_seenleaves the process. It travels to every surface in thesessionspayload (control_plane/payloads.py:151), where a monotonic reading is an offset from an origin only the engine knows and names no moment at all. So the rule is restated as "nothing read outside this process may be stamped from this clock", which is broader than the durability rule it replaces and covers it.wall_clock's one caller today isBridgeCore._stamp→SessionRegistry._admit(now=…)→Session.first_seen.The Swift site
ControlPanel.swiftsaid every action it offers "is one of the nine". TheActionenum has seven members today (STATUS SWITCH SESSIONS LIVE RELAY APPROVE VERIFY) and #76 makes it eight.#97 offered pointing at
tests/test_app_bundle.py::TestTheThingsThatMustAgreeinstead of a count, but that class does not hold the two action sets together yet — its seven tests cover the protocol version, the socket path, the interpreter path, the bundle identity, the example config (twice) and the wheel contents. That guard arrives with #76. Rather than point at a test that does not exist, the sentence is written to need no count and no pointer: the claim it was always making is "no private protocol, no second path", and that survives the count changing.Left alone on purpose
docs/control-plane.md:121,129carries the same staleregistered_at— including as the payload's key name, which makes it a public-interface error rather than a comment. #76 already rewrites both lines in its branch (first_seen, and a correct justification), so fixing it here would produce nothing but a merge conflict with in-flight work.tests/acceptance/test_lanes.py:62's "one of the nine" is a different nine — the nine acceptance step names, which is still nine. Correct as written.Legacy citation
Comments only, no runtime behaviour, so there is nothing in
GPT-VoiceCoding-legacy@1d32845to port, adapt or drop.Gates
All six CI
run:lines, locally:ruff check .ruff format --check .pytestswift build --package-path shellswift test --package-path shell --disable-xctestswift format lint --recursive --strict Sources Tests Package.swift🤖 Generated with Claude Code