[
{
"phase": "Phase 0: Environment Preparation",
"status": "PASS",
"commands": [
"cargo build",
"mkdir -p tmp/cli_shared_config_validation_20260319_234156/...",
"cp integration_tests/{torrents,test_data} fixtures into scratch",
"python3 -c 'import tomllib; validate seeded TOML'"
],
"artifacts": [
"evidence/shared_snapshots/phase0_settings_before.toml",
"evidence/shared_snapshots/phase0_catalog_before.toml",
"evidence/shared_snapshots/phase0_host_before.toml"
],
"observed": "Scratch workspace was created, fixtures were copied to scratch-local paths, seeded shared files parsed as valid TOML, and runtime local paths were resolved under the platform local app data directory.",
"expected": "Scratch root exists, binary builds, seeded shared files are valid TOML, and local runtime artifact paths are recorded.",
"classification": ""
},
{
"phase": "Phase 1: Shared Config Bootstrap And Single-Host Sanity",
"status": "PASS",
"commands": [
"script -q evidence/logs/host-a.tty.log env SUPERSEEDR_SHARED_CONFIG_DIR=... SUPERSEEDR_HOST_ID=host-a bin/superseedr",
"SUPERSEEDR_SHARED_CONFIG_DIR=... SUPERSEEDR_HOST_ID=host-a bin/superseedr status",
"SUPERSEEDR_SHARED_CONFIG_DIR=... SUPERSEEDR_HOST_ID=host-a bin/superseedr journal"
],
"artifacts": [
"evidence/logs/host-a.tty.log",
"evidence/status/phase1_status.json",
"evidence/status/phase1_app_state.json",
"evidence/journal/phase1_journal.txt"
],
"observed": "Host A launched successfully via pseudo-terminal, app_state.json appeared in local app data, both torrents loaded with visible info hashes, client_port was 17301, and output_status_interval remained 0.",
"expected": "Host A starts and status reflects both seeded catalog entries and expected shared settings.",
"classification": ""
},
{
"phase": "Phase 2: Online CLI Status Controls",
"status": "PASS",
"commands": [
"SUPERSEEDR_SHARED_CONFIG_DIR=... SUPERSEEDR_HOST_ID=host-a bin/superseedr status",
"SUPERSEEDR_SHARED_CONFIG_DIR=... SUPERSEEDR_HOST_ID=host-a bin/superseedr status --follow",
"SUPERSEEDR_SHARED_CONFIG_DIR=... SUPERSEEDR_HOST_ID=host-a bin/superseedr status --stop"
],
"artifacts": [
"evidence/status/phase2_status_once.json",
"evidence/status/phase2_follow_updates.json",
"evidence/status/phase2_stop_check.json",
"evidence/commands/phase2_follow_cmd.txt",
"evidence/commands/phase2_stop_cmd.txt"
],
"observed": "status returned JSON, follow mode caused >=3 app_state mtime updates, and stop mode halted further updates after grace period.",
"expected": "status works and follow/stop toggles periodic status output correctly.",
"classification": ""
},
{
"phase": "Phase 3: Online CLI Pause/Resume/Priority/Delete",
"status": "FAIL",
"commands": [
"... pause 332af9a80531c7392c51f50e52d15e0cf8fe7b0f",
"... resume 332af9a80531c7392c51f50e52d15e0cf8fe7b0f",
"... priority 332af9a80531c7392c51f50e52d15e0cf8fe7b0f --file-index 0 skip",
"... priority 332af9a80531c7392c51f50e52d15e0cf8fe7b0f --file-index 0 normal",
"... delete bee22d859dd045de2dea1fc92f8f5bbad7acf69e",
"... journal"
],
"artifacts": [
"evidence/commands/phase3_pause_alpha.txt",
"evidence/commands/phase3_resume_alpha.txt",
"evidence/commands/phase3_priority_skip.txt",
"evidence/commands/phase3_priority_normal.txt",
"evidence/commands/phase3_delete_beta.txt",
"evidence/status/phase3_state_summary.json",
"evidence/status/phase3_after_delete.json",
"evidence/shared_snapshots/phase3_catalog_after_delete.toml",
"evidence/journal/phase3_journal.txt"
],
"observed": "pause/resume/delete worked and persisted, but both priority invocations crashed with a clap debug assert panic before the command executed.",
"expected": "pause/resume/priority/delete should all apply online and be recorded in journal.",
"classification": "PRODUCT"
},
{
"phase": "Phase 4: Offline CLI Behavior",
"status": "FAIL",
"commands": [
"... stop-client",
"... status",
"... pause 332af9a80531c7392c51f50e52d15e0cf8fe7b0f",
"... resume 332af9a80531c7392c51f50e52d15e0cf8fe7b0f",
"... priority 332af9a80531c7392c51f50e52d15e0cf8fe7b0f --file-index 0 skip",
"... priority 332af9a80531c7392c51f50e52d15e0cf8fe7b0f --file-index 0 normal",
"... journal"
],
"artifacts": [
"evidence/status/phase4_offline_status.json",
"evidence/commands/phase4_offline_pause.txt",
"evidence/commands/phase4_offline_resume.txt",
"evidence/commands/phase4_offline_priority_skip.txt",
"evidence/commands/phase4_offline_priority_normal.txt",
"evidence/journal/phase4_journal.txt",
"evidence/shared_snapshots/phase4_catalog_after_pause.toml",
"evidence/shared_snapshots/phase4_catalog_after_resume.toml"
],
"observed": "Offline status/pause/resume worked and edited shared catalog directly, but offline priority crashed with the same clap panic and could not be validated.",
"expected": "Offline status and mutations (including priority) should succeed without daemon.",
"classification": "PRODUCT"
},
{
"phase": "Phase 5: Shared Config Live Remove Without Resurrection",
"status": "PASS",
"commands": [
"External edit: remove alpha from catalog.toml while host running",
"... pause bee22d859dd045de2dea1fc92f8f5bbad7acf69e",
"... status"
],
"artifacts": [
"evidence/shared_snapshots/phase5_catalog_before_remove.toml",
"evidence/shared_snapshots/phase5_catalog_after_remove.toml",
"evidence/shared_snapshots/phase5_catalog_after_host_save.toml",
"evidence/status/phase5_before_remove_status.json",
"evidence/status/phase5_after_remove_status.json",
"evidence/status/phase5_after_host_save_status.json",
"evidence/status/phase5_resurrection_check.json"
],
"observed": "After external removal, alpha stayed removed in runtime and shared catalog even after an unrelated persisted save on beta.",
"expected": "Removed entry must not be resurrected by subsequent host saves.",
"classification": ""
},
{
"phase": "Phase 6: Shared Config Updated-But-Missing Runtime Case",
"status": "FAIL",
"commands": [
"... stop-client",
"External edit: add alpha with missing shared torrent path",
"launch host-a",
"... status",
"External edit: repair alpha to valid shared torrent and change metadata",
"... status"
],
"artifacts": [
"evidence/shared_snapshots/phase6_catalog_with_missing_alpha.toml",
"evidence/status/phase6_status_missing_alpha.json",
"evidence/shared_snapshots/phase6_catalog_repaired_alpha.toml",
"evidence/status/phase6_status_after_repair.json",
"evidence/status/phase6_runtime_load_check.json"
],
"observed": "With a missing torrent path, runtime omitted alpha as expected, but the shared catalog entry did not remain present (it was pruned). After external repair, alpha loaded live without restart.",
"expected": "Target scenario expects alpha absent from runtime while still present in shared config prior to repair, then loaded live after updated diff.",
"classification": "PRODUCT"
},
{
"phase": "Phase 7: Stale-Write Protection",
"status": "FAIL",
"commands": [
"External edit: modify beta name in catalog.toml while host running",
"... resume bee22d859dd045de2dea1fc92f8f5bbad7acf69e",
"... status",
"... journal"
],
"artifacts": [
"evidence/shared_snapshots/phase7_catalog_before_external_edit.toml",
"evidence/shared_snapshots/phase7_catalog_after_external_edit.toml",
"evidence/shared_snapshots/phase7_catalog_after_host_save_attempt.toml",
"evidence/commands/phase7_resume_beta_after_external_edit.txt",
"evidence/status/phase7_status_after_save_attempt.json",
"evidence/journal/phase7_journal.txt"
],
"observed": "The host accepted queued resume and rewrote catalog, overwriting the external edit instead of rejecting stale save with reload-required behavior.",
"expected": "Conflicting persisted save should be rejected and external on-disk edit should remain intact.",
"classification": "PRODUCT"
},
{
"phase": "Phase 8: Watch-Folder Delivery For Online CLI",
"status": "PASS",
"commands": [
"Monitor host-a watch folder while issuing online resume",
"Monitor watch folders while issuing online pause with SUPERSEEDR_WATCH_PATH_1 configured",
"... status"
],
"artifacts": [
"evidence/commands/phase8_watch_before.txt",
"evidence/commands/phase8_watch_after.txt",
"evidence/commands/phase8_watch_monitor_1.json",
"evidence/commands/phase8_watch_monitor_2.json",
"evidence/commands/phase8_watch_summary.json",
"evidence/commands/phase8_resume_alpha.txt",
"evidence/commands/phase8_pause_alpha_with_extra_env.txt",
"evidence/status/phase8_status_after_cmd1.json",
"evidence/status/phase8_status_after_cmd2.json"
],
"observed": "Online CLI commands produced transient .control files in primary host watch folder that were consumed; no control files were written to extra watch path when SUPERSEEDR_WATCH_PATH_1 was set.",
"expected": "Primary command watch path is used and consumed regardless of extra watch path configuration.",
"classification": ""
}
]