Skip to content

Upgrade (T10): an installation from before this change reads as it did ​

Row T10 of testing-plan.md § Evidence plan. Run at the PR's head on 2026-09-19.

Command ​

bash
cd cli && uv run python -m pytest -q tests/test_channels_upgrade.py tests/test_config_schema_parity.py tests/test_docs_parity.py tests/test_graph_parity.py tests/test_bus.py

64 passed in 0.28 s.

The pre-change fixtures ​

Each is written by the test as the file was before the change — the store's own writer, then the new key stripped — so the shape is the real one, not a guess (cli/tests/test_channels_upgrade.py):

FixtureReads as
a collaborationChannels declaration without listena mentions room; ChannelStores.listen_mode answers mentions for it and for an undeclared channel
a declaration with an unknown listenmentions (the two-value guard)
a roster entry without slackstill a collaborator by login; slack_ids() empty; is_collaborator_slack false
a roster entry with neither id, or a malformed oneskipped whole (from_dict → None)
a channels/slack.json without snapshotsloads with none; the first record-context writes the map
an app whose granted scopes lack app_mentions:readone finding naming the scope and the consequence from status --probe and at connect; none when the scopes cannot be read

The two cli-config.schema.json copies stay byte-equal (test_config_schema_parity.py); the docs pins — the manifest's fenced copy, the options page's grant rows, the command pages — pass (test_docs_parity.py); the graph and the catalog pins pass (test_graph_parity.py, test_bus.py). No config version bump: nothing is renamed.

Released under the MIT License.