CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
Blame · Line-by-line history
ROADMAP.md
Each line is annotated with the commit that last touched it. Click any SHA to jump to that commit and see the surrounding change.
| 3bf10d4 | 1 | # Gluecron Roadmap & Checklist |
| 2 | ||
| 4aee345 | 3 | **Living document. Last updated: 2026-05-20. Edit as items move.** |
| 3bf10d4 | 4 | |
| 5 | This is the single source of truth for what's done, what's in flight, what's | |
| 6 | critical for the next demo, and what's queued for after. If it's not on this | |
| 7 | list, it's either not real or not committed to. Update it every time we | |
| 8 | ship something or learn something new. | |
| 9 | ||
| 10 | --- | |
| 11 | ||
| 12 | ## 🚨 BLOCKING — must do before tomorrow's onboarding | |
| 13 | ||
| 14 | These take ~10 minutes total. Without them the demo doesn't show what gluecron actually is. | |
| 15 | ||
| 16 | - [ ] **SSH to Hetzner box, edit `/etc/gluecron.env`, add:** | |
| 17 | - [ ] `ANTHROPIC_API_KEY=sk-ant-...` (from console.anthropic.com) | |
| 18 | - Without this: AI PR review, AI incident responder, AI commit messages, AI auto-merge, AI spec-to-PR are ALL silent no-ops. The entire "AI-native git host" pitch is dark. | |
| 19 | - [ ] `EMAIL_PROVIDER=resend` | |
| 20 | - [ ] `RESEND_API_KEY=re_...` (from resend.com — free tier covers thousands of emails) | |
| 21 | - [ ] `EMAIL_FROM=noreply@gluecron.com` (or whatever domain you have set up) | |
| 22 | - [ ] `GATETEST_API_KEY=...` (so push-time security scans actually run instead of silent no-op) | |
| 23 | - [ ] `DEPLOY_EVENT_TOKEN=$(openssl rand -hex 32)` (also add the SAME value to GitHub repo Settings → Secrets → Actions) | |
| 24 | - [ ] `SELF_HOST_REPO=ccantynz-alt/Gluecron.com` (fixes the "platform repo not found" warn) | |
| 25 | - [ ] `systemctl restart gluecron` to pick up the env vars | |
| 26 | - [ ] Open `/admin/health` — confirm everything turns green/non-red | |
| 27 | ||
| 28 | - [ ] **Configure social sign-in (optional but valuable):** | |
| 29 | - [ ] `/admin/google-oauth` — paste Google OAuth Client ID + Secret | |
| 30 | - [ ] `/admin/github-oauth` — paste GitHub OAuth Client ID + Secret | |
| 31 | ||
| 32 | - [ ] **Dry-run the demo in incognito:** | |
| 33 | - [ ] Sign up as a fake user | |
| 34 | - [ ] Verify the auto-verify fallback works (no email needed) | |
| 35 | - [ ] Create a repo | |
| 36 | - [ ] Push some code (use a small public repo) | |
| 37 | - [ ] File an issue labelled `ai:build` — confirm autopilot picks it up | |
| 38 | - [ ] Open a PR — confirm AI review fires (now that ANTHROPIC_API_KEY is set) | |
| 39 | - [ ] Merge the PR | |
| 40 | ||
| 41 | --- | |
| 42 | ||
| 43 | ## 🟡 IN FLIGHT — finishing now | |
| 44 | ||
| 45 | - [ ] **4 polish agents still running:** | |
| 46 | - [ ] Agent J — `/help` page polish | |
| 47 | - [ ] Agent K — marketing pages (`/features`, `/about`, `/vs-github`) | |
| 48 | - [ ] Agent L — `/settings/tokens` (PAT creation) | |
| 49 | - [ ] Agent M — `/:owner/:repo/compare` (branch compare for new PRs) | |
| 50 | - [ ] **Agent N (repo settings)** committed `c14f275` to worktree — cherry-pick onto main with the others when batch completes | |
| 51 | ||
| 52 | --- | |
| 53 | ||
| 54 | ## ✅ DONE this session (commits already on main) | |
| 55 | ||
| 56 | ### Reliability sweep (Phase 1) | |
| 57 | - [x] AA reload loop killed (PWA ripped out, kill-switch shipped) — `d7ba05d`, `44fe49b`, `904927d` | |
| 58 | - [x] Hetzner deploy git-remote URL fixed (was 404'ing 17h) — `ec16b67` | |
| 59 | - [x] Minimum-viable Hetzner script with `set -x` tracing — `d8b9606` | |
| 60 | - [x] Migration step re-added to deploy — `a358c63` | |
| 61 | - [x] AUDIT.md + AUDIT-v2.md produced (4-agent + 5-agent audits) | |
| 62 | - [x] Silent failure sweep across 18 files — `a28cede` | |
| 63 | - [x] `/admin/health` + JSON endpoint + autopilot/deploy/queue/crontech checks — `115c66b` | |
| 64 | - [x] AI incident responder for platform deploy failures — `89a0761` | |
| 65 | - [x] Deploy paths unified (`scripts/self-deploy.sh` is canonical) — `ff4423b` | |
| 66 | - [x] `/admin/diagnose` auto-merge check uses SELF_HOST_REPO — `a3b6378` | |
| 67 | ||
| 68 | ### Polish — marketing surfaces (Phase 2.1) | |
| 69 | - [x] Web fonts (Inter + Inter Tight + JetBrains Mono) — `3a5755e` | |
| 70 | - [x] Animated hero blobs + bigger headline — `3a5755e` | |
| 71 | - [x] Pricing: "One subscription. Replaces three on GitHub." + bundle-math card — `13ac035` | |
| 72 | - [x] Login + Register premium gateway feel — `98f45b4` | |
| 73 | - [x] Global page entrance animation + accent focus rings — `ed6e438` | |
| 74 | ||
| 75 | ### Polish — auth + dashboard (Phase 2.2) | |
| 76 | - [x] Real Sign in with Google (`/admin/google-oauth` + login button + tests) — `582cdac` | |
| 77 | - [x] Dashboard: greeting eyebrow + gradient title + animated orb — `a004c46` | |
| 78 | ||
| 79 | ### Polish — app-level surfaces (parallel batch 1) | |
| 80 | - [x] Repo home page (`/:owner/:repo`) — `544d842` | |
| 81 | - [x] Issues UI (list + detail, AI-comment treatment) — `f7ad7b8` | |
| 82 | - [x] Pull requests UI (list + detail, gate-status + merge card) — `b078860` | |
| 83 | - [x] User settings (8 section cards + danger zone) — `98eb360` | |
| 84 | ||
| 85 | ### Polish — onboarding surfaces (parallel batch 2) | |
| 86 | - [x] Code browse (file viewer + commit detail + new repo + profile + per-repo search) — `efb11c5` | |
| 87 | - [x] Notifications page (hero + filter pills + AI-row treatment) — `fd8be1f` | |
| 88 | - [x] Import flow (`/import` + `/import/bulk`) — `7a99d47` | |
| 89 | - [x] Discovery (`/explore` + `/search`) — `283fbc2` | |
| 90 | - [x] Admin panel (hero + stat cards + 11-tile action grid) — `07f4b70` | |
| 91 | ||
| 92 | **Cumulative this session: 20+ commits on main. 2011/2011 tests pass. TypeScript clean.** | |
| 93 | ||
| 94 | --- | |
| 95 | ||
| 96 | ## 🟢 SHOULD ship tonight if time (high leverage, low risk) | |
| 97 | ||
| 98 | - [ ] **Build `/admin/integrations` page** — env vars via UI instead of SSH'ing to the box. ~1.5 hrs. | |
| 99 | - DB-stored config (encrypted secret column) | |
| 100 | - `getConfigValue(key)` helper that checks DB first, env var fallback | |
| 101 | - Site-admin gated form for ANTHROPIC_API_KEY, RESEND_API_KEY, GATETEST_URL+KEY, CRONTECH_DEPLOY_URL+SECRET, DEPLOY_EVENT_TOKEN | |
| 102 | - Audit log every change | |
| 103 | - Demo moment: paste ANTHROPIC_API_KEY in admin UI → watch AI features turn green on `/admin/health` live | |
| 104 | - [ ] **Sub-30s deploys for code changes:** | |
| 105 | - [ ] Lockfile-hash cached `bun install` (skip when bun.lock unchanged) — ~10 min | |
| 106 | - [ ] Migration skip when no new `drizzle/*.sql` files — ~10 min | |
| 107 | - [ ] CSS-only fast path (if diff is only in `src/views/`, skip migrations + smoke) — ~15 min | |
| 108 | ||
| 109 | --- | |
| 110 | ||
| 111 | ## 📋 KNOWN BUGS (from AUDIT-v2.md P1 list — not yet fixed) | |
| 112 | ||
| 113 | - [ ] Repo-scoped routes 500 instead of 404 on missing record (issues, pulls, packages, releases, security, symbols, sponsors) — each needs a try/catch | |
| 114 | - [ ] No DB-blip resilience middleware — every page blocks 5-15s on a sick DB | |
| 115 | - [ ] No Fly rollback path (Hetzner has one, Fly doesn't) | |
| 116 | - [ ] Workflow log truncation has no UX warning | |
| 117 | - [ ] Dead schema: `pr_risk_scores` table never written to | |
| 118 | - [ ] Dead code: `scripts/deploy-crontech.sh` not invoked | |
| 119 | - [ ] `/admin/sso`, `/admin/github-oauth`, `/admin/mirrors/sync-all` use middleware `requireAuth` but rely on inline `isSiteAdmin()` — inconsistent pattern, not insecure | |
| 120 | - [ ] Documentation drift: BUILD_BIBLE.md (4500 lines) and CLAUDE.md both contain claims that don't match code | |
| 121 | ||
| 122 | --- | |
| 123 | ||
| 124 | ## 🎨 SURFACES still unpolished (post-tomorrow polish queue) | |
| 125 | ||
| 126 | ### Repo-scoped features | |
| 127 | - [ ] `DiffView` component itself (used inside polished commit + PR pages — only surrounding card is polished) | |
| 128 | - [ ] Releases (`releases.tsx`) | |
| 129 | - [ ] Contributors / Insights (`contributors.tsx`, `insights.tsx`) | |
| 130 | - [ ] Traffic analytics (`traffic.tsx`) | |
| 131 | - [ ] Dependencies (`deps.tsx`) | |
| 132 | - [ ] Security advisories / code scanning (`advisories.tsx`, `code-scanning.tsx`) | |
| 133 | - [ ] Symbols / xref nav (`symbols.tsx`) | |
| 134 | - [ ] AI features pages (`ask.tsx`, `ai-changelog.tsx`, `ai-explain.tsx`, `ai-tests.tsx`) | |
| 135 | - [ ] Workflows / Actions (`workflows.tsx`) | |
| 136 | - [ ] Gates / branch protection / rulesets / required checks / protected tags (`gates.tsx`, `rulesets.tsx`, `required-checks.tsx`, `protected-tags.tsx`) | |
| 137 | - [ ] Environments + Deployments (`environments.tsx`, `deployments.tsx`) | |
| 138 | - [ ] Webhooks (`webhooks.tsx`) | |
| 139 | - [ ] Web file editor (`editor.tsx`) | |
| 140 | ||
| 141 | ### Settings sub-pages | |
| 142 | - [ ] 2FA setup (`settings-2fa.tsx`) | |
| 143 | - [ ] Passkeys (`passkeys.tsx`) | |
| 144 | - [ ] Developer apps / OAuth apps (`developer-apps.tsx`) | |
| 145 | - [ ] Audit log (`audit.tsx`) | |
| 146 | - [ ] Sponsors (`sponsors.tsx`) | |
| 147 | - [ ] Saved replies (`saved-replies.tsx`) | |
| 148 | - [ ] Marketplace (`marketplace.tsx`) | |
| 149 | - [ ] Workflow secrets (`workflow-secrets.tsx`) | |
| 150 | - [ ] Signing keys (`signing-keys.tsx`) | |
| 151 | ||
| 152 | ### Specialized routes | |
| 153 | - [ ] Orgs (new, view, members, teams) — `orgs.tsx`, `org-insights.tsx` | |
| 154 | - [ ] Wiki pages — `wikis.tsx` | |
| 155 | - [ ] Discussions / forums — `discussions.tsx` | |
| 156 | - [ ] Project boards / kanban — `projects.tsx` | |
| 157 | - [ ] Gists — `gists.tsx` | |
| 158 | - [ ] Packages — `packages.tsx` | |
| 159 | - [ ] Playground (`/play` — anonymous try-it) — `playground.tsx` | |
| 160 | - [ ] Demo (`/demo` — live demo with tiles) — `demo.tsx` | |
| 161 | ||
| 162 | ### Admin sub-pages | |
| 163 | - [ ] `/admin/ops` (Operations console) — `admin-ops.tsx` | |
| 164 | - [ ] `/admin/deploys` (deploy timeline) — `admin-deploys-page.tsx` | |
| 165 | - [ ] `/admin/status` (synthetic monitor) — `admin-status.tsx` | |
| 166 | - [ ] `/admin/self-host` (self-host config) — `admin-self-host.tsx` | |
| 167 | - [ ] `/admin/sso` (Enterprise SSO config) — `sso.tsx` | |
| 168 | - [ ] `/admin/github-oauth` (already styled — minor polish only) | |
| 169 | ||
| 170 | ### Cross-cutting | |
| 171 | - [ ] Loading skeletons (`skeleton.tsx` exists, not used everywhere) | |
| 172 | - [ ] Empty states across niche routes | |
| 173 | - [ ] Error pages 404 / 500 / 403 (`error-page.tsx`) | |
| 174 | - [ ] Mobile responsive audit pass — ALL polished surfaces work on mobile but haven't been audited | |
| 175 | ||
| 176 | --- | |
| 177 | ||
| 178 | ## 🧪 UNTESTED categories | |
| 179 | ||
| 180 | - [ ] **E2E browser flows** — no real-browser test runner wired (chromium download blocked in this Anthropic container) | |
| 181 | - [ ] **Mobile responsive on real devices** — works on Chrome DevTools mobile sim, no physical device test | |
| 182 | - [ ] **Accessibility (axe / Lighthouse)** — needs browser | |
| 183 | - [ ] **Load test (k6 / locust)** — needs live infra hammering | |
| 184 | - [ ] **Real security pentest** — GateTest configured but API key not set, scans silently no-op | |
| 185 | - [ ] **Cross-browser** (Safari, Firefox, Edge) — one container, one engine | |
| 186 | ||
| 187 | --- | |
| 188 | ||
| 189 | ## 🚀 "LIGHTNING YEARS AHEAD" roadmap (post-onboarding) | |
| 190 | ||
| 191 | Ordered by **leverage per hour**. The first 3 are the differentiators that competitors don't have. | |
| 192 | ||
| 193 | ### Tier 1 — true product differentiators | |
| 194 | 1. [ ] **GateTest aggregation platform** — extend GateTest to be the unified scan-results surface. Playwright (E2E), k6 (load), axe (a11y), and the existing GateTest static scanner all POST results to the same `/api/v1/gate-runs` endpoint. One UI shows everything. Genuinely new product positioning. **~3-4 hrs.** | |
| 195 | 2. [ ] **Multi-agent CI on every PR** — code reviewer (exists), security reviewer (new), QA agent that tries to break the PR (new), all run in parallel. Surfaces three independent AI perspectives. **~4-6 hrs.** | |
| 196 | 3. [ ] **AI proactive monitoring** — hourly autopilot task that reads recent logs + audit_log via Claude and opens issues like "I noticed memory growth on workflow-runner". Goes from reactive to proactive. **~3-4 hrs.** | |
| 197 | ||
| 198 | ### Tier 2 — speed + polish wins | |
| 199 | 4. [ ] **Sub-30s deploys** (already partially listed under "Should ship tonight") | |
| 200 | 5. [ ] **Mobile responsive pass** — design audit + fix across all polished surfaces. **~3-4 hrs.** | |
| 201 | 6. [ ] **`DiffView` component rebuild** — the diff renderer used in commit/PR pages. Currently plain. Make it Vercel-quality. **~2-3 hrs.** | |
| 202 | ||
| 203 | ### Tier 3 — new capabilities | |
| 204 | 7. [ ] **Realtime collaboration on issues/PRs** — multiple users editing same draft simultaneously. SSE infra exists, needs the merge layer. **~6-8 hrs.** | |
| 205 | 8. [ ] **Visual workflow editor** — DAG editor for `.gluecron/workflows/*.yml` instead of YAML. **~10-15 hrs.** | |
| 206 | 9. [ ] **Time-travel state explorer** — replay any past state of an issue/PR/repo. Differentiation nobody has. **~10-15 hrs.** | |
| 207 | 10. [ ] **Self-host one-click installer** — `curl gluecron.com/install-server | bash` for a full gluecron on any Linux box in 60s. **~6-8 hrs.** | |
| 208 | ||
| 209 | ### Tier 4 — infrastructure / enterprise | |
| 210 | 11. [ ] **Edge-network deploy** — Cloudflare Workers in front of Hetzner. Sub-100ms anywhere on earth. | |
| 211 | 12. [ ] **Comprehensive API docs site** — `/api-docs` exists but plain. Should be Stripe-quality. | |
| 212 | 13. [ ] **Localization** — English-only today. | |
| 213 | 14. [ ] **SOC2 compliance path** — for enterprise customers. | |
| 214 | 15. [ ] **Mobile PWA done right** — properly architected this time (not the broken one we ripped out). | |
| 215 | ||
| 216 | --- | |
| 217 | ||
| 4aee345 | 218 | ## 📜 Platform Strategy Review — 2026-05-20 (external) |
| 219 | ||
| 220 | External spec review landed 2026-05-20. Two parts: tonight's fixes and a long-tail "20 killer moves" list. Track here so nothing falls through. | |
| 221 | ||
| 222 | ### Part 1 — Spec corrections (tonight) | |
| 223 | ||
| 224 | - [x] **PR list pagination** — added `?limit` (default 30, max 100) + `?offset` to `GET /api/v2/repos/:owner/:repo/pulls` (commit `8c09fb9`) | |
| 225 | - [ ] **Webhook retries + dead-letter** — in flight (agent on worktree). Exponential backoff (30s, 2m, 10m, 1h, 6h), max 6 attempts, status='dead' after that, new `webhook_deliveries` table | |
| 226 | - [x] **OAuth admin scope** — verified `admin` is not in `SUPPORTED_SCOPES` (src/lib/oauth.ts:18-28). Third-party OAuth apps cannot acquire it; admin scope is PAT-only over session cookies | |
| 227 | - [x] **GateTest timing** — verified runs as fire-and-forget post-receive (src/hooks/post-receive.ts:81-90). Never blocks the push, just notifies and updates commit status async | |
| 228 | - [x] **Git credential security** — verified the codebase never exposes URL-embedded tokens to users (`src/lib/import-helper.ts:81-90` scrubs them from error output before display). Public integration spec updated to recommend git credential helper / Basic Auth password flow instead of URL-embed | |
| 229 | ||
| 230 | ### Part 2 — "20 killer moves" — graded by feasibility-from-here | |
| 231 | ||
| 232 | Slotted into existing tiers above where overlapping, listed here when new. | |
| 233 | ||
| 234 | **Native AI & agentic autonomy** (most strategic, partially built) | |
| 235 | 1. [ ] Deterministic agent runtimes — sandbox+repl in repo. Builds on existing workflow runner. **~12-16 hrs** | |
| 236 | 2. [ ] Push-time vector indexing — wire embeddings into `post-receive.ts`. Anthropic embeddings + pgvector. **~6-8 hrs** | |
| 237 | 3. [ ] Multi-file AST graph for MCP — extend the 15 MCP tools to expose structural deps. **~8-10 hrs** | |
| 238 | 4. [ ] Autonomous PR decoupling — new `ai/*` branch type that autopilot owns end-to-end. Pieces exist. **~6-8 hrs** | |
| 239 | 5. [ ] AI-driven taint patcher — extends `ai-review.ts`: when GateTest flags, Claude proposes the patch + opens a PR. **~4-6 hrs** | |
| 240 | ||
| 241 | **High-performance self-hosting & independence** | |
| 242 | 6. [ ] Single-binary deploy — Bun's `bun build --compile`. Already feasible. **~2-3 hrs** | |
| 243 | 7. [ ] Multi-master replication — schema-level. Hard. **~weeks** | |
| 244 | 8. [ ] S3-backed git objects — git LFS-style with object storage. **~10-15 hrs** | |
| 245 | 9. [ ] Outbound-only tunnel — Cloudflare Tunnel template. **~2-3 hrs** | |
| 246 | 10. [ ] SSO on every tier — OIDC works; SAML + AD missing. **~6-8 hrs** | |
| 247 | ||
| 248 | **Advanced CI/CD & security** | |
| 249 | 11. [ ] Local-runnable Actions — `gluecron act run` CLI mirroring runner image. **~6-8 hrs** | |
| 250 | 12. [ ] SLSA-style signed artifacts — sigstore + provenance attestation. **~4-6 hrs** | |
| 251 | 13. [ ] Sub-ms pre-receive secrets — true pre-receive, regex+entropy only (no taint). **~3-4 hrs** | |
| 252 | 14. [ ] Impact-aware CI scaling — runner pool by changeset size. **~6-8 hrs** | |
| 253 | 15. [ ] Compliance ledger export — `audit_log` exists. CSV/JSON export endpoint + retention policy. **~3-4 hrs** | |
| 254 | ||
| 255 | **Developer experience & extensibility** | |
| 256 | 16. [ ] Realtime collaborative PRs — already Tier 3 #7 above | |
| 257 | 17. [ ] NNTP / IMAP / mailing-list bridge — wild but cheap. RFC-3977 NNTP server. **~10-12 hrs** | |
| 258 | 18. [ ] Programmable webhook pipelines — runs user JS/Wasm before delivery. Builds on the new retry queue. **~8-10 hrs** | |
| 259 | 19. [ ] Feature-flag controller — track flag state on merge. **~6-8 hrs** | |
| 260 | 20. [ ] Semantic code search — embeddings powered. Builds on #2 (push-time vector index). **~4-6 hrs** | |
| 261 | ||
| 262 | --- | |
| 263 | ||
| 0b4d294 | 264 | ## 🛰️ Spec Review Addendum — 2026-05-20 (Holden Mercer / agent-build API) |
| 265 | ||
| 266 | External addendum asked for the API surface an AI build agent needs to: | |
| 267 | read files, write multi-file atomic commits, dispatch background builds. | |
| 268 | 12 endpoints across 3 groups. Status: | |
| 269 | ||
| 270 | ### Group 1 — File contents | |
| 271 | - [x] `GET /api/v2/repos/:owner/:repo/contents/:path` (was already built) | |
| 272 | - [x] `PUT /api/v2/repos/:owner/:repo/contents/:path` (was already built) | |
| 273 | - [ ] `DELETE /api/v2/repos/:owner/:repo/contents/:path` (in flight tonight) | |
| 274 | ||
| 275 | ### Group 2 — Git plumbing (atomic multi-file commits) | |
| 276 | - [x] `POST /api/v2/repos/:owner/:repo/git/refs` (creating branches — already built) | |
| 277 | - [ ] `GET /api/v2/repos/:owner/:repo/git/refs/heads/:branch` (in flight tonight) | |
| 278 | - [ ] `GET /api/v2/repos/:owner/:repo/git/commits/:sha` (in flight tonight) | |
| 279 | - [ ] `POST /api/v2/repos/:owner/:repo/git/blobs` (in flight tonight) | |
| 280 | - [ ] `POST /api/v2/repos/:owner/:repo/git/trees` (in flight tonight) | |
| 281 | - [ ] `POST /api/v2/repos/:owner/:repo/git/commits` (in flight tonight) | |
| 282 | - [ ] `PATCH /api/v2/repos/:owner/:repo/git/refs/heads/:branch` (in flight tonight) | |
| 283 | ||
| 284 | ### Group 3 — Actions / workflows | |
| 285 | - [ ] `POST /api/v2/repos/:owner/:repo/actions/workflows/:filename/dispatches` (in flight tonight) | |
| 286 | - [ ] `GET /api/v2/repos/:owner/:repo/actions/workflows/:filename/runs` (in flight tonight) | |
| 287 | - [ ] `GET /api/v2/repos/:owner/:repo/actions/runs/:run_id` (in flight tonight) | |
| 288 | - [ ] `GET /api/v2/repos/:owner/:repo/actions/runs/:run_id/logs` (zip) (in flight tonight) | |
| 289 | - [ ] `POST /api/v2/repos/:owner/:repo/actions/runs/:run_id/cancel` (in flight tonight) | |
| 290 | ||
| 291 | Helpers verified available: `getBlob`, `getTree`, `getCommit`, `resolveRef`, | |
| 292 | `updateRef`, `writeBlob`, `refExists`, `objectExists`, `getBlobShaAtPath`, | |
| 293 | `createOrUpdateFileOnBranch`, `enqueueRun`. Auth uses existing `requireApiAuth` + | |
| 294 | `requireScope("repo")`. No schema changes needed. | |
| 295 | ||
| 296 | --- | |
| 297 | ||
| 298 | ## 🛸 "2030 KILLER MOVES" — 2026-05-20 (external strategic doc, 30 items) | |
| 299 | ||
| 300 | Triaged for feasibility from current architecture. Tagged: **[NOW]** = can | |
| 301 | build inside the current platform with no new infra; **[NEXT]** = needs | |
| 302 | one major piece of new infra (vector store, edge runtime, enclave); **[FAR]** | |
| 303 | = multi-quarter or requires partner ecosystem. | |
| 304 | ||
| 305 | ### Next-gen security & agent scoping | |
| 306 | - [ ] **[NOW]** 1. Token-level identity binding — `agent_session` tokens scoped to a single branch/issue. Builds on existing PAT scopes — add a `target_ref` field to `api_tokens`. **~4-6 hrs** | |
| 307 | - [ ] **[NOW]** 2. Ephemeral branch sandboxes — `refs/scratch/*` exempt from CI, pruned after merge. **~4-6 hrs** | |
| 308 | - [ ] **[NOW]** 3. Nonce-enforced PUT queries — `If-Match: <blob_sha>` semantics. Group 1 PUT/DELETE already needs `sha`; lift to an HTTP header. **~2-3 hrs** | |
| 309 | - [ ] **[NOW]** 4. Byte-range content patching — `PATCH /contents/:path` with RFC-6902 JSON patch or unified-diff body. **~4-6 hrs** | |
| 310 | - [ ] **[NEXT]** 5. Semantic content hashing — AST-aware hash to suppress comment/whitespace CI. Needs per-language parsers. **~10-15 hrs** | |
| 311 | ||
| 312 | ### AI-native git data layer | |
| 313 | - [ ] **[NOW]** 6. LLM-native content bundling — `GET /contents/:path?format=llm-xml`. Existing repo-walker + XML wrap. **~3-4 hrs** | |
| 314 | - [ ] **[NEXT]** 7. On-the-fly dependency analysis on commit POST. Needs language-aware parsers. **~8-10 hrs** | |
| 315 | - [ ] **[NOW]** 8. Graph-native history walks — `?depth=10&include_diffs=true` on `/git/commits/:sha`. **~3-4 hrs** | |
| 316 | - [ ] **[NOW]** 9. Auto-clustered staging trees — agents stream blobs, server batches into one commit on `flush`. Sits next to Group 2 tree builder. **~6-8 hrs** | |
| 317 | - [ ] **[NEXT]** 10. Intent metadata + pre-receive intent matcher. Needs semantic-diff infra. **~10-12 hrs** | |
| 318 | ||
| 319 | ### Real-time observability & build fabric | |
| 320 | - [ ] **[NOW]** 11. Zero-polling SSE workflow log streams — `/actions/runs/:run_id/stream`. SSE infra already exists. **~3-4 hrs** | |
| 321 | - [ ] **[NEXT]** 12. Programmable inline step interceptors — workflow_dispatch body conditional hooks. **~6-8 hrs** | |
| 322 | - [ ] **[NEXT]** 13. State-saves on failure — snapshot runner FS on crash. Needs container snapshot capability. **~10-15 hrs** | |
| 323 | - [ ] **[NEXT]** 14. Predictive execution caching — keyed by `tree_sha + input_shape`. Cache layer. **~6-8 hrs** | |
| 324 | - [ ] **[NEXT]** 15. Vector-formatted workflow log outlets — embeddings on log lines. Pairs with item #2 of prev list. **~4-6 hrs** | |
| 325 | ||
| 326 | ### Enclave runtimes & advanced security | |
| 327 | - [ ] **[FAR]** 16. Post-quantum API auth (ML-DSA / Falcon). **~weeks** | |
| 328 | - [ ] **[NEXT]** 17. Cryptographic reproducibility proofs / signed BOM per run. Builds on SLSA item from prev list. **~6-8 hrs** | |
| 329 | - [ ] **[FAR]** 18. Zero-trust local storage — orchestration-plane-only mode. Massive architectural shift. **~quarters** | |
| 330 | - [ ] **[NOW]** 19. Context-aware 429 — `X-Gluecron-Backoff-Context` header on throttles. **~1-2 hrs** | |
| 331 | - [ ] **[FAR]** 20. Automated fork-enclave execution for unverified agents. Needs biometric integration. **~quarters** | |
| 332 | ||
| 333 | ### Architectural superiority | |
| 334 | - [ ] **[FAR]** 21. Edge-native API compilation (Rust/Wasm). Rewrite of the metadata-API surface. **~quarters** | |
| 335 | - [ ] **[NEXT]** 22. Native workspace sync — long-lived file-watcher endpoint. Pairs with realtime collab. **~8-10 hrs** | |
| 336 | - [ ] **[NEXT]** 23. Autonomous cost gating — `budget_limit` on workflow_dispatch. Needs runner-cost telemetry. **~4-6 hrs** | |
| 337 | - [ ] **[NEXT]** 24. AI hallucination sandboxing — npm/PyPI/crates pre-check on commit. **~6-8 hrs** | |
| 338 | - [ ] **[FAR]** 25. P2P code swaps for large assets. Needs IPFS/WebTorrent. **~weeks** | |
| 339 | - [ ] **[NOW]** 26. Immutable audit ledger separate from git graph. `audit_log` already exists; add append-only signature chain. **~3-4 hrs** | |
| 340 | - [ ] **[NOW]** 27. Context-aware auto-pruning — delete merged auto-branches after 24h. Cron-style autopilot task. **~2-3 hrs** | |
| 341 | - [ ] **[NEXT]** 28. Dynamic mid-run resource balancing. Needs runner-pool elasticity. **~8-10 hrs** | |
| 342 | - [ ] **[NEXT]** 29. Multi-model orchestration in workflows — workflow YAML can call into a model router. **~6-8 hrs** | |
| 343 | - [ ] **[NOW]** 30. Self-healing endpoint schemas — accept slight param drift + return `X-Gluecron-Schema-Warning`. **~2-3 hrs** | |
| 344 | ||
| 345 | ### Top picks if shipping next | |
| 346 | The **[NOW]** items with best ROI for the agent-build use case: | |
| 347 | - 1 (token-binding) + 3 (nonce/If-Match) + 8 (history depth) + 11 (SSE logs) | |
| 348 | = an agent's full safety + observability story in ~12-16 hrs of work | |
| 349 | - 6 (LLM-XML bundling) + 9 (auto-clustered tree) = differentiated IDE-agent UX in ~10-12 hrs | |
| 350 | ||
| 351 | --- | |
| 352 | ||
| 3bf10d4 | 353 | ## 📊 Latest commits on main (auto-updated, top of `git log`) |
| 354 | ||
| 355 | Run `git log --oneline -15` to see what's actually shipped. The HEAD SHA the live server is running can be confirmed at `https://gluecron.com/version`. | |
| 356 | ||
| 357 | --- | |
| 358 | ||
| 359 | ## How to update this file | |
| 360 | ||
| 361 | - Move items between sections as they ship / change priority | |
| 362 | - Don't delete items — strike them through or move to a "shipped" log | |
| 363 | - Update the date at top whenever you edit | |
| 364 | - Commit the change so it persists for everyone (future you, future Claude, anyone else looking at the repo) |