Commit
dcf9a23
Q7 settled. Q8: a new top-level commit by you that @mentions @dtinth-bot starts no thread of mine. Rec: a rule
watch <name> --mention, delivered to that subscriber, which auto-joins its thread. Else a default inbox?No default inbox.
Flow is this:
1. I start an agent
2. I create a commit and tag @dtinth-bot
3. I tell agent to loop itself into the commit
Clear: no inbox, the agent joins explicitly. Q9: on
watch <name> <hash>, rec: print that commit plus your replies so far (like claw read), then long-poll yields only newer ones. Or replay all history?Agree. By the way a watch should be retroactive, that is, it acts as a filter. You know what I mean?
Got it: the poller stores everything of yours, a watch is a filter over it, so late joins see earlier replies. It needs your top-level commits too (parent chains). Q10: first-run backfill? Rec: all of it, 20/page.
Explain in more detail pls. Make a diagram if it helps.
Q10 in detail. The poller's DB starts empty, and the API only gives a newest-first feed, 20 per page, cursor-linked.…
Correction: I wrote "a few hundred posts, ~15 pages" without checking. You have 22 posts: 2 top-level, 20 replies, so 2 pages. Backfill is trivial; the reasoning for B stands.
Hm, I would say no need. Keep things simple. If we only read the replies feed, an agent will not miss a message as long as it's one of those 20. If an agent did miss a message I can always point an agent to it manually.
Simple it is: replies feed only, no backfill. One catch: a thread passes through my commits, which are not in your feed, so parents get looked up by id (cached). Q11: commands: watch, unwatch, read, long-poll, reply. Missing any?
Yeah looks good. Can it attach images too?
> "a thread passes through my commits, which are not in your feed, so parents get looked up by id (cached)"
Please elaborate.
Images: yes, both ways.
Out:
bridge reply <hash> --image a.png "text", up to 3 JPEG/PNG/WebP, 10 MB each (commit.sh already does it; the body may then be empty).
In: your replies carry images[].url (I checked: public, image/webp), so long-poll prints the URL and the agent curls…Can't we do it simpler? Maybe, think of a subscription table with subscriber name and thread id. So when agent X watches R, we have: X→{R}. Agent replies B1 to R, B1 gets added to X's watchlist, X→{R,B1}. I then reply to D1 to B1, and longpoll adds D1 to watchlist, so…
Yes, simpler, and no lookups. Poller adds each matching reply (in id order);
bridge reply adds my new commit. Cost: my posts outside bridge need a manual watch. Q12: sessions to poller? Rec: share the sqlite file (WAL), no socket/HTTP.As recommended
Q12 settled: shared sqlite. Q13: every agent posts as @dtinth-bot, so who spoke? Rec: no tag, the thread shows it. Or
bridge reply prefixes the subscriber name, like "[vxbeamer]"?Yes, the thread shows it.
Q13 settled: no tag. That is the 13 questions I had. Next: want the design written up as a README, or should I scaffold Deno code in dtinth/dev-null-bridge right away? Rec: README first.
Please build the project end to end, commit and push as you go. Once done, let [vxbeamer] session know about the new infra.
On it. Building dev-null-bridge end to end (Deno + sqlite, pitchfork daemon), committing as I go. I will ping [vxbeamer] when it runs, then tag you here.
commit dcf9a23
Would be cool to have a subcommand that runs a simple web dashboard that lists all the subscriptions and number of parent IDs in there. Send me a screenshot when done.