- 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
24 lines
716 B
Plaintext
24 lines
716 B
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>Label</key>
|
|
<string>ai.shre.pulse-bridge</string>
|
|
<key>ProgramArguments</key>
|
|
<array>
|
|
<string>/usr/bin/python3</string>
|
|
<string>/Users/aibot/Documents/Projects/pulse-bridge/bridge.py</string>
|
|
</array>
|
|
<key>RunAtLoad</key>
|
|
<true/>
|
|
<key>KeepAlive</key>
|
|
<true/>
|
|
<key>ThrottleInterval</key>
|
|
<integer>30</integer>
|
|
<key>StandardOutPath</key>
|
|
<string>/Users/aibot/.shre/pulse-bridge/bridge.log</string>
|
|
<key>StandardErrorPath</key>
|
|
<string>/Users/aibot/.shre/pulse-bridge/bridge.log</string>
|
|
</dict>
|
|
</plist>
|