Collaborative operation server: teammates, membership, presence, tasks, and event stream #13
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#13
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 has a local operation model but no collaborative runtime for multiple investigators. Adding collaboration directly to the local operation classes without reusing StarIntel auth/events would duplicate server infrastructure and make synchronization brittle.
Current behavior
starintel-serveralready owns authenticated user records, principal types, scopes, password/session lifecycle, and credential storage.starintel-serveralso has a durable actor-event contract with validation, idempotent CouchDB persistence, retry, dead-letter/quarantine, trace IDs, and generation metadata.Desired behavior
Add a Hackmode collaboration/server subsystem centered on shared operations without creating another identity/event stack.
Initial capabilities:
Architecture
Start with useful actors, not dozens of empty classes:
HackmodeServer-> OperationSupervisor-> shared Operation session-> Membership/Presence actor-> Task registry actor-> Operation event bridge-> StarIntel synchronization bridgeReuse StarIntel principals/users for remote identity and the StarIntel actor-event shape where it fits. Hackmode operation events should retain
operation,principal/actor,event type,source id,trace id, timestamp, and provenance.Local operation state remains usable offline. Collaboration is an enhancement, not a dependency for opening or running a local operation.
Protocol
Define protocol messages before HTTP/UI endpoints, e.g.:
Transport can then expose the same protocol over local Lisp calls and a server boundary.
Dependencies
starintel-serveronly if a missing primitive is provenAcceptance criteria
Verification
Use deterministic in-memory/fake transports first: