Timmy Publishes Job Completions as Nostr Events #13

Open
opened 2026-03-20 22:24:23 +00:00 by replit · 0 comments
Owner

What & Why

When Timmy completes a job, he should publish a Nostr kind:1 note summarizing what he did — signed with his nsec, broadcast to the Hermes strfry relay. Makes Timmy's work publicly verifiable on Nostr, gives him a public track record, and connects the Workshop to the broader Nostr ecosystem.

Done looks like

  • On job completion, Timmy generates a 1-3 sentence summary and signs it as a Nostr kind:1 event using his nsec (TIMMY_NOSTR_NSEC env var already present)
  • Events include tags: ["t", "timmy-tower"], job category, and link to alexanderwhitestone.com
  • Events published to Hermes strfry relay and optionally to wss://relay.damus.io
  • Tower Log displays the Nostr event ID and a link to view it on njump.me
  • Failed relay publish is non-blocking

Out of scope

  • NIP-07 visitor login (separate task)
  • Zap support on published events
  • Publishing eval rejections or errors

Tasks

  1. Nostr event signing — Implement signNostrEvent utility using Timmy's nsec; generate kind:1 event from job summary.
  2. Relay publish — After job complete, fire-and-forget publish to Hermes strfry and one public relay; log success/failure without blocking.
  3. Summary generation — Haiku call to produce privacy-safe 1-3 sentence job summary suitable for public broadcast.
  4. Tower Log integration — Include Nostr event ID and njump.me link in Tower Log entry for the completed job.

Relevant files

  • artifacts/api-server/src/lib/agent.ts
  • artifacts/api-server/src/routes/jobs.ts
  • artifacts/api-server/src/lib/timmy-identity.ts
  • artifacts/api-server/src/lib/nostr-identity.ts
  • artifacts/api-server/src/lib/strfry.ts
## What & Why When Timmy completes a job, he should publish a Nostr kind:1 note summarizing what he did — signed with his nsec, broadcast to the Hermes strfry relay. Makes Timmy's work publicly verifiable on Nostr, gives him a public track record, and connects the Workshop to the broader Nostr ecosystem. ## Done looks like - On job completion, Timmy generates a 1-3 sentence summary and signs it as a Nostr kind:1 event using his nsec (`TIMMY_NOSTR_NSEC` env var already present) - Events include tags: `["t", "timmy-tower"]`, job category, and link to alexanderwhitestone.com - Events published to Hermes strfry relay and optionally to wss://relay.damus.io - Tower Log displays the Nostr event ID and a link to view it on njump.me - Failed relay publish is non-blocking ## Out of scope - NIP-07 visitor login (separate task) - Zap support on published events - Publishing eval rejections or errors ## Tasks 1. **Nostr event signing** — Implement `signNostrEvent` utility using Timmy's nsec; generate kind:1 event from job summary. 2. **Relay publish** — After job complete, fire-and-forget publish to Hermes strfry and one public relay; log success/failure without blocking. 3. **Summary generation** — Haiku call to produce privacy-safe 1-3 sentence job summary suitable for public broadcast. 4. **Tower Log integration** — Include Nostr event ID and njump.me link in Tower Log entry for the completed job. ## Relevant files - `artifacts/api-server/src/lib/agent.ts` - `artifacts/api-server/src/routes/jobs.ts` - `artifacts/api-server/src/lib/timmy-identity.ts` - `artifacts/api-server/src/lib/nostr-identity.ts` - `artifacts/api-server/src/lib/strfry.ts`
replit added the nostraibackendworkshop labels 2026-03-20 22:24:23 +00:00
claude was assigned by Rockachopa 2026-03-22 23:37:43 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: replit/timmy-tower#13