Commit Graph

942 Commits

Author SHA1 Message Date
Fusion 61c5554c42 feat(FN-019): draft enhanced architecture.md with all 18 required sections (+4 more)
CI / API CI (push) Failing after 35s
CI / Web CI (push) Failing after 2m11s
Commits merged:
- docs(FN-019): complete Step 6 — documentation index, conversation handoff, project brief, and build config
- test(FN-019): complete Step 4 — doc validation tests, project-brief.md, and fix mvp-scope placeholders
- feat(FN-019): complete Step 3 — draft mvp-scope.md with milestones, dependency order, and open questions
- docs(FN-019): fix auth callback flow, Python syntax, dev bypass clarity, add AccessProvider protocol and type stubs
- feat(FN-019): complete Step 2 — draft enhanced architecture.md with all 18 required sections

Files changed:
docs/README.md                  |   11 +-
 docs/architecture.md            | 1185 ++++++++++++++++++++++++++++++++++-----
 docs/conversation-handoff.md    |   68 +++
 docs/mvp-scope.md               |  184 ++++++
 docs/project-brief.md           |   31 +
 package.json                    |    3 +
 tests/docs/__init__.py          |    0
 tests/docs/test_architecture.py |  120 ++++
 8 files changed, 1444 insertions(+), 158 deletions(-)

Fusion-Task-Id: FN-019
2026-05-14 10:56:20 +02:00
Fusion 7ff7acb717 feat(FN-002): React Frontend App Skeleton (+1 more)
Commits merged:
- feat(FN-002): add .local-bin to .gitignore for local pnpm bootstrap
- feat(FN-002): complete Step 2 — React Frontend App Skeleton

Files changed:
.gitignore | 1 +
 1 file changed, 1 insertion(+)

Fusion-Task-Id: FN-002
2026-05-14 09:52:11 +02:00
Fusion f33a563003 feat(FN-003): add tool manifest registry with FastAPI CRUD and built-in manifests
- Add ToolManifest Pydantic models with validators for ports, mounts, health checks, and traefik config

- Implement in-memory ToolRegistry with YAML loading and built-in manifest scanning

- Add FastAPI CRUD routes for listing, retrieving, and creating tool manifests

- Include built-in manifests for runfusion and code-server

- Harden web Dockerfile with unprivileged nginx and port 8080

- Add tool manifest specification documentation and architecture updates

Fusion-Task-Id: FN-003
2026-05-14 09:15:22 +02:00
Fusion 477abad4c9 fix(FN-011): gracefully skip DB tests when PostgreSQL is unavailable
- Wrap DB engine setup in try/except in conftest.py

- Call pytest.skip with clear message when PostgreSQL is unavailable

- Dispose engine before skipping to avoid connection leaks

Fusion-Task-Id: FN-011
2026-05-14 08:45:52 +02:00
Fusion 2c52b1634f docs(FN-011): complete Step 8 — update architecture and development docs
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion 31b363edb0 test(FN-011): complete Step 7 — tests for provider, credentials, and operations
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion a9ccbcb3fb feat(FN-011): add repository_connection alembic migration
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion ea30f28edb fix(FN-011): catch CalledProcessError in get_status, fix deletion logic, add explicit encoding
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion 3532bec00d feat(FN-011): complete Step 5 — Git operations interface and LocalGitOperations
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion 4214b48c37 fix(FN-011): wrap validate_connection in try/except, flush before return, remove unused import, document unique constraint deferral
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion cffeb11410 feat(FN-011): complete Step 4 — repository connection model and connection manager
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion edfbce9635 feat(FN-011): complete Step 3 — SSH key pair generation and lifecycle
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion 2037359e8d feat(FN-011): complete Step 2 — credential model and storage interface
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion 59d727072e fix(FN-011): make GitProvider methods synchronous and fix __init__ exports
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion f9dd56902f feat(FN-011): complete Step 1 — Git types and provider abstraction
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: 4a9aca6f-9d91-43aa-8d2a-d59657c1541a
2026-05-14 08:37:11 +02:00
Fusion 64ba5e3e56 feat(FN-002): complete Step 7 — Documentation & Delivery
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:30 +02:00
Fusion d4d4844c03 fix(FN-002): remove invalid allowBuilds placeholder from pnpm-workspace.yaml
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion f81fea2297 feat(FN-002): complete Step 6 — Testing & Verification
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion 0ae8f5d7f4 feat(FN-002): complete Step 5 — Documentation Structure
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion a30611fbaf feat(FN-002): complete Step 4 — Docker Compose and Deployment Skeleton
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion 7819765891 feat(FN-002): complete Step 3 — FastAPI Backend App Skeleton
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion 87fc7fde34 fix(FN-002): replace hardcoded 1px with CSS custom property and remove missing favicon
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion 212b9e7c21 feat(FN-002): complete Step 2 — React Frontend App Skeleton
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion c6bf919344 fix(FN-002): remove invalid allowBuilds from pnpm-workspace.yaml and update clean target
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion 4f1c14f1b7 feat(FN-002): complete Step 1 — Root Monorepo Tooling
Fusion-Task-Id: FN-002
Fusion-Task-Lineage: 49cb7077-d805-4d39-9a27-ae50744f2839
2026-05-14 07:47:29 +02:00
Fusion 02cd75f12a docs(FN-049): add CI / Testing section to development.md and README.md
Fusion-Task-Id: FN-049
Fusion-Task-Lineage: c0c0a1bd-b925-4d84-b529-c9f9d6dde07a
2026-05-14 07:16:17 +02:00
Fusion 710621b6ba fix(FN-049): prevent double _test suffix in test database URL
Fusion-Task-Id: FN-049
Fusion-Task-Lineage: c0c0a1bd-b925-4d84-b529-c9f9d6dde07a
2026-05-14 07:16:17 +02:00
Fusion f4d1e15fa6 feat(FN-049): complete Step 1 — create CI workflow and add pytest-asyncio dependency
Fusion-Task-Id: FN-049
Fusion-Task-Lineage: c0c0a1bd-b925-4d84-b529-c9f9d6dde07a
2026-05-14 07:16:17 +02:00
Fusion 3a18a1f170 feat(FN-004): merge fusion/fn-004 2026-05-14 06:47:30 +02:00
Fusion 4cbd30ff42 Merge branch 'fusion/fn-002' 2026-05-14 03:59:26 +02:00
Fusion 363c06ca25 init: empty main 2026-05-14 02:38:55 +02:00
Fusion e9ec1f46d9 fix(FN-002): ignore .fusion internals in git 2026-05-14 02:26:47 +02:00
Fusion 9f8bd0a6b6 feat(FN-002): complete Step 8 — Documentation & Delivery 2026-05-14 02:26:06 +02:00
Fusion 28728fdcea feat(FN-002): complete Step 6 — Root README and Scope Boundaries 2026-05-14 02:18:25 +02:00
Fusion a091895998 fix(FN-002): address Dockerfile build order, base images, .dockerignore, docs 2026-05-14 02:08:53 +02:00
Fusion 7b45344237 feat(FN-002): complete Step 5 — Docker Compose and Portainer/Traefik Skeleton 2026-05-14 01:58:18 +02:00
Fusion 2e8a558b71 fix(FN-002): remove forward references from docs to files not yet created 2026-05-14 01:47:03 +02:00
Fusion 1f1c95cdde feat(FN-002): complete Step 4 — Documentation Structure and Environment Examples 2026-05-14 01:40:58 +02:00
Fusion 9eaf4cfa36 fix(FN-002): ignore Python egg-info directories 2026-05-14 01:32:16 +02:00
Fusion 80f04a5c45 feat(FN-002): complete Step 3 — FastAPI Backend App Skeleton 2026-05-14 01:31:58 +02:00
Fusion 79203d2f0f feat(FN-002): complete Step 2 — React Frontend App Skeleton 2026-05-14 01:23:01 +02:00
Fusion d74f77fd33 feat(FN-002): complete Step 1 — Root Monorepo Tooling and Repository Hygiene 2026-05-14 01:14:36 +02:00