Commit Graph

5 Commits

Author SHA1 Message Date
Jeff Emmett 3b0999da64 feat(rtime): commitment notifications + email delivery channel
- Fire commitment_accepted/commitment_declined notifications when solver
  results are accepted/rejected in intent-routes.ts
- Fire commitment_declined when a connection is deleted in mod.ts
- Add metadata (resultId, fromCommitmentId) to commitment_requested notify
- Fix actionUrl to use /rtime (subdomain-relative), not /{space}/rtime
- Add Accept/Decline action buttons in notification bell for
  commitment_requested events (same pattern as space_invite)
- Add email delivery channel to notification-service: sends from
  {space}-agent@rspace.online via SMTP, respects emailEnabled preference,
  inline HTML template with dark theme

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 14:59:10 -07:00
Jeff Emmett 5b8b638661 feat: add commitment pool + task request canvas shapes for rTime
Two new FolkShape subclasses enable drag-from-pool-to-task interactions on
the canvas. Orbs dragged from the commitment pool highlight matching skill
slots on task request cards and POST connections via the rTime API. Adds
commitment_requested notification type so commitment owners are notified
when their time is requested.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 14:38:41 -07:00
Jeff Emmett 2907935c50 fix(rtime): use getApiBase() for subdomain-compatible URL routing
Replace all hardcoded /${space}/rtime paths with getApiBase() which
derives the correct API base from window.location.pathname. This
supports both subdomain routing (demo.rspace.online/rtime) and
path-based fallback (/demo/rtime).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 22:46:33 -07:00
Jeff Emmett 08cae267fe feat(rtime): add intent-routed resource-backed commitments
Integrate Anoma-style intent routing into rTime so that commitments
become resource-backed intents that a solver can compose into multi-party
collaboration recommendations.

New modules:
- schemas-intent.ts: Intent, SolverResult, SkillCurve, Reputation types + 4 CRDT doc schemas
- solver.ts: Mycelium Clustering algorithm (bipartite graph matching, VP filtering, scoring)
- settlement.ts: Atomic settlement via saga pattern with escrow confirm/rollback
- skill-curve.ts: Per-skill bonding curve (demand/supply pricing)
- reputation.ts: Per-skill reputation scoring with time-based decay
- intent-routes.ts: 10 Hono API routes (intent CRUD, solver, settlement, curves, reputation)

Modified:
- schemas.ts: Added intentId/status fields to Commitment
- mod.ts: Registered 4 new docSchemas, mounted intent routes, added Collaborate output path
- folk-timebank-app.ts: Added Collaborate tab with intent cards, solver results panel,
  accept/reject buttons, create intent modal, skill price display, and status rings on pool orbs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 22:36:06 -07:00
Jeff Emmett b5c6477f47 feat(rtime): add timebank commitment pool & weaving dashboard rApp
Port hcc-mem-staging SPA into rSpace as the rTime module. Canvas-based
commitment pool with physics orbs, SVG weaving editor with hex nodes
and bezier wires, execution panel, and optional Cyclos timebank proxy.
Automerge CRDT persistence, demo seeding, and full landing page
explaining community-based ledgers and emergent collaboration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 23:42:49 -07:00