Skip to content

gondolier — TODO Tracker

Last updated: 2025-01-XX

# Task Status Owner Notes
1 Fix LeaseDO error 1101 ✅ FIXED Root cause: this.ctx.storage.idFromName() is not a method on DurableObjectStorage. Fixed by using this.ctx.storage directly inside DO methods. idFromName belongs on the DO class (env.LEASE_DO.idFromName), called in worker routing code.
2 Verify lease DO works end-to-end ✅ VERIFIED acquire → {"acquired":true}, check → {"locked":true}, release → {"released":true}
# Task Status Owner Notes
5 Wire cron scheduled() to actually tick queues Open Stub exists. Needs: fetch active repos from Supabase → acquire lease → run engine → release.
# Task Status Verified
131 Go Workers engine implementation (main.go, internal/worker/webhook.go, shunt mq.Engine wired) TODAY
132 Delete shunt-engine.mjs (replaced by Go engine) TODAY
101 Scaffold shunt integration PR #2 open
102 Supabase migrations (001-003) 8 tables created
103 KV namespace RATE_LIMIT_KV Provisioned
104 Cloudflare Worker deployed gondolier.laputa-cloud-co.workers.dev + route gondolier.dev/*
105 DNS CNAME gondolier.dev Unproxied, route handles TLS
106 Cloudflare Secrets injected SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, ADMIN_KEY, GONDOLIER_MASTER_KEY
107 Native JS REST API in index.mjs Replaces Go WASM stub
108 API endpoints: tenants CRUD POST/GET /tenants, GET/DELETE /tenants/:id
109 API endpoints: connections CRUD GET/POST /tenants/:id/connections, DELETE /tenants/:id/connections/:connId
110 API endpoints: repos CRUD GET/POST /tenants/:id/connections/:connId/repos, DELETE /repos/:rid
111 Auth middleware (SHA-256 key hash) X-API-Key header
112 Rate limiter (KV-based) 100 req/window
113 Wrangler.toml: DO binding LEASE_DOLeaseDO
114 Wrangler.toml: migration v1 new_sqlite_classes = ["LeaseDO"]
115 Wrangler.toml: cron trigger */5 * * * *
116 LeaseDO class exported from entrypoint export { LeaseDO }
117 LeaseDO acquire/release/check All 3 operations verified working
118 Stub auth endpoints (redirect, callback, JWT, /me, /logout) index.mjs + 004_auth_billing.sql
119 Stub billing endpoints (/checkout, /portal, /stripe/webhook) index.mjs + 004_auth_billing.sql
120 Supabase migration 004 (oauth_client_id, encrypted_oauth_client_secret, webhook_secret) 004_auth_billing.sql
# Task Depends on
201 Wire cron scheduled() to tick queues
204 GitHub OAuth + JWT sessions (replace stub)
205 Stripe billing integration (replace stub)
207 Docs site (Astro)
  • Cron scheduled() is a stub — no actual engine tick logic wired
  • Rate limiting blocks rapid test requests (KV TTL 60s)
  • index.mjs still exists alongside main.go — keep until Go Worker verified in production