CIAgent
135ea21a61
merge: hotfix/fresh-box-experience → main (v0.3.5 fresh-box experience)
...
Fixes the v0.3.4 fresh-box failures: silent CLI under bare-word PATH
invocation (SEA argv detection), bootstrap dying on venv creation without an
actionable hint (poisoned-partial-venv recovery + apt hint + doctor
venv-capability probe + preflight), installer falsely 'verifying' a silent
binary, and localhost-only server binding (network mode: 0.0.0.0 + wildcard
CORS + hostname-derived API URL — remote browsing zero-config).
38 CLI tests, 3 web tests, 409 ai-service tests green; build/typecheck/lint
clean.
---ci---
phase: hotfix
milestone: v0.4
status: complete
type: hotfix
requirements:
covered: [REQ-4-001, REQ-4-002, REQ-4-003, REQ-4-004, REQ-4-005]
partial: []
---/ci---
2026-09-13 00:05:37 +00:00
CIAgent
1648467828
chore(P04): clear checkpoint — milestone v0.4 complete
...
---ci---
phase: 4
milestone: v0.4
status: complete
---/ci---
2026-09-12 23:18:51 +00:00
CIAgent
1a68d808fb
docs(milestone): complete v0.4-distribution
...
---ci---
phase: 4
milestone: v0.4
status: complete
requirements:
covered: [REQ-4-001, REQ-4-002, REQ-4-003, REQ-4-004, REQ-4-005]
partial: []
---/ci---
2026-09-12 23:18:51 +00:00
CIAgent
2c68b44c1a
merge: milestone/v0.4-distribution → main (v0.4 Distribution & Bootstrap CLI complete)
...
The nextcraft bootstrap CLI ships: doctor/bootstrap/verify/dev commands, a
one-liner install script with checksum + version integrity gates, and linux
x64 SEA binaries published on every release going forward (v0.3.2 onward).
Fresh-clone E2E proven; 34 CLI tests + full monorepo gates green.
Escalation note: merge_to_main hook — proceeding per full autonomy + founder
directive D-016 (streamlined install + bootstrap CLI + ongoing binaries,
recorded at P0 SPECIFY).
---ci---
phase: 4
milestone: v0.4
status: complete
requirements:
covered: [REQ-4-001, REQ-4-002, REQ-4-003, REQ-4-004, REQ-4-005]
partial: []
---/ci---
2026-09-12 23:17:43 +00:00
CIAgent
fb2db4ee97
chore(P07): clear checkpoint — milestone v0.3 complete
...
---ci---
phase: 7
milestone: v0.3
status: complete
---/ci---
2026-09-12 21:45:31 +00:00
CIAgent
485d86e117
docs(milestone): complete v0.3-credential-engines
...
---ci---
phase: 7
milestone: v0.3
status: complete
requirements:
covered: [REQ-3-001, REQ-3-002, REQ-3-003, REQ-3-004, REQ-3-005, REQ-3-006, REQ-3-007, REQ-3-008]
partial: []
---/ci---
2026-09-12 21:45:23 +00:00
CIAgent
1d03f0c8f5
chore(P07): audit fixes — tag re-point v0.2.1/v0.2.2, phase-status + doc-reality drift
...
---ci---
phase: 7
milestone: v0.3
status: audit
lessons:
- P0 reconstruction: tags v0.2.1/v0.2.2 pointed at the pre-migration first attempt (818d8c3/32af0fb) orphaned at the 2026-09-12 forge cutover — NOT ancestors of HEAD; re-pointed to the shipped phase commits (45b2162 / f0df185 ) matching the v0.2.3..v0.2.7 series convention; all v0.2.x tags now ancestors of HEAD
- P1 roadmap: phase 0 status stuck at in-progress after the P0 ship; phase 7 pending despite the P07 review commit; both corrected (complete / in-progress)
- P1 requirements: 27 v0.1 requirement rows (REQ-002..028) still said pending — contradicting the traceability matrix in the same file, PROJECT.md, and ROADMAP (v0.1 shipped as v0.1.0); all set complete
- P1 grill consistency: GRILL CUT-2 (no xterm in v0.3) never propagated to PERSONAS.md (frontend frameworks listed @xterm/xterm) and ARCHITECTURE.md build order (xterm.js build/run); PROJECT.md A-103 still claimed a WebSocket xterm terminal on a bwrap sandbox; all aligned to the shipped read-only exec-output panel (CUT-2/G-8, D-024 unshare)
- P1 architecture drift: api/ row missing the five v0.3 routers (sandboxes/telemetry/variants/defense + grade endpoint); voice/ row missing factory.py + defense_store.py; agents/ row missing examiner.py; main.py row missing engine-store lifespan wiring; ui/types rows missing the v0.3 primitives and engine type modules; data-flow section still described the v0.2 mock-agent flow as current
- P2 docstring: IngestSession still documented the pre-P7 len(get_trace) O(n²) flood-cap count that the P07 fix replaced with TraceStore.count()
---/ci---
2026-09-12 21:42:10 +00:00
CIAgent
12b2300f6f
fix(P07): final review — CORS PUT, WS origin gate, ingest leak+O(n²), symlink escape, retry leak, doc-reality gaps
...
---ci---
phase: 7
milestone: v0.3
status: review
lessons:
- P0 CORS: allow_methods lacked PUT while the build surface writes files with PUT — every cross-origin Save failed preflight; pinned with tests/api/test_cors.py
- P0 ingest leak: queue-overflow flood path returned without the disconnect sentinel, parking the drainer forever (one leaked task-set per flooded trace); sentinel now always enqueued, real-server regression test added
- P1 perf: flood cap counted rows via len(get_trace(...)) — O(trace) per append, O(n²) per session; TraceStore.count() (COUNT(*)) added and wired
- P0 security: file routes followed exec-planted symlinks out of the workspace bind; _resolve_in_workspace refuses escapes (422), read/write now 404 on unknown sandboxes (was 500)
- P1 security: WS ingest accepted any browser Origin (CORS middleware does not cover WS); localhost dev origins + no-Origin (capture agent) allowed, others 1008
- P1 correctness: use-sandbox-session leaked a created sandbox on any mid-start failure (per-learner cap 1 → all retries 429 forever); failed starts now destroy what they created
- P2 testing: reconnect-flush test killed mid-burst (nondeterministic under load, reproduced on pre-change code); now waits for server-side observation of the pre-kill burst — the underlying one-line replay-margin/ACK gap is documented for v0.4
- maintainability: grading-store/templates/grading.ts docstrings claimed grading is variant-blind (stale pre-P4 text) — updated; ARCHITECTURE.md referenced nonexistent voice/openai_audio.py; dead if TYPE_CHECKING: pass blocks removed
---/ci---
2026-09-12 20:02:10 +00:00
CIAgent
e1460aed3c
chore(P06): checkpoint complete — phase 6 shipped as v0.2.7
...
---ci---
phase: 6
milestone: v0.3
status: complete
requirements: {covered: [REQ-3-007, REQ-3-008], partial: []}
---/ci---
2026-09-12 18:31:23 +00:00
CIAgent
16fb52d8f7
docs(P06): mark REQ-3-007/008 + phase 6 verified
...
---ci---
phase: 6
milestone: v0.3
status: verify
requirements: {covered: [REQ-3-007, REQ-3-008], partial: []}
---/ci---
2026-09-12 18:30:59 +00:00
CIAgent
82ae839cd4
chore(P05): checkpoint complete — phase 5 shipped as v0.2.6
...
---ci---
phase: 5
milestone: v0.3
status: complete
requirements: {covered: [REQ-3-006], partial: []}
---/ci---
2026-09-12 04:52:05 +00:00
CIAgent
f281eeaf62
docs(P05): mark REQ-3-006 + phase 5 verified
...
---ci---
phase: 5
milestone: v0.3
status: verify
requirements: {covered: [REQ-3-006], partial: []}
---/ci---
2026-09-12 04:51:45 +00:00
CIAgent
97893f2386
chore(P04): checkpoint complete — phase 4 shipped as v0.2.5
...
---ci---
phase: 4
milestone: v0.3
status: complete
requirements: {covered: [REQ-3-005], partial: []}
---/ci---
2026-09-12 03:52:16 +00:00
CIAgent
0b34255855
docs(P04): mark REQ-3-005 + phase 4 verified (anchors fix applied)
...
---ci---
phase: 4
milestone: v0.3
status: verify
requirements: {covered: [REQ-3-005], partial: []}
---/ci---
2026-09-12 03:51:30 +00:00
CIAgent
b52bef93e5
chore(P03): checkpoint complete — phase 3 shipped as v0.2.4
...
---ci---
phase: 3
milestone: v0.3
status: complete
requirements: {covered: [REQ-3-004], partial: []}
---/ci---
2026-09-12 02:49:33 +00:00
CIAgent
b303a41a45
docs(P03): mark REQ-3-004 + phase 3 verified
...
---ci---
phase: 3
milestone: v0.3
status: verify
requirements: {covered: [REQ-3-004], partial: []}
---/ci---
2026-09-12 02:48:49 +00:00
CIAgent
3322c1dab9
chore(P03): checkpoint verify
...
---ci---
phase: 3
milestone: v0.3
status: verify
---/ci---
2026-09-12 02:48:15 +00:00
CIAgent
2474678da6
chore(P02): checkpoint complete — phase 2 shipped as v0.2.3
...
---ci---
phase: 2
milestone: v0.3
status: complete
---/ci---
2026-09-12 01:41:31 +00:00
CIAgent
edf586b03a
docs(P02): mark REQ-3-003 + phase 2 complete
...
---ci---
phase: 2
milestone: v0.3
status: complete
requirements: {covered: [REQ-3-003], partial: []}
---/ci---
2026-09-12 01:41:13 +00:00
CIAgent
4439486858
chore(P02): checkpoint verify
...
---ci---
phase: 2
milestone: v0.3
status: verify
---/ci---
2026-09-12 01:41:08 +00:00
CIAgent
f0df18576e
docs(P01): mark REQ-3-001/002 + phase 1 complete
...
---ci---
phase: 1
milestone: v0.3
status: complete
requirements: {covered: [REQ-3-001, REQ-3-002], partial: []}
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
8a3296cd21
chore(P01): checkpoint complete — phase 1 shipped as v0.2.2
...
---ci---
phase: 1
milestone: v0.3
status: complete
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
df4c115bb7
chore(P01): checkpoint verify
...
---ci---
phase: 1
milestone: v0.3
status: verify
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
45b2162bec
chore(P00): checkpoint complete — phase 0 shipped as v0.2.1
...
---ci---
phase: 0
milestone: v0.3
status: complete
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
d8fb56fb56
chore(P00): checkpoint mvp_ux_check
2026-09-12 00:47:45 +00:00
CIAgent
18b9ceda93
chore(P00): checkpoint grill
2026-09-12 00:47:45 +00:00
CIAgent
0131da5b0d
docs(P00): grill verdict — GO-WITH-CHANGES, binding decisions + scope cuts applied
...
G-1 resource-limit claims match mechanism (mem/cpu/fsize/wallclock kernel-enforced;
per-sandbox pids + hard disk quota documented as accepted v0.3 gap, no cgroup/sudo)
G-2 disk cap via manager workdir-size sweep (AI_SANDBOX_MAX_WORKDIR_MB, default 512MB)
G-3 telemetry flood control: WS 1008 + INCOMPLETE_FLOODED trace (no silent drop-oldest)
G-4 grader refuses gapped/incomplete traces (UNGRADABLE_TRACE_INCOMPLETE verdict)
G-5 no-auth abuse control: per-learner caps + learner allowlist (ships despite KYC defer)
G-6 release note discloses partial resource enforcement (P7 honesty)
CUT-1 real server STT/TTS deferred to v0.4 (voice mock+browser-first)
CUT-2 interactive xterm shell relay deferred to v0.4 (build panel = run/test + output)
Advisories a-1..a-5 applied (startup reaper, RLIMIT_FSIZE, SQLite WAL, digest-gaming
prompt note, variant fairness envelope)
---ci---
phase: 0
milestone: v0.3
status: grill
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
717c46aadc
chore(P00): checkpoint plan
2026-09-12 00:47:45 +00:00
CIAgent
044e4b8cc8
docs(P00): create phase plans — v0.3 credential engines
...
Vertical-slice plan: 6 execution phases, 20 waves, 39 tasks.
P1 sandbox fabric (unshare namespaces, D-024/032) · P2 telemetry (WS+SQLite, D-026/027)
P3 trace grading (digest+LLM, D-028) · P4 variants (seeded templates, D-029)
P5 voice defense (VoiceProvider, Examiner, D-030) · P6 re-grounding + learner integration.
MVP/UX sections included (User-Facing Surface, Happy Path, UX Acceptance Criteria).
Must-haves per phase; KYC deferred (A-110); mock-first voice (no blocking key).
---ci---
phase: 0
milestone: v0.3
status: plan
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
ec897336a5
chore(P00): checkpoint research
2026-09-12 00:47:45 +00:00
CIAgent
6be95cf2f6
docs(P00): research findings — credential engine architecture + personas
...
ARCHITECTURE.md:
- D-024 sandbox isolation via unshare Linux user/mount/pid/net namespaces
(probe-verified: in-ns uid=0, network isolated, no container runtime/sudo on box)
- D-025 sandbox scope = coding IDE only (design/sim deferred to v0.4)
- D-026 telemetry = WebSocket ingest + SQLite ordered event log (seq gap detection)
- D-027 first persistence = SQLite, protocol-wrapped stores (Trace/Grade/Variant/Defense)
- D-028 trace grading = deterministic digest features + LLM rubric (LLM never sees raw trace)
- D-029 variant generation = seeded template instantiation, seed persisted
- D-030 voice = provider-agnostic mock-first STT/TTS + browser fallback (D-014 mirror)
- D-031 extend ai-service (no new apps); D-032 single-box 1-5 concurrent sandboxes
- New engine component tables + v0.3 build order
PERSONAS.md (lead-developer assessment):
- new sandbox-engineer + voice-engineer custom personas (phase-specific)
- backend-engineer territory extended to engine persistence/APIs; ai-engineer re-scoped
to model-facing grading/variant/voice logic; security-auditor stays inactive (KYC deferred)
A-101 corrected post-probe: bwrap absent -> unshare namespaces (verified)
.gitignore: ignore SQLite data + sandbox runtime dirs
---ci---
phase: 0
milestone: v0.3
status: research
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
da9320bf4e
docs(P00): clarify v0.3 ambiguities — auto-resolved (full autonomy)
...
A-101 bwrap user-namespace sandbox isolation; A-102 coding-IDE-only scope (design/sim deferred);
A-103 xterm.js+WebSocket build UX; A-104 WebSocket+SQLite telemetry transport; A-105 SQLite trace store;
A-106 LLM trace grader w/ code-computed deterministic features; A-107 seeded LLM variant generation;
A-108 provider-agnostic mock-first voice (STT/TTS); A-109 Examiner agent reuses BaseAgent+SSE;
A-110 KYC/age-gating deferred per founder directive; A-111 extend ai-service (no new apps);
A-112 single-box 1-5 concurrent sandbox capacity target.
All resolutions confidence >= 0.60.
---ci---
phase: 0
milestone: v0.3
status: clarify
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
01286a02cb
docs(init): validate specification — milestone v0.3 credential-engines
...
- config.json: milestone v0.3 credential-engines, branch milestone/v0.3-credential-engines
- PROJECT.md: v0.3 scope sandbox fabric, telemetry, trace grading, variant gen, voice defense;
REQ-F-017 (identity/age-gating) explicitly deferred per founder directive
- REQUIREMENTS.md: activate REQ-F-007/008/009/010/021 as REQ-3-001..008; REQ-F-017 re-deferred to v0.4+
- ROADMAP.md: v0.3 phase structure P0-P7
- .gitignore: ignore .ciagent/bin/ (local credential helper)
- Clear stale v0.2 CHECKPOINT.json (milestone complete; new run starts at SPECIFY)
---ci---
phase: 0
milestone: v0.3
status: specify
---/ci---
2026-09-12 00:47:45 +00:00
CIAgent
c4a083387a
chore: forge migration git.cloudinit.dev -> git.coreci.dev
...
---ci---
phase: 7
milestone: v0.2
status: complete
---/ci---
Forge hard-cutover verified: old host TLS-dead, new host serving
repo with full history; coreci-bot token valid (push+admin);
all 12 releases migrated with IDs intact (#847-#864, v0.0.1-v0.2.2).
- config.json: release.base_url -> https://git.coreci.dev
- PROJECT.md: D-006 decision row records the migration
- origin remote URL updated (git remote set-url)
- local credential helper (.ciagent/bin, gitignored) now matches
both hosts — new primary + legacy for older checkouts
2026-09-12 00:45:24 +00:00
CIAgent
3780537b5a
chore(P07): checkpoint complete — milestone v0.2 done
...
---ci---
phase: 7
milestone: v0.2
status: complete
---/ci---
2026-09-11 17:35:46 +00:00
CIAgent
88a1dab810
docs(milestone): complete v0.2-ai-tutor-architecture
...
---ci---
phase: 7
milestone: v0.2
status: complete
requirements:
covered: [REQ-2-001, REQ-2-002, REQ-2-003, REQ-2-004, REQ-2-005, REQ-2-006, REQ-2-007, REQ-2-008, REQ-2-009, REQ-2-010, REQ-2-011, REQ-2-012]
partial: []
---/ci---
Milestone v0.2 (ai-tutor-architecture) merged to main.
Escalation record (audit remediation, durable): P1 executor
delegation failed twice (empty subagent results, zero files
created); auto-resolved at full autonomy to inline execution with
identical plan fidelity (commit 3271373, reflog-only after phase
branch squash-delete).
2026-09-11 17:34:50 +00:00
CIAgent
71728e35c8
chore(P07): audit fixes — roadmap phase 7 complete, clean remote URL
...
---ci---
phase: 7
milestone: v0.1
status: complete
---/ci---
Audit fixes:
- ROADMAP.md: phase 7 status corrected from in_progress to complete
- Remote origin URL: removed embedded token (security)
- Deleted stale remote milestone branch
2026-09-11 13:53:18 +00:00
CIAgent
810485ecc8
docs(milestone): complete v0.1-nextcraft-ui-prototype
...
---ci---
phase: 7
milestone: v0.1
status: complete
requirements:
covered: [REQ-001, REQ-002, REQ-003, REQ-004, REQ-005, REQ-006, REQ-007, REQ-008, REQ-009, REQ-010, REQ-011, REQ-012, REQ-013, REQ-014, REQ-015, REQ-016, REQ-017, REQ-018, REQ-019, REQ-020, REQ-021, REQ-022, REQ-023, REQ-024, REQ-025, REQ-026, REQ-027, REQ-028]
partial: []
---/ci---
Milestone v0.1 (nextcraft-ui-prototype) complete.
Summary:
- 7 phases (P0 pre-execution + P1-P6 execution + P7 final review)
- 28 requirements covered (all complete)
- 4 surfaces: Learner (7 pages), Marketplace (5), Employer Dashboard (4), Admin (4)
- 19 routes, 104 TypeScript files
- Shared component library (5 primitives + design tokens)
- Mock data: 5 competency stacks (70 competencies), 20 jobs, 15 candidates, 10 employers
- Tech: Next.js 15, Tailwind CSS v4, lucide-react, recharts, @xyflow/react, Inter font
- Storybook with 6 stories
- Dark mode, breadcrumbs, role switcher, responsive design
- Build passes, typecheck passes, Storybook build passes
Phases:
P0 pre-execution → v0.0.1
P1 project-scaffolding → v0.0.2
P2 learner-surface → v0.0.3
P3 marketplace-surface → v0.0.4
P4 employer-dashboard → v0.0.5
P5 admin-surface → v0.0.6
P6 polish-integration → v0.0.7
P7 final-review-ship → v0.1.0 (milestone release)
2026-09-10 22:47:56 +00:00