24 Oct 2026 (IST). Generated from the local repo; no secrets included.
All decisions owner-authorized (Arihant Mangale) via call on 2026-10-24.
| ADR | Decision | Status |
|---|---|---|
| ADR-0001 | OpenHands as primary coding agent | Accepted — re-confirm (see Phase 0) |
| ADR-0002 | Docker containers as MVP sandbox; gVisor in phase 2 | Accepted |
| ADR-0003 | Model credentials via LiteLLM + env vars | Accepted |
| ADR-0004 | Languages: Python and TypeScript/JavaScript | Accepted |
| ADR-0005 | Hosting: one small managed VM for control plane | Accepted |
| ADR-0006 | Client retention and non-AMC recovery fees: draft only | Draft for legal |
| ADR-0007 | Internal auto-release disabled | Accepted |
Date: 2026-10-24
Status: Accepted (owner-authorized)
Use OpenHands (MIT, OpenHands/OpenHands, 91.7k stars, v1.33.0) as the single phase-1 coding harness; do not combine agents.
Owner-authorized. Phase 0 finding that changes the rationale: github.com/anomalyco/opencode IS the real OpenCode — github.com/sst/opencode 301-redirects to it, same repo ID data (220.7k stars, MIT, v1.19.4). So 'unverified link' and 'smaller community' no longer hold. Decision stands as owner chose, but should be re-confirmed by owner and revisited after the phase-1 benchmark (plan §12 says choose harness after benchmark).
Date: 2026-10-24
Status: Accepted (owner-authorized)
Ephemeral Docker containers for coding/build jobs in phase 1; gVisor (runsc) hardening in phase 2.
Accepted risk: plan §8 states plain Docker alone is not a sufficient hostile-code boundary. Mitigations required: non-root user, no host Docker socket, no production secrets, CPU/RAM/pids/time/disk limits, read-only root fs where feasible, cap-drop ALL, no-new-privileges, default-deny network with allowlist, repo-scoped short-lived tokens. Only internal/trusted repos in phase 1.
Date: 2026-10-24
Status: Accepted (owner-authorized)
All model calls route through LiteLLM; keys only from environment / secret store. Repo ships .env.example only.
Rotate keys every 90 days (see docs/CREDENTIAL_ROTATION.md). gitleaks in CI. LiteLLM enterprise/ dir is under separate licence — use MIT core only.
Date: 2026-10-24
Status: Accepted (owner-authorized)
Phase-1 slice supports Python and TS/JS only.
Others (Android, Go, etc.) deferred.
Date: 2026-10-24
Status: Accepted (owner-authorized)
Always-on control plane (API, dispatcher, Postgres, audit) on one small managed VM (2-4 vCPU/4-8 GB per plan); builds in ephemeral containers.
Deviates from plan §1 'no VPS until measured need' for control plane only. Provider choice and any purchase need a separate owner go-ahead. Nothing provisioned.
Date: 2026-10-24
Status: Accepted (owner-authorized)
Proposed terms drafted in docs/legal/PROPOSED_TERMS_DRAFT.md for legal sign-off. Nothing decided; no irreversible deletion implemented.
-
Date: 2026-10-24
Status: Accepted (owner-authorized)
Feature flag AUTO_RELEASE_ENABLED=false; every release (internal and client) passes OWNER_GATE.
Stricter than plan §7 which allows preauthorized internal auto-deploy; can be relaxed later by a new ADR.
| Component | Repo URL | Default branch @ SHA | Licence (API SPDX / file) | Latest release | Commercial-use notes |
|---|---|---|---|---|---|
| Redis | https://github.com/redis/redis | unstable @ c039dd784ca6139314880631de162f65dda25d45 | NOASSERTION; LICENSE.txt: Redis 8+ tri-licence RSALv2 / SSPLv1 / AGPLv3; ≤7.2 BSD-3 | 8.10.2 (2026-09-17) | Using unmodified Redis internally as a cache/queue is fine under AGPLv3; do not offer Redis-as-a-service. Alternative: Valkey (BSD) or skip Redis — Postgres can queue in MVP. |
| LiteLLM | https://github.com/BerriAI/litellm | main @ e04e89c7010809cc051b14f0e43d71dd018cdaee | NOASSERTION; MIT except enterprise/ (enterprise/LICENSE, commercial) | v1.106.2 (2026-10-21) | Use MIT core only; do not enable enterprise features without a licence. |
| Langfuse | https://github.com/langfuse/langfuse | main @ f3500cd1167ec459851730913ebbb94c5003535c | NOASSERTION; MIT except ee/, web/src/ee/, worker/src/ee/, packages/shared/src/server/ee/ (ee/LICENSE) | v4.69.0 (2026-10-23) | Self-host MIT core OK; ee features need paid licence. Not in phase-1 scope. |
| Semgrep | https://github.com/semgrep/semgrep | develop @ 087e93b3a1fdf44f97bc92b5b9c2ba221cb2488b | LGPL-2.1 (engine) | v1.182.0 (2026-10-20) | Engine fine to run as CLI. Rules (semgrep/semgrep-rules) are "Semgrep Rules License v1.0" (API: NOASSERTION/Other) — restricts use in competing/SaaS offerings; internal scanning likely OK, counsel to confirm. Phase 1 uses Trivy+Gitleaks instead. |
| OpenHands | https://github.com/OpenHands/OpenHands (All-Hands-AI/OpenHands redirects here) | main @ 11eba891cb2455f87253888d9d3bf3f6b0f12bc1 | MIT | v1.33.0 (2026-10-23) | Permissive. 91,698 stars. |
| LangGraph | https://github.com/langchain-ai/langgraph | main @ 4c52e129eb1ab69a3da58b799f67929f77d81149 | MIT | 1.2.17 (2026-10-24) | Permissive. |
| pgvector | https://github.com/pgvector/pgvector | master @ 8df5b32d3dd62a65661b278791a50e616adfea0e | NOASSERTION; LICENSE file = PostgreSQL License | no GitHub releases; latest tag v0.8.7 | Permissive (PostgreSQL licence). |
https://github.com/anomalyco/opencode exists: Organization-owned, MIT, 220,715 stars, created 2025-04-30, default branch dev @ b64cc80db3c933c7a83980b1f36eef047551c845, latest release v1.19.4 (2026-10-22), not a fork.https://github.com/sst/opencode → HTTP 301 location: https://github.com/anomalyco/opencode; API for sst/opencode returns full_name anomalyco/opencode with identical SHA/stars.============================= test session starts ============================== platform linux -- Python 3.13.5, pytest-9.1.1, pluggy-1.7.0 -- /workspace/aam-labs/.venv/bin/python3 cachedir: .pytest_cache rootdir: /workspace/aam-labs configfile: pytest.ini testpaths: tests plugins: langsmith-0.14.12, anyio-4.15.1 collecting ... collected 8 items tests/test_scaffold.py::test_graph_runs_all_roles_and_stops_at_owner_gate PASSED [ 12%] tests/test_scaffold.py::test_release_blocked_without_approval PASSED [ 25%] tests/test_scaffold.py::test_budget_ceiling_halts PASSED [ 37%] tests/test_scaffold.py::test_tool_denied_and_audited PASSED [ 50%] tests/test_scaffold.py::test_flags_default_off PASSED [ 62%] tests/test_scaffold.py::test_sandbox_args_safe PASSED [ 75%] tests/test_scaffold.py::test_skill_promotion_requires_exam PASSED [ 87%] tests/test_scaffold.py::test_api_flow PASSED [100%] ============================== 8 passed in 0.35s ===============================
Nothing here is decided. Options for counsel/owner sign-off.
Amounts deliberately left blank for owner/legal.