Skip to content

release: v1.8.1 — pipeline lock hardening + start-ping (#353) - #362

Merged
Polichinel merged 6 commits into
mainfrom
development
Jul 21, 2026
Merged

release: v1.8.1 — pipeline lock hardening + start-ping (#353)#362
Polichinel merged 6 commits into
mainfrom
development

Conversation

@Polichinel

Copy link
Copy Markdown
Contributor

Patch release: writer lock in standalone scripts (C-316), kernel-level lock crash-safety replacing the age heuristic that broke flock exclusion (C-267), heartbeat /start ping for the SIGKILL blind spot (C-317). Live drill evidence in PR #359. Pipeline-behavior change → server redeploy recommended.

🤖 Generated with Claude Code

Polichinel and others added 6 commits July 21, 2026 11:40
lock crash-safety + heartbeat start-ping (C-316, C-317, C-267, #353)

Age-based stale-lock deletion REMOVED from file_lock: deleting a
live holder's lock file made the next acquirer flock a different
inode, breaking mutual exclusion — the actual mechanism of the
2026-07-21 C-267 misfire. Crash safety is kernel-level (flock
dies with its holder); leftover lock files are harmless.

New datafactory_provenance.pipeline_lock: hold_pipeline_lock()
wired into 9 writer scripts (refuse-fast with holder PID +
remediation; --force-no-lock escape hatch; idempotent per
process; VIEWS_PIPELINE_LOCK_HELD lets refresh_pipeline.sh's own
children through). refresh_pipeline.sh exports that env and sends
$HEARTBEAT_URL/start after lock acquisition (C-317: SIGKILL
bypasses traps — a dangling "started" state alerts at grace
timeout instead of the next monthly schedule).

13 tests: refusal vs live holder, instant release after SIGKILL,
live holder unstealable despite backdated mtime, force/env
bypasses, PID recording, idempotency. Live drill: real script
refused against held real lock naming holder PID; --force-no-lock
bypassed loudly.

Ride-along: D-41 full register entry (fixes summary/entry count
imbalance introduced by PR #355).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix: pipeline writer lock + kernel-level crash-safety + start-ping (C-316/C-317/C-267, #353)
cause removed, C-317 start-ping shipped (open pending live drill)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs: register ops-sitting resolutions (C-316/C-267/C-317)
Patch: pipeline writer lock for standalone scripts, kernel-level
lock crash-safety (stale heuristic removed), heartbeat start-ping.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Polichinel
Polichinel merged commit 20d26ce into main Jul 21, 2026
6 of 8 checks passed
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.

1 participant