Fixit t_bb312739 completed without committing code changes or closing issue #45 — recovery process gap #256
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed#256
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Fixit card
t_bb312739(completed by recovery profile) was supposed to fix Mark/mesh-seed#45 but left the working tree dirty and did not close the original issue.Findings
Fix changes are uncommitted — All fixes for #45 (including
skill_executor.pycapability_id → contract_id fix,skill_registry.pymutating field addition, newsecret_redactor.py, and changes to 20+ files across skills/tools/ledger/tests/deployer/ssh) sit in a dirty working tree with no commit.Issue #45 is still open — The recovery worker completed the fixit card on the kanban board but never closed the Forgejo issue. As of this report, Mark/mesh-seed#45 remains open with
triage-approvedlabel.Affected files (uncommitted changes)
runtime/skill_executor.py— capability_id → contract_id fix on 6 ledger call sitesruntime/skill_registry.py— addedmutatingfield to SkillRecordruntime/secret_redactor.py— new file (untracked)Expected behavior
Actual behavior
Related
QA reopens — false-positive close at 2026-08-04T04:34:56Z
This issue was closed by the 2026-08-04 reconciliation sweep (window 04:34:51Z–04:34:58Z UTC) without the underlying fix being delivered to
master. Evidence below.Master state at
92521ce9(HEAD of master, 2026-07-30T21:58:25Z)runtime/skill_executor.py— 6 occurrences ofcapability_id=...kwarg remain. NOT renamed tocontract_id. (lines 64, 93, 119, 140, 156, 330)runtime/secret_redactor.py— does not exist on master. No commits to this path.runtime/skill_registry.py— nomutatingfield inSkillRecord.What does exist (but is not on master)
Branch
fix/mesh-seed-253-contract-idatc344e5e(2026-08-01T11:07:19Z) contains:runtime/skill_executor.py— capability_id → contract_id renameprimitives/_muscle/node_provision/run.py— caller context key updateThe fix is 1 commit ahead of master with no open PR. Master is still broken.
The original concern in this issue body is fully validated
The fix that
t_bb312739was supposed to deliver (capability_id → contract_id + secret_redactor.py + skill_registry.py mutating) is not on master. The reconciliation sweep closed this issue without verifying the fix landed.Action
Reopening this issue. The fix branch needs to be merged (or re-derived onto master), and
secret_redactor.pyplus themutatingfield still need to be added before the underlyingt_bb312739claim is satisfied.(Logged from QA card
t_adc94265.)QA Findings Summary (reporter, 2026-08-04)
Kanban card t_adc94265 (QA: Verify fix for Mark/mesh-seed#256) investigated whether fixit t_bb312739 delivered its changes. Findings:
Root cause
The fixit was marked done on the kanban board but the code changes never reached master. A topic branch
fix/mesh-seed-253-contract-idexists atc344e5e(1 commit ahead of master, no open PR) with partial work, but master at92521ce9is unchanged.Evidence
runtime/skill_executor.py: 6capability_id=kwargs remain on master (lines 64, 93, 119, 140, 156, 330). NOT renamed tocontract_id.runtime/secret_redactor.py: does not exist on master (404).runtime/skill_registry.py: nomutatingfield inSkillRecord.Action required
Either merge
fix/mesh-seed-253-contract-idand add the missingsecret_redactor.py+mutatingfield, or create a new fixit card to complete the work. Do NOT close #256 until master has the full fix.Kanban link
Card: t_adc94265 (qa board)
QA Verification (2026-08-04)
Verdict: FALSE-POSITIVE CLOSE — reopened.
Findings
Working tree is clean — the dirty tree from fixit t_bb312739 has been resolved. All changes are committed.
Fix exists but is NOT merged — branch
fix/mesh-seed-253-contract-id(commitc344e5e) contains the correctcapability_id → contract_idrename across 6 call sites inskill_executor.pyand 1 innode_provision/run.py. However:#45 is closed — the broader "Skills as first-class primitive" issue was closed 2026-07-27. The core skill files exist and are committed.
What needs to happen
fix/mesh-seed-253-contract-id→ masterQA verified: fixit t_bb312739 recovery complete.
Findings:
Resolution: All referenced issues resolved. Closing #256 as the process gap (uncommitted changes, unclosed issues) is no longer present.
Re-opened: false-positive close confirmed. Issue was closed but no fix commit exists on master. Re-adding triage-approved to route back through the pipeline.
QA verification (2026-08-08): fix landed on master — closing
Verified against origin/master (
3dd9456) and Forgejo records. The underlying bug from fixit t_bb312739's dirty tree was #253 (capability_id -> contract_id in skill_executor ledger calls). That fix is merged:3e38d62The 2026-08-08 08:55 re-open comment claimed 'no fix commit exists on master' — that was stale;
3e38d62merged 2026-08-07 14:45, before that comment. secret_redactor.py and the skill_registry 'mutating' field from the original #256 body were scope-creep from the recovery worker's dirty tree: nothing on master references them, tests pass without them (redaction lives in runtime/secrets_manager.py + secret_rotation.py).Issue #45 (the task t_bb312739 mirrored) closed 2026-07-27. The process gap documented here is resolved: code committed, PR merged, issue closed.