chore: remediate UAT validation findings (DOC-007, R5, R6) - #7
Merged
Conversation
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.
Addresses the Sentinel findings from the 2026-08-21 UAT and validation report.
Report findings
LICENSEis the MIT text and the README badge said MIT, butworkspace.package.licensedeclaredApache-2.0and the README's License section said Apache-2.0. Reconciled to MIT. Verified withcargo metadata: all 8 crates now resolve toMIT.release.yml: verify (clippy-D warnings, tests,cargo audit) → four-target binaries with SHA-256 sums (x86_64-unknown-linux-gnu,x86_64-unknown-linux-musl,aarch64-apple-darwin,x86_64-apple-darwin) → GitHub Release built from the matchingCHANGELOG.mdsection → opt-in crates.io publish walking the workspace in dependency order.Two blockers found while implementing R6
cargo publishwould have rejected every crate. Workspace-internal dependencies were declared withpathonly:Cargo requires a
versionon any dependency of a published crate, so R6's crates.io half was unachievable as written. Each now carriesversion = "0.1.0"alongsidepath.CI is red on
maintoday. The lint job runscargo clippy --workspace --all-targets -- -D warnings; current stable emits 8collapsible_matcherrors insentinel-tui/src/event_handler.rs. The key handler now uses match guards.Behaviour is deliberately unchanged. Converting
KeyCode::Char('a') => { if tab == Plan { … } }to a guard makes non-Plan-tab presses fall through to the laterKeyCode::Char(c)arm, which would start insertinga,s, andrinto the goal input. An explicit no-op arm preserves the current swallow:Verification
Run locally against this tree:
cargo check --workspace --all-targetscargo clippy --workspace --all-targets -- -D warningscargo test --workspacecargo metadatalicense resolutionMITfor all 8 cratesEvery file on this branch was verified by git blob SHA against the locally built and tested tree.
Notes, not addressed here
sentinel-agent, but no crate in the workspace has that name — the binarysentinelcomes fromsentinel-tui. The publish job publishes the eight real crate names; the badge needs a decision.cargo fmt --all -- --checkfails across ~250 sites on current stable. CI does not run it and I left it out ofrelease.ymlrather than bundle a whole-tree reformat into this PR.â��where─belongs). Cosmetic; a one-linesedif you want it.alpine:3.19in the Docker runtime stage reached EOL in Nov 2025.🤖 Generated with Claude Code
https://claude.ai/code/session_01WhYNu2HEX62gqqtcPM5twr