65693b15693d112bbe91750f53df2cc09c54555d
On job completion, Timmy generates a privacy-safe 1-3 sentence summary (via Haiku) and broadcasts it as a signed Nostr kind:1 note. - New `nostr-publish.ts` utility: signs event with Timmy's nsec, publishes to Hermes strfry (HTTP inject) and optionally to an external relay (wss://relay.damus.io) via NIP-01 WebSocket. Failed publishes are non-blocking (warn + continue). - `AgentService.generateJobSummary()`: Haiku call producing a public-safe summary and category slug; falls back to canned text in stub mode. - `runWorkInBackground` fires the broadcast fire-and-forget after the job DB row is committed; persists the event ID on `jobs.nostr_event_id`. - Tags: `["t","timmy-tower"]`, job category, link to alexanderwhitestone.com. - Tower Log includes nostrEventId + njump.me link in the completion log entry. - DB schema: `nostr_event_id` on `jobs`, `job_id` on `timmy_nostr_events`. - Migration: `0009_nostr_job_completions.sql`. Fixes #13 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
Timmy Tower World — sovereign AI agent economy
Languages
TypeScript
68.9%
JavaScript
15.5%
Shell
10.6%
HTML
4.5%
CSS
0.4%