Skip to content

Include session Models in Run notifications - #620

Merged
JacobStephens2 merged 11 commits into
mainfrom
issue-606
Oct 10, 2026
Merged

JacobStephens2 merged 11 commits into
mainfrom
issue-606

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

Run notifications now name each session's Harness, observed Models and configured Effort, including delegated Claude answers, Resumes and child Runs. Missing model evidence is labelled as requested or not reported. An unreadable attribution record warns while preserving readable records.

Harness stream / retained record
  → model evidence beside Session log
  → owning Command, including child Runs
  → one Run notification with Session models

Closes #606

Evidence

  • Before: a_notification_keeps_current_models_when_an_unrelated_record_is_corrupt failed: an unrelated truncated record removed both current Models from the email.
    After: the exact reproduction passed; the retained test checks both Models, the warning and successful Run outcome.
  • Command log directory assertions now include the documented model records: all 11 tests passed. All 28 notification tests passed, including interruption, delegated Models, Resumes and child ownership.
  • Pinned Rust 1.99.0: cargo check --all-targets, cargo fmt --check and cargo clippy --all-targets -- -D warnings passed.
  • Full test inventory: 1,669 passed, 1 ignored across all 41 unit and integration test binaries. Coverage was completed across cargo test and the remaining-binary run below after an unrelated host unit caused systemd-analyze to warn. Both repository units verify against the vendor unit directory; no host service was changed.
SYSTEMD_UNIT_PATH=/usr/lib/systemd/system RUST_TEST_THREADS=8 cargo test \
  --test site_deploy --test spec_run --test toolchain \
  --test update --test user_config --no-fail-fast

Test seams

  • The thirdshift CLI against real Git, stand-in Harness CLIs and the Resend HTTP endpoint: delivered attribution, failure/interruption behaviour, Command ownership and documented log directory contents.

Review

Reviewed against main: Standards found no findings; Spec found one corrupt-record defect, reproduced with its exact command and fixed with the regression retained. Both axes read all ten changed files. Changed files left unread: none.

Unaddressed findings

  • Standards: None.
  • Spec: No remaining findings. The preliminary interruption hypothesis was withdrawn: src/process.rs rejects interrupted stream recovery before the second model write in src/session.rs. Its exact reproduction passed: cargo test --test run_notification an_interrupted_notification_keeps_models_observed_before_the_signal -- --exact --nocapture.

CI notes

  • macOS artifact upload failed with ENOTFOUND reaching GitHub blob storage after a successful build; transient runner DNS/network failure unrelated to this branch; rerun passed on unchanged commit c5b6e92, so no code changes.

Merge Danger

Door: two-way

Reverting restores the previous notification body; no migration is required.

Blast Radius: notifications

Adds model metadata records beside Session logs. Attribution failures warn without changing the Run outcome or preventing notification delivery.

Built with codex · gpt-6.1-sol · high

@JacobStephens2
JacobStephens2 merged commit 4f03b73 into main Oct 10, 2026
17 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-606 branch October 10, 2026 10:59
@JacobStephens2 JacobStephens2 mentioned this pull request Oct 10, 2026
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.

ensure email notice includes details on multiple models involved in run if multiple were used

1 participant