Skip to content

fix: keep session state in the runtime directory, and bring the release profile, dependencies and README up to the Colony rules - #24

Merged
MotherSphere merged 5 commits into
mainfrom
chore/conformance-follow-ups-1
Oct 14, 2026
Merged

MotherSphere merged 5 commits into
mainfrom
chore/conformance-follow-ups-1

Conversation

@MotherSphere

Copy link
Copy Markdown
Member

Closes the remaining gaps against the Colony organisation rules (DEP-1, REL-10, DOC-3, DOC-5, DOC-10, FS-5, and the Raven side of FS-3).

What changes

Session state moves to the runtime directory (FS-5). session.pid and session.lock used to sit in ~/.local/share/Colony/Raven/environments/<env>/, where a record of a running session survived a reboot. They now live in $XDG_RUNTIME_DIR/raven/<env>/, beside the c mount point they describe, and go away with it.

  • New paths::runtime_dir(name); mount_point is built on it.
  • Environment::session_file() now returns a Result, because the runtime directory can be missing from the environment.
  • Upgrade path: session() still reads the record a 0.5.0 anchor wrote in the data directory, so a launch right after the upgrade joins the running session instead of refusing to start. clear_session() removes both records. A reboot ends every such session, so this fallback can be dropped in a later release.
  • The README Privacy table and the docs/internals/mount-stack.md tree describe the new location. The tree also gains the missing preferences.toml line.

Release profile (REL-10). [profile.release] uses lto = "thin", the organisation's profile. Fat LTO was only ever measured against the default profile, and start-up time did not change. docs/project/consolidation.md records the v0.5.0 fat-LTO raven-linux size (1 502 880 bytes) so the next release's size can be compared. The CI, gui.md and performance.md mentions of fat LTO are updated.

Dependencies (DEP-1). tokio 1.53.2 -> 1.53.3, and the lockfile is refreshed. ordered-float and uuid stay where they are, because their newer releases need a Rust newer than the 1.88 MSRV.

Preferences (FS-3, Raven side). Preferences::save creates its directory through colony_ui::paths::config_dir instead of its own create_dir_all.

README (DOC-3, DOC-5). The tagline now says who Raven is for. The intro is down to three sentences, and the rest of it moves into "Why Raven".

Release ledger (DOC-10). consolidation.md 3.3 covers v0.1.0 through v0.5.0. It says that v0.4.2 and later are signed by the shared sign-and-publish workflow with .sig, .meta and .meta.sig, and that v0.4.1 and earlier carry only .sig. The "Colony install verified" item stays open.

Not in this PR

FS-3 also asks for the hand-built path table in crates/raven/src/paths.rs to be replaced by colony_ui::paths. That is not possible yet: colony-ui depends on iced unconditionally, and the CLI must not pull in a GUI toolkit. The fix belongs upstream, as a GUI-free paths crate or an optional iced feature in colony-ui, and it needs a crates.io release. Until then, crates/raven-gui/tests/paths_parity.rs keeps the two tables identical.

Verification

  • cargo fmt --all, and cargo clippy --workspace --all-targets --locked -- -D warnings is clean.
  • cargo test --locked -p raven --lib: 117 passed. This includes two new session tests: the record sits beside the mount and not under data, and clearing a session removes the legacy record too. Afterwards, no test directories were left in the runtime directory.
  • cargo test --locked -p raven-gui --bin raven-gui preferences: 3 passed.
  • environment_recovery now also checks that a legacy record in the data directory still finds a live session. This integration test and session_anchor mount for real, so they run in CI.
  • The v0.5.0 release assets were checked against the organisation key: every .sig and .meta.sig verifies, and every .meta matches its asset's version, name and sha256.

@MotherSphere
MotherSphere merged commit 7f953d4 into main Oct 14, 2026
6 checks passed
@MotherSphere
MotherSphere deleted the chore/conformance-follow-ups-1 branch October 14, 2026 11:43
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