Persistent operation outbox: offline-safe idempotent ingest to StarIntel Server #12
Labels
No labels
bug
documentation
duplicate
enhancement
feature
good first issue
help wanted
invalid
question
refactor
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/hackmode#12
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?
Problem
Hackmode operations are local-first, but there is no durable synchronization path from an operation-local Tek9 store to
starintel-server. Recon must continue while the central server is offline, and synchronization must not duplicate documents or silently lose poison messages.Current behavior
starintel-serveralready exposesPOST /new/document/:dtypeandPOST /documents/bulk; those endpoints publish documents to the existing RabbitMQ ingest routing.Hackmode should therefore reuse the server's existing ingest boundary rather than introduce another RabbitMQ transport stack.
Desired behavior
Persist outgoing StarIntel-compatible documents locally before transmission and synchronize asynchronously through an operation outbox.
Lifecycle:
asset/result -> document projection -> local operation store -> persistent outbox -> StarIntel HTTP ingest -> acknowledgedSuggested states:
queuedsendingacknowledgedretryfailedquarantinedArchitecture
Create a small transport-neutral outbox protocol in Hackmode core and an HTTP StarIntel ingest adapter.
The outbox record must include at minimum:
Do not delete acknowledged records immediately unless retention/compaction policy is explicit; debugging and idempotency need durable state.
The sender should be actor/job friendly and must never block the operation REPL/Emacs UI on network availability.
Idempotency
quarantinedrecords, never silently droppedDependencies
Acceptance criteria
Verification
Cross-repo note
If the existing StarIntel HTTP endpoint cannot provide enough acknowledgment/idempotency information, open a narrowly scoped
starintel-serverissue to extend the existing endpoint. Do not invent a parallel Hackmode-specific ingest RPC.