Repository navigation
Give same-second Commands distinct owned logs and records - #797
Merged
Merged
Conversation
This was referenced Oct 19, 2026
Merged
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.
Summary
Commands started on the same issue in the same second keep separate output and records, including interleaved writes.
Readers retain exact allocated paths, existing human Command names and JSON version 1. Failed acquisition publishes no root record; a later write failure retains the acquired owner and partial file. Session writers remain tokenless for this first slice, with both Session formats readable and explicit record/Model evidence available during the transition.
Closes #795
Evidence
cargo test --bin thirdshift commands_started_on_the_same_issue_in_one_second_keep_separate_output_and_recordsfailed with “starting the second Command erased the first Command output.”After: it passes, with distinct log/record paths and intact interleaved markers. Real temporary-directory allocation and forced-collision tests also pass.
owned_and_legacy_commands_keep_exact_paths_and_record_precedencewith the base readers omitted the selected owned Session fromshow.After: the same test passes through status, show, Command logs, follow and Session selection with mixed legacy/new fixtures.
acquisition_failure_does_not_publish_a_record_claiming_the_existing_logfailed with “a persisted record claims a Command log that was never acquired.”After: the exact test passes using this package's
--bin thirdshifttarget; partial-write retention tests still pass.Validation: full
cargo test,cargo fmt --check, andcargo clippy --all-targets -- -D warnings. Relevant Command-log, Activity-log, status, show/logs, Stop and notification suites were also exercised directly.Test seams
logs::recording::Record) with the fixed-clock file adapter: identical issue/process facts, interleaved bytes, failed acquisition and partial writes.logs::owner::allocateanddecode) with real files and a forced-collision adapter: exclusive ownership and legacy/new filename compatibility.status,show,logs, follow and Stop), using fixture records and fake GitHub/Harness processes: exact paths, history precedence, explicit transitional Session ownership and existing process/parent behavior.Review
Independent
thirdshift-code-reviewaxes usedissue-794as the fixed point and inspected the fixes:CommandRecord::session_references(); no outstanding findings.Both final files-read lists cover all 21 changed paths, including the deleted
src/logs/command_log.rsand the migrated Architect and log-failure fixtures. No generated-output exclusions. Unread changed files: none on either axis. Reports are saved in.thirdshift-review-LggTMu/standards.mdand.thirdshift-review-LggTMu/spec.mdbeside this implementation Session's artifacts.Unaddressed findings
Standards
None.
Spec
None.
Merge Danger
Door: two-way
No migration or deletion of existing artifacts; legacy reads remain supported. Session-writer ownership is deferred to the next Ticket in #794.
Blast Radius: logging
Command artifact allocation and inspection across Run, Spec run and Pass output; process identity, Stop targeting and exact parent/dispatch links remain unchanged.
Built with codex · gpt-6.1-sol · high