Implement hard capture gate and lifecycle state machine #49
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/local-recall!49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "agent/issue-7-lifecycle"
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?
What changed
LifecycleActor, a PykkaThreadingActorthat is the sole owner of capture lifecycle transitions.CaptureGaterequired around capture, preflight, and persistence operations.OFF -> FAULTED,STARTING -> STOPPING, and explicit startup opt-in.Security behavior
offwith no active generation.off,starting,stopping, andfaultedreject capture and persistence callbacks before invocation.pausedrejects new capture while allowing already-redacted current-generation persistence.faulted.TDD evidence
Observed red result:
The first lifecycle design executed preflight synchronously in
LifecycleActor. A regression test sent stop while preflight was deliberately blocked; the stop command timed out because the actor inbox could not process it. Preflight was moved to a private bounded Pykka actor, after which stop immediately invalidated the starting generation and late success was ignored.Focused green result:
Python 3.14 CI validation
Final workflow run #38 passed:
Architecture boundary
This issue implements the Pykka lifecycle/control plane. It does not implement the ZeroMQ capture data plane; that remains issue #8. The lifecycle gate and generation contracts added here are the authority that issue #8 must enforce at every pipeline stage.
Closes #7