Sweep every first-party crate source (1956 .rs files) to the project comment guidelines: delete redundant restatements, decorative banners, change narration, and end-of-line comments; keep and tighten the crucial ones (invariants, bug rationale, SAFETY blocks, ported-source attribution). No functional code changed. Every edit is proven comment-only against the prior tree by a comment-stripping lexer (string/char/raw-string aware) plus a separate doctest-fence check. Where removing a comment made rustfmt or clippy want to re-lay-out adjacent code, the minimal triggering comment is restored so code tokens stay byte-identical. Gates green: cargo fmt --all --check (0 diffs), cargo check and cargo clippy --workspace --all-targets (0 warnings). Adds scripts/check_codegen_comment_guidelines.py — the enforcement gate for these guidelines (flags banners, end-of-line comments, change narration, and commented-out code).
40 lines
1.2 KiB
Rust
40 lines
1.2 KiB
Rust
//! End-to-end smoke test exercising the full active_sessions lifecycle.
|
|
|
|
use chrono::Utc;
|
|
use kigi_shell::active_sessions::*;
|
|
use tempfile::TempDir;
|
|
|
|
fn session(id: &str, pid: u32) -> ActiveSession {
|
|
ActiveSession {
|
|
session_id: agent_client_protocol::SessionId::new(id),
|
|
pid,
|
|
cwd: "/tmp/test".into(),
|
|
opened_at: Utc::now(),
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn full_lifecycle() {
|
|
let dir = TempDir::new().unwrap();
|
|
let r = dir.path();
|
|
let pid = std::process::id();
|
|
let sid = |s: &str| agent_client_protocol::SessionId::new(s);
|
|
|
|
register_in(r, session("s1", pid)).unwrap();
|
|
assert_eq!(list_in(r).unwrap().len(), 1);
|
|
|
|
unregister_in(r, &sid("s1")).unwrap();
|
|
assert!(list_in(r).unwrap().is_empty());
|
|
|
|
// 2_000_000_000 is not a live PID on this machine, simulating a crash.
|
|
register_in(r, session("crashed", 2_000_000_000)).unwrap();
|
|
register_in(r, session("alive", pid)).unwrap();
|
|
|
|
// collect_crashed_in also reaps the dead entry from the store, so
|
|
// list_in below drops from 2 to 1.
|
|
let crashed = collect_crashed_in(r).unwrap();
|
|
assert_eq!(crashed.len(), 1);
|
|
assert_eq!(&*crashed[0].session_id.0, "crashed");
|
|
assert_eq!(list_in(r).unwrap().len(), 1);
|
|
}
|