docs(adr): ADR-0013 — json sidecar cross-process locking (V-L2-F4)#153
Merged
Conversation
Document V-L2-F4 (#150, shipped in #151), the follow-on that hardened the JSON sidecar after the F3 implementation: - docs(adr): add ADR-0013 — cross-process advisory write lock (`<path>.lock`, stale-steal, RAII) held across load→mutate→save, atomic- rename durability, and the now-wired `provenance`/`history` CLI. Refines ADR-0012 (does not reverse it). - docs(adr): touch up ADR-0012 — its "single-writer limitation" note now forward-references the F4 lock (ADR-0013) so it isn't misleading on main. - docs(changelog): add the V-L2-F4 entry to CHANGELOG.md (mirrors the CHANGELOG.adoc entry #151 added). - chore(config): extend the .claude permission allowlist with the read-only git commands used during these wrap-ups (rev-parse, ls-files, merge-base, remote). Docs + config only; no production code. fmt/clippy/test (145) green on main. https://claude.ai/code/session_01Ux144vBDdySvLUqUrCgkT4
🔍 Hypatia Security ScanFindings: 82 issues detected
View findings[
{
"reason": "Action perpolymath/standards/.github/workflows/governance-reusable.yml@main\n needs attention",
"type": "unpinned_action",
"file": "governance.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action actions/checkout@v4 needs attention",
"type": "unpinned_action",
"file": "rust-ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action dtolnay/rust-toolchain@stable needs attention",
"type": "unpinned_action",
"file": "rust-ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action Swatinem/rust-cache@v2 needs attention",
"type": "unpinned_action",
"file": "rust-ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action actions/checkout@v4 needs attention",
"type": "unpinned_action",
"file": "rust-ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action dtolnay/rust-toolchain@master needs attention",
"type": "unpinned_action",
"file": "rust-ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Action Swatinem/rust-cache@v2 needs attention",
"type": "unpinned_action",
"file": "rust-ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
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.
Documents V-L2-F4 (#150, shipped in #151) — the follow-on that hardened the JSON sidecar after F3 — and runs the standard wrap-up. Docs + config only; no production code.
Document
<path>.lock, bounded backoff + stale-steal, RAII release) held across the whole load→mutate→save cycle; atomic-rename durability; the now-wiredprovenance/historyCLI (sqlite + json; postgres still explicit "not yet implemented"). Framed as refining ADR-0012, not reversing it.main.CHANGELOG.adocentry feat(sidecar): cross-process locking + atomic writes, and wireprovenance/historyCLI (V-L2-F4, #150) #151 added).Config
.claude/settings.json— extends the read-only permission allowlist with the git commands these wrap-ups use repeatedly (rev-parse,ls-files,merge-base,remote).Validation
cargo fmt --check,cargo clippy --all-targets -- -D warnings,cargo test(145 pass) all green onmain+ these changes;settings.jsonvalid JSON; ADR 0012⇄0013 cross-references consistent.Follows the V-L2-F* arc: F2 drop (#144/#147/#149) → F3 implement (#148/#152) → F4 harden (#151, this PR documents it).
Generated by Claude Code