Skip to content

fix: correct MSRV to 1.86, repair mojibake, drop unusable crates.io publishing - #8

Open
marcuspat wants to merge 3 commits into
mainfrom
chore/uat-remediation
Open

fix: correct MSRV to 1.86, repair mojibake, drop unusable crates.io publishing#8
marcuspat wants to merge 3 commits into
mainfrom
chore/uat-remediation

Conversation

@marcuspat

Copy link
Copy Markdown
Owner

Follow-up to #7, which merged while these were in flight. Three items, one of them a build break the UAT report scored as PASS.

docker build cannot succeed today

The builder image is rust:1.82-slim, but the dependency graph has moved past it:

Dependency Declared rust-version
ratatui 0.30 1.86.0
clap 4.6 1.85

Cargo refuses the workspace before compiling anything. Same class as the Go-version mismatch flagged in spacelift-intent as SBLD-007 — the report scored Sentinel's build/deploy section 7/7.

  • Builder → rust:1.86-slim
  • rust-version = "1.86" added to workspace.package, so cargo reports the real floor instead of failing deep inside a dependency
  • README's "Requires Rust 1.75+" and CONTRIBUTING's "1.75 or newer" corrected

The TUI printed mojibake

Box-drawing rules, em dashes, arrows and ellipses were committed as double-encoded UTF-8 — the byte sequence you get by decoding real UTF-8 as Latin-1 and re-encoding. These are output strings, not just comments:

println!("── Investigating ──");   // rendered: â──â── Investigating â──â──
"Investigation complete — {} observation(s) collected."   // rendered: complete â€" 3 observation(s)

3,096 sequences repaired across the four sentinel-tui sources and the Dockerfile. The repair re-encodes each run to Latin-1 and decodes it as UTF-8, so every character is restored to what was originally typed rather than guessed.

crates.io publishing was never going to work

Crate Status on crates.io
sentinel-agent (the README badge) does not exist, never published
sentinel-core registered to Forsworns since 2022
sentinel-tui registered to mateusdcc

The publish job added in #7 could not succeed under these names. Per your call: badge and publish job removed. Releases ship binaries and container images; the four-target build with SHA-256 sums and CHANGELOG-derived release notes is untouched. Nothing forecloses publishing later under an available name.

Verification

cargo clippy --workspace --all-targets -- -D warnings clean and cargo test --workspace 413 passing against this tree. Every file was verified by git blob SHA against the locally built and tested copy.

Still open

cargo fmt --all -- --check fails across ~250 sites on current stable. CI doesn't run it and I left it out of the release workflow rather than bundle a whole-tree reformat here — cargo fmt --all on this branch is a one-command follow-up if you want it, and cargo fmt --check can go into CI once the tree is clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WhYNu2HEX62gqqtcPM5twr

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