5 Commits
Author SHA1 Message Date
Nirav Patel c0c5a9feb6 Add ledger lifecycle tags and Dash Kanban mirror 2026-08-23 16:06:28 -04:00
Claude f168ad6f4c needs-you escalations carry a live @mention (mib007 mention crash fixed)
mib007's mention path is fixed (Nirlabinc/mib007 PR #32): mention resolution
is now fire-and-forget server-side (a lookup failure can no longer 500 the
POST after the insert), and an @handle matching an active workspace-member
user's lower(name) creates a comment.mention notification.

- update_body: the needs-you escalation line now emits a real @handle instead
  of the zwsp-neutralised one, so the human actually gets pinged.
- neutralize() stays for all ledger-derived text (titles/details/notes): item
  text containing @aros/@ellie must not accidentally fire an agent reply.
- bridge.env: PULSE_BRIDGE_MENTION nir -> rapidnir. 'nir' resolves to nothing
  (mentions match lower(user.name) over ACTIVE workspace members; the only
  human members of Nirlab Command Center are Board and RapidNir).

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YECpkAwQUwgu7NVy91R8fW
2026-08-22 17:36:51 -04:00
Nirav PatelandClaude Fable 5 5896d6cab1 intake: configurable chat-only opt-out prefixes (💬, chat:)
Posts starting with an opt-out prefix (PULSE_BRIDGE_INTAKE_OPTOUT,
case-insensitive) are never turned into a ledger item or kanban task and
get no bridge reply. Codex review: no findings.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YECpkAwQUwgu7NVy91R8fW
2026-08-22 16:12:35 -04:00
Nirav PatelandClaude Fable 5 54b705b073 v1 intake: Pulse posts become ledger items + dispatched kanban tasks
- new top-level non-bridge posts in the activity channel -> shre-items
  pipeline item (tag pulse-intake) + hermes kanban task (idempotency-key
  pulse-<post id>, created-by pulse-bridge) + ack comment
- outbound dedupe: ledger->post map seeded with the user's post id before
  the op:add hits the feed, so the mirror adopts the post
- status tracking via one 'kanban list --json' per poll: running/blocked/
  done comments on the post, ledger stage build -> done
- cap 3 concurrent intake tasks; overflow queued with a comment and
  promoted when slots free; intake state in the same atomic state.json
- first intake run only sets the checkpoint (no history ingestion)

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YECpkAwQUwgu7NVy91R8fW
2026-08-22 15:00:35 -04:00
Nirav PatelandClaude Fable 5 9a862bee2b pulse-bridge v0: mirror shre-items ledger into Pulse (mib007 comms) posts
- daemon polls shre-items feed every 30s with inclusive-window (id,op,at) dedupe
- op:add -> post in 'activity' channel; op:update -> threaded comment
  (stage/kind/attempt/note, needs-you escalation mentions @nir);
  op:close -> done/dropped comment
- first run seeds currently-open items only
- state (checkpoint + ledger->post map) atomic at ~/.shre/pulse-bridge/state.json
- launchd ai.shre.pulse-bridge (KeepAlive, logs to bridge.log)
- '@' in ledger-derived text neutralised (zwsp) so comms agent-mention
  regex can never fire an AI reply from item content

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YECpkAwQUwgu7NVy91R8fW
2026-08-22 14:41:31 -04:00