Owner decisions·
The builder loop never guesses on these. Decided items are binding (charter, "OWNER DECISIONS — 2026-09-15 04:40Z"); open items are recorded and skipped.
| ID | Question | Decision | Status |
|---|---|---|---|
| D-001 | License | Apache-2.0, with NOTICE ("tiny-vercel, Copyright 2026 Çağatay Çalı"); SPDX headers optional |
DECIDED 2026-09-15 |
| D-002 | Project name | tiny-vercel everywhere (code, @tiny-vercel/web, @tiny-vercel/worker, @tiny-vercel/contracts, docs). GitHub repo renamed strands-nextjs → cagataycali/tiny-vercel on 2026-09-17; remote is git@github.com:cagataycali/tiny-vercel.git |
DECIDED 2026-09-15, slug renamed 2026-09-17 |
| D-003 | Public visibility of the repository | Owner framing: "making tiny ready to public — again"; write every file as if a stranger reads it tomorrow. The actual visibility flip is the owner's action | OPEN (owner action) |
| D-004 | Fresh Vercel project for the deploy walkthrough | APPROVED — a scratch Vercel project may be created to prove the fresh-deploy path. Never touch the tinyai-id Vercel project or tiny.technology DNS |
DECIDED 2026-09-15 |
| D-005 | Fresh Cloudflare resources (D1/KV/Vectorize/R2/Worker/DO) | APPROVED under prefix tiny-vercel-*. Never touch tiny-v2, plugin.tiny.technology, the 5 production KV ids. Every created resource is logged in docs/PROVISIONED.md; scripts/teardown-cloudflare.mjs must delete them |
DECIDED 2026-09-15 |
| D-006 | Submit to Vercel Templates marketplace | Deferred. Make it submission-ready (docs/VERCEL_TEMPLATE.md checklist against official docs); do not submit |
DECIDED 2026-09-15 |
| D-007 | Missing CLI login (wrangler / vercel) on this Mac | Ask once via native notification, then continue other rungs | DECIDED 2026-09-15 (procedure) |
| D-008 | Next 16 deprecates the Edge Runtime (runtime = 'edge', used by 55 of 64 source routes; still builds with a warning) |
Port as-is (exact behaviour, warning accepted) vs. migrate routes to nodejs (changes streaming/timeout/cold-start semantics) |
OPEN — porting as-is until told otherwise |
| D-009 | Worker oauth.ts token store exists but is unmounted and has no app-side callback (DRIFT #11) |
Wire it up as a real integrations feature vs. delete it from the template | OPEN — ported unmounted, test green |
| D-010 | GitHub OAuth App for the scratch deployment (https://tiny-vercel-scratch.vercel.app/api/auth callback). GitHub has no API for creating OAuth Apps, so the loop cannot; without it only the anonymous surface (home, universe, public tinys, chat) is exercisable, not sign-in → create tiny → passkey → devices |
Owner creates it (github.com/settings/developers), then npx vercel env add GITHUB_CLIENT_ID production --scope cagataycali-s-team + GITHUB_CLIENT_SECRET, then npx vercel redeploy tiny-vercel-scratch.vercel.app --scope cagataycali-s-team. Asked once via native dialog 2026-09-15 08:38Z (timed out, per D-007) |
OPEN (owner action) |
| D-011 | POST /api/control answers {"message":"Success!"} when the worker rejects the body with a 400 (itty schema: systemKnowledge is a required string, so a client that omits it "succeeds" and nothing is written). Inherited verbatim from tinyai-id/app/api/control/route.ts — the source UI always sends systemKnowledge, so its users never see it; a stranger scripting the API will. Found during the R1–R9 re-verification on the rebuilt stack (2026-09-15). |
Port as-is (rule 3: no semantic changes) vs. surface the worker's errors[] as a 400 in the template and offer the same patch upstream |
OPEN — ported as-is; callers of /api/control must send systemKnowledge (an empty string is fine) |
D-012 — apps/cli is a self-contained package, not a hoisted workspace member (decided by the loop, 2026-09-15)·
apps/web pins react@18.2.0; the CLI's TUI is Ink 7, whose peer range is react>=19.2. npm
workspaces hoist one react to the root, so whichever wins breaks the other — measured: with
apps/* in workspaces, ink landed at the root next to React 18 and import('ink') failed
(useEffectEvent not exported) while tsc reported two incompatible @types/react. npm has no
per-workspace no-hoist. So workspaces lists apps/web, apps/worker, packages/* and the CLI
has its own package-lock.json; root scripts reach it with npm --prefix apps/cli, CI runs
npm ci --prefix apps/cli. Revisit when the web app moves to React 19 (D-008's Next 16 work).
D-013 — publishing tiny-vercel@0.1.0 to npm (OWNER; asked once 2026-09-15 18:47Z, no answer → deferred)·
The package is publish-ready (docs/EVIDENCE.md § C5: tarball contents, dry-run, sizes). Nothing was
published. To publish: npm login (this Mac currently has no npm session — npm whoami → E401), then
cd apps/cli && npm publish (prepublishOnly rebuilds and runs the 1445 tests first). npx tiny-vercel
works the moment it lands; until then npm i -g ./apps/cli or node apps/cli/dist/cli.js from a checkout.