Commit graph

4 commits

Author SHA1 Message Date
ZdenekSrotyr
b2cc6517aa docs(spec): rev 4 — round-3 review fixes; cleared for implementation
Round-3 review (2 load-bearing + 5 quality-of-life):
- web_session fixture endpoint: POST /auth/password/login/web (form),
  not POST /auth/token (which doesn't exist); PAT mint requires session
  cookie via require_session_token
- Renderer wording: "adopt" not "reuse" — da init/da pull are first-time
  adopters; synthetic {"detail": {"kind": ..., "hint": ...}} pattern
  documented (cli/commands/query.py:152, 165)
- cli/lib/__init__.py mention for Hatchling wheel inclusion
- _LEGACY_STRINGS constant + _scan_legacy_strings helper home named in
  app/api/claude_md.py
- /api/welcome?server_url= query param explicit in data flow
- ttl_seconds upper bound 315_360_000 (matches existing 3650 d cap)
- Conftest line range 50-82 -> 50-83
2026-05-04 15:10:40 +02:00
ZdenekSrotyr
b52a37b680 docs(spec): rev 3 — round-2 review fixes + main-sync (post-0.32.0)
Round-2 review (N1-N10):
- N1 Token CLI keeps current `da auth token` location (not top-level)
- N2 `da catalog --metrics --show <id>` decided in Components, dropped
  from Open questions
- N3 `_install_claude_hooks` migrated to new `cli/lib/hooks.py` module
- N4 Test sentinel `__nonexistent__` documented in fixtures
- N5 `web_session` fixture uses real `POST /auth/token` with seeded password
- N6 `AGNES_WORKSPACE.md` content asserts (PAT not leaked, placeholders
  substituted) added to clean-install integration test
- N7 Admin UI legacy-strings banner concretized: `legacy_strings_detected`
  field + yellow banner in `/admin/workspace-prompt` editor
- N8 `da metrics export/validate` relocate to `da admin metrics …`
  alongside `import`
- N9 Bootstrap PAT verify endpoint switched from `/api/health` (unauth)
  to `/api/catalog/tables` (PAT-validating, matches `da auth import-token`)
- N10 New `cli/lib/pull.py` and `cli/lib/hooks.py` modules inventoried

Main-sync (rebased on 0.32.0 / #160):
- Reconsidered: keep `da skills list / show` as analyst-side discovery
  (skill content was strengthened by #160 cost-guardrail/registry rails)
- Bigger CLAUDE.md (repo-root) rewrite scope acknowledges new sections
- `cli/error_render.py` (added in 0.32.0) reused by `da init` and
  `da pull` for consistent typed-error UX
- Test fixtures piggyback on autouse `_reset_module_caches` from
  tests/conftest.py:50-82 (added in 0.32.0)
2026-05-04 15:05:44 +02:00
ZdenekSrotyr
973e96e6af docs(spec): apply round-1 review — orphan/wiring fixes
11 minimum edits + minor cleanups from first review pass:

- TTL field: add `ttl_seconds` alongside existing `expires_in_days` in
  PAT request, force-clamp to 1h for scope=bootstrap-analyst
- Drop layered per-workspace config (no defined producer; multi-instance
  is edge case) — moved to Open questions
- CLAUDE.md producer: explicit `GET /api/welcome` flow, address admin
  DB-override migration
- URL: `/install` → `/setup?role=...` (matches existing routing; legacy
  `/install` keeps 302 redirect)
- `da metrics import` → relocated under `da admin metrics import`
- Repo-root CLAUDE.md added to rewritten files list
- CLI surface: enumerate `da explore`, `da disk-info`, `da snapshot
  refresh/prune`, full `da snapshot create` flag list, `da push` flags
- Test fixtures section: contracts for `fastapi_test_server`, `test_pat`,
  `test_pat_no_grants`, `zero_grants_workspace`, `web_session`, `client`
- Cleanups: line ref for `_install_claude_hooks`, admin-namespace
  disclaimer, `da init`-doesn't-call-`da auth login` note, audit-log
  consumer note for PAT scope, `{workspace_path}` placeholder usage
2026-05-04 14:59:40 +02:00
ZdenekSrotyr
8cbf0aa818 docs(spec): clean analyst bootstrap — greenfield redesign
Single-paste web→Claude Code workspace bootstrap. PAT-only auth,
non-interactive `da init`, slim CLI surface (init/pull/push/snapshot),
lazy-mkdir contract for empty-folder discipline, AGNES_WORKSPACE.md
human docs, layered per-workspace config, comprehensive clean-install
verification protocol.

Greenfield rewrite — drops `da analyst setup`, `da sync`, `da fetch`,
`da metrics`, `da skills`. Removes legacy `data/{parquet,duckdb,metadata}/`
and `user/artifacts/` workspace dirs.
2026-05-04 14:59:40 +02:00