Repository navigation
Conversation
abruption
force-pushed
the
fix/126-linux-flock-evidence
branch
from
October 14, 2026 02:31
854bc35 to
b483cd5
Compare
This was referenced Oct 14, 2026
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.
Problem and proposed behavior
A held lock plus one visible opener does not prove that the opener participates in that lock. This draft adds Linux descriptor-level granted FLOCK evidence tied to the original inode, same-user process start ticks and sampled execution state. The independent OS probe remains separate. Final attribution runs synchronously under native coordination, which is released before SIGTERM.
Collection has FD-count, byte and elapsed-work budgets. Unsupported storage/namespace mappings and denied, malformed, changed or ambiguous evidence refuse recovery. Positive participation does not establish sole lifetime control, complete visibility or atomic PID signaling. JSON v1 adds optional owner.startTicks, owner.commandFingerprint and lock.probe.participation; the command fingerprint hashes the executable-path string and cmdline bytes, not executable-image contents.
Prerequisite #135 has merged. This branch is rebased onto the v0.4.6 main commit
3bc40919446c47d274b2d369d08ea1cdf373b74b. It remains Draft in v0.4.7; no merge or publication is proposed while the research gates below remain open.Validation and evidence limits
f9a031f0317a23ef9384da1c2de2c464e5923b67, CI run 38397383963 passed all 33 checks. Linux x64 Node24 reported 245 total, 244 passed and one filesystem-case-sensitivity skip. Actual synthetic FLOCK participation, inherited descriptions, nonlocking candidates, fdinfo denial and signal-boundary cases were exercised. These results do not measure a deployed native Codex process.38751846ef1c8755e929285d37ee5580de489a440bacd9d4a2ed692a82ffd4f4; revised source input:c8c8ed1372e7c8f3ab67b667d3bd6b2ab9078471d3f19c3f44ec59d2fd92ae75. Reviewers did not certify later commits or run Linux tests.854bc35c7d4b9d68882f29fefb178c1cf617c162passed local diff and package checks but CodeQL could not analyze C# or Rust because that older branch contained neither language's source files. The rebase includes the actual source from main without altering CodeQL settings.b483cd587c62329243366e64aaaac477edd36adc: npm ci/check/lint/test/package smoke andgit diff --checkpassed. Local suite: 278 total, 272 passed, six Linux-only skips, no failures. Range comparison preserves all seven draft-specific commits; the two fix: preserve lossless lock and transcript identities #135 identity commits were already present on main. All 39 PR checks passed, including repository CI run 38501519527 and CodeQL run 38501514971. CodeQL passed all five language analyses, including C# and Rust. No automatic review comments were visible when these results were checked; earlier source reviews do not certify this commit.092d3acd6bec3e3a14bdc7e7a2810ab628ab759dfound calls in the responses API proxy, voice host and sandbox host bridge; the ordinary CLI entry point does not directly call those functions. This is not an exhaustive call-graph proof or evidence that a deployed writer is necessarily dumpable.Remaining draft gates
Refs #126 and #100. No force mode, owner SIGKILL, native-file removal, privilege elevation or Windows support is added. Keep #126 open until its acceptance criteria and the remaining gates are satisfied.