Add persistent offline-safe StarIntel operation outbox #18
No reviewers
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!18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "agent/persistent-operation-outbox"
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
Implements #12 as a durable operation-local outbox layered on the existing Tek9 store and StarIntel HTTP ingest boundary.
Persistence and idempotency
outboxState machine
Durable states:
queuedsendingretryacknowledgedfailedquarantinedack-kind :ingest-acceptedexplicitly means the StarIntel HTTP boundary validated and published the document to its ingest broker. It does not claim CouchDB persistence has already completed.Retry / poison handling
quarantinedfailedsendingis recoverable after process death, so a crash between send-start and response does not strand the recordTransport
make-starintel-http-transportreuses the existing server route:POST /new/document/:dtypeNo RabbitMQ credentials or second message transport are added to Hackmode. Credentials/headers, if needed, are supplied by a callback immediately before HTTP request and are never persisted in the outbox record.
Async actor
Adds a Sento outbox actor with a dedicated dispatcher:
start-outbox-actordrain-outbox-asyncInteractive clients can queue a drain and return immediately instead of performing network I/O on the REPL/Emacs thread.
Tests
Extends the real clean-runner
asdf:test-system :hackmodesuite for:No live StarIntel server is required; transport behavior is deterministic/fake in tests.
Closes #12 when both
coreandmonorepoworkflows pass.