* docs: design for dashboard legacy-migration popup + app-state marker Spec for the app-side migration trigger (Approach A): projects-only import daemon API + a migration marker in ~/.ao/app-state.json, with a launch-time popup (Proceed / Skip / Don't Migrate). Settings redo path deferred to #2205. Includes the projects-only import-offer backend plan it consumes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: implementation plan for legacy-migration popup + marker Part A reuses the projects-only import API (import-offer plan) with an availability-only Status; Part B adds the app-state migration marker (schema v2), IPC, the useMigrationOffer gate, and the MigrationPopup (Proceed/Skip/Don't Migrate). Settings redo path deferred to #2205. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor(legacyimport): scope import to projects + settings only Remove orchestrator/transcript import code (orchestrator.go, claude.go, session_import_store.go and their tests). Trim Store, Options, Report to projects-only fields. Drop defaultClaudeProjectsDir and projectSessionsDir from paths.go. Add yaml.TypeError robustness in config.go. Update cli/import.go confirm prompt and summary. Update importer_test.go to projects-only assertions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(importer): availability probe + projects-only run Create service/importer.Manager with Status (physical availability check only, no DB heuristic) and Run (delegates to legacyimport.Run). The app-state.json marker governs whether to prompt; this service only answers whether legacy data is physically present. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(httpd): import controller + DTOs (GET/POST /api/v1/import) Add ImportStatusResponse/ImportRunResponse DTOs to dto.go. Create ImportController with GET (status probe) and POST (run) handlers, both returning 501 when Svc is nil. Wire APIDeps.Import + API.imports in api.go. Add controller tests (status, status error, run, run error). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(apispec): describe /api/v1/import; regenerate openapi + schema.ts Add import tag, importOperations() (GET + POST /api/v1/import), and schema name mappings (ImportStatusResponse, ImportRunResponse, ImportReport) to build.go. Regenerate openapi.yaml and frontend/src/api/schema.ts. Route-spec parity test passes. Restore the nil-svc-501 import controller test now that the spec includes the operation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(daemon): mount import service on the API Wire importsvc.New(importsvc.Deps{Store: store}) into APIDeps.Import in daemon.go so the daemon serves GET/POST /api/v1/import backed by the live sqlite store. Projects-only; no DataDir. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore(cli): drop resolved §6.4 first-boot-import TODO The legacy import is now a daemon API (GET/POST /api/v1/import) served by the importer service and the desktop app handles the popup prompt via the app-state.json migration marker. The TODO comment is resolved. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore(legacyimport): remove dead isDir helper isDir was only used by the deleted projectSessionsDir function. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: update package-lock.json after npm install for api:ts openapi-typescript was missing from root node_modules; npm install populated it so npm run api:ts could regenerate schema.ts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(httpd): drop em-dash comment + unused ImportStatusResult alias Review findings M1/M2 from G1 task review. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(app-state): migration marker (schema v2) + updateMigration Bump SCHEMA_VERSION to 2, add MigrationStatus/MigrationState types and migration? field to AppStateMarker. Extract atomicWriteMarker helper and reuse it. writeAppStateMarker now preserves an existing migration block across launch writes. Add updateMigration (IPC setter) and readMigrationState (IPC getter) exports. TDD: tests added first (red), then implementation (green). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(ipc): expose app-state migration getter/setter to the renderer Add appState:getMigration / appState:setMigration IPC handlers in main.ts. Add ao.appState.getMigration / setMigration to preload.ts (typed via AoBridge). Add appState preview fallback in bridge.ts and test setup so AoBridge stays satisfied in both browser preview and test environments. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(app-state): cover corrupt-marker case + clean up temp dirs G2 review findings I2 (corrupt-JSON branch untested) and m1 (temp dirs not cleaned). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(renderer): useMigrationOffer gate (marker + availability) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(renderer): MigrationPopup (Proceed / Skip / Don't Migrate) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(renderer): surface MigrationPopup on the dashboard Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: format with prettier [skip ci] --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| agent | ||
| cli | ||
| plans | ||
| superpowers | ||
| README.md | ||
| STATUS.md | ||
| ao-start-bootstrapper-and-npm-deprecation.md | ||
| architecture.md | ||
| backend-code-structure.md | ||
| daemon-environment.md | ||
| stack.md | ||
| telemetry.md | ||
README.md
agent-orchestrator rewrite docs
The agent-orchestrator is being rebuilt as a long-running Go backend daemon
(backend/) plus an Electron + TypeScript frontend (frontend/). The backend
supervises coding-agent sessions and exposes daemon control, project/session
state, terminal streaming, and CDC/event infrastructure.
Start with architecture.md for the current backend model and
cli/README.md for the CLI surface.
Reference docs
| Doc | What it covers |
|---|---|
| architecture.md | Current backend model, package layout, status derivation, persistence/CDC, and load-bearing rules. |
| backend-code-structure.md | Package ownership rules for the Go backend: domain, services, ports, adapters, storage, HTTP, CLI, and daemon wiring. |
| cli/README.md | CLI commands and daemon control surface. |
| agent/README.md | Agent adapter contract, hook methodology, and session-info derivation. |
| STATUS.md | What is shipped on main today and what is still in flight. |
| stack.md | Accepted library/runtime choices, pending stack decisions, and dependencies explicitly avoided for V1. |
Mental model
Persist durable facts, derive display status:
- session table:
activity_state,is_terminated, identity, metadata - PR tables: PR/CI/review facts
- derived read model:
service.Sessioncomputes display status from session + PR facts