Skip to content

v0.5.5

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Aug 20:12
d0bf995
fix: six onboarding defects found provisioning a real team project (#78)

All six sit on the first-run path, which is why 1,500+ unit tests missed
every one. Found by actually creating a project and inviting two teammates.

- init reuses a saved session instead of calling runGithubOAuth()
  unconditionally. It forced a browser round-trip even right after
  `tages login` and died on a 5-minute OAuth timeout in headless runs.
  Falls back to the browser only when the session is expired, absent, or
  a service-key client with no user to own the project.
- The expiry message says `tages login`, not `tages init`. `init` CREATES
  a project: running it to fix auth trips the global slug-unique
  constraint or drops you into a local-<slug> store that then blocks link.
- recall exits non-zero on an expired session. It printed "No memories
  found" and exited 0, so a dead session was indistinguishable from an
  empty project to a human and to a script. createAuthenticatedClient now
  reports a SessionStatus; `anonymous` (local-only use) still works.
- The free-tier cap is reported as 1 project, the number
  0002_rls_policies.sql enforces. The message said 2.
- Slug collisions are named as collisions instead of a plan limit. A
  unique violation also contains "violates", so a name clash told you to
  upgrade. Now points at `tages link --project-id <uuid>`.
- The post-commit hook no longer runs `npx tages` — no such package
  exists on npm (404); the binary ships in @tages/cli. It failed silently
  for anyone without a global install, because it runs backgrounded.

Docs: quickstart and team-onboarding no longer say npm is stale and tell
readers to check out a release branch that merged long ago. Both lead
with `npm install -g @tages/cli`. Also corrected: team seats are
LEAST(subscription_quantity, 20), not a flat 25 — a team profile with a
null quantity resolves to 1 seat; the "no periodic pull" trap now splits
CLI (auto-reconciles) from MCP (boot-only hydration); the stale doctor
caveat is removed.

Tests: +15 CLI, +3 shared. The init session-reuse tests were verified by
reintroducing the bug — 2 of 6 failed, the 4 fallback cases stayed green.

@tages/cli 0.5.5, @tages/shared 0.2.3. @tages/server unchanged at 0.3.4;
the CLI bundles @tages/shared from source, so the project-factory fixes
ship inside the CLI regardless of the registry.


Claude-Session: https://claude.ai/code/session_01KUETaNgrAdhY7zpjyycWTX

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>