Jon Chery
|
07b8ad2cea
|
ship(P05): health checks merged into milestone
Phase 5 ships:
- /healthz, /readyz, /v1/status endpoints
- /v1/jobs, /v1/jobs/{id}, /v1/jobs/{id}/tasks
- /v1/nodes
- /v1/tasks (with ?job_id, ?limit)
- Graceful shutdown via signal.NotifyContext
- Security: input validation, slog access logs, bounded timeouts
---ci---
project: orca
phase: 5
milestone: v0.1
status: ship
version: v0.1.5
requirements:
covered: [REQ-006, REQ-017, REQ-019]
partial: []
---/ci---
v0.1.5
|
2026-06-03 19:24:09 +00:00 |
|
Jon Chery
|
b06458d313
|
docs(P05): verification - 4 layers pass
- Layer 1 build: go build ./... PASS
- Layer 2 vet: go vet ./... PASS
- Layer 3 test: all packages green
- Layer 4 smoke: /healthz, /readyz, /v1/{jobs,nodes,tasks} all 200; SIGTERM clean
REQ-006 (slog audit), REQ-017 (context propagation), REQ-019 (cobra) all covered.
Daemon coverage 67.5%.
---ci---
project: orca
phase: 5
milestone: v0.1
status: verify
requirements:
covered: [REQ-006, REQ-017, REQ-019]
partial: []
---/ci---
|
2026-06-03 19:24:03 +00:00 |
|
Jon Chery
|
708d983429
|
feat(P05): health check daemon with /healthz, /readyz, /v1/* handlers
- internal/daemon/server.go: HTTP Server with lifecycle, logging middleware
- internal/daemon/health.go: /healthz (liveness), /readyz (db+ready), /v1/status
- internal/daemon/jobs_handler.go: GET /v1/jobs, /v1/jobs/{id}, /v1/jobs/{id}/tasks
- internal/daemon/nodes_handler.go: GET /v1/nodes
- internal/daemon/tasks_handler.go: GET /v1/tasks (with ?job_id and ?limit)
- internal/daemon/validate.go: input validation for path IDs
- internal/daemon/version.go: ldflags-friendly version var
- internal/store: added TaskRepo.ListRecent for unfiltered task listing
- internal/cli/daemon.go: CLI wiring with signal.NotifyContext shutdown
Personas: backend-engineer (handlers), cli-engineer (CLI wiring),
security-engineer (input validation, no secrets in access logs, slog JSON).
---ci---
project: orca
phase: 5
milestone: v0.1
status: execute
requirements:
covered: [REQ-006, REQ-017, REQ-019]
partial: []
---/ci---
|
2026-06-03 19:23:21 +00:00 |
|
Jon Chery
|
30c523c0c7
|
ship(P04): state persistence merged into milestone
v0.1.4
|
2026-06-03 12:48:39 +00:00 |
|
Jon Chery
|
759b1b519d
|
docs(P04): verification - 4 layers pass
---ci---
project: orca
phase: 4
milestone: v0.1
status: verify
---/ci---
|
2026-06-03 12:48:38 +00:00 |
|
Jon Chery
|
b25e074e1d
|
feat(P04): audit log + persistence hardening
Implements Phase 4 of v0.1 Foundation:
- internal/store/migrations/0003_audit_log.sql: audit_log table with indexes
- internal/store/audit_repo.go: AuditRepo (Append + List)
- internal/store/audit_repo_test.go: 2 tests for audit persistence
- internal/engine/audit.go: Audit wrapper that persists to SQLite AND logs via slog
- internal/cli/audit.go: orca audit list command (text + JSON)
- Registry now records every join/leave/forget with actor/action/resource/result
Verified: audit entries persist across restarts, JSON output includes metadata,
node operations emit audit records. All tests pass with -race.
---ci---
project: orca
phase: 4
milestone: v0.1
status: execute
req_covered:
- REQ-005
- REQ-006
- REQ-008
- REQ-017
- REQ-018
---/ci---
|
2026-06-03 12:48:31 +00:00 |
|
Jon Chery
|
bb6b5b3e83
|
ship(P03): task exec merged into milestone
v0.1.3
|
2026-06-03 12:45:31 +00:00 |
|
Jon Chery
|
857f756319
|
docs(P03): verification - 4 layers pass
- Structural: go build, go vet, gofmt all clean
- Behavioral: job run/list/stop/logs work end-to-end, JSON output valid, tests pass with -race
- Security: gosec/govulncheck deferred to CI
- Quality: tests pass, no formatting issues
---ci---
project: orca
phase: 3
milestone: v0.1
status: verify
verification:
structural: pass
behavioral: pass
security: deferred_to_ci
quality: pass
---/ci---
|
2026-06-03 12:45:30 +00:00 |
|
Jon Chery
|
f9a9873341
|
feat(P03): task execution engine with HCL specs, jobs, tasks, WaitDelay
Implements Phase 3 of v0.1 Foundation:
- internal/model/job.go: Job + Task models with status state machines
- internal/store/migrations/0002_jobs_tasks.sql: jobs + tasks tables with FK
- internal/store/job_task_repo.go: JobRepo + TaskRepo with CRUD and lifecycle updates
- internal/jobspec/spec.go: HCL parser using hashicorp/hcl/v2 hclsimple
- internal/jobspec/spec_test.go: 4 tests for parser
- internal/engine/executor.go: parallel task executor using os/exec with Go 1.25
WaitDelay for clean process shutdown
- internal/cli/job.go: orca job {run,list,stop,logs} wired to executor
- testdata/hello.hcl, testdata/fail.hcl: smoke test fixtures
Verified: job run executes commands, captures stdout/stderr, persists state,
job stop transitions status, job logs displays captured output. All tests
pass with -race.
---ci---
project: orca
phase: 3
milestone: v0.1
status: execute
req_covered:
- REQ-004
- REQ-006
- REQ-009
- REQ-018
- REQ-020
- REQ-021
---/ci---
|
2026-06-03 12:45:20 +00:00 |
|
Jon Chery
|
78334f1f74
|
ship(P02): node mgmt merged into milestone
v0.1.2
|
2026-06-03 12:39:13 +00:00 |
|
Jon Chery
|
c7dbcef958
|
docs(P02): verification - 4 layers pass
- Structural: go build, go vet, gofmt all clean
- Behavioral: node join/list/leave work, JSON output valid, tests pass with -race
- Security: gosec/govulncheck deferred to CI
- Quality: tests pass, no formatting issues
---ci---
project: orca
phase: 2
milestone: v0.1
status: verify
verification:
structural: pass
behavioral: pass
security: deferred_to_ci
quality: pass
---/ci---
|
2026-06-03 12:39:13 +00:00 |
|
Jon Chery
|
9580f347c6
|
feat(P02): node management with SQLite-backed registry
Implements Phase 2 of v0.1 Foundation:
- internal/model/node.go: Node struct with state machine (pending/ready/left)
- internal/store/store.go: SQLite open with WAL + foreign_keys pragmas
- internal/store/migrate.go: embedded SQL migration runner
- internal/store/migrations/0001_nodes.sql: nodes table schema
- internal/store/node_repo.go: CRUD operations for nodes
- internal/store/node_repo_test.go: 4 tests covering insert/get/list/update/delete
- internal/engine/registry.go: in-memory wrapper with slog audit logging
- internal/cli/node.go: orca node {join,leave,list} wired to registry
Verified: node join/list/leave work end-to-end, JSON output, slog audit logs,
state persists in SQLite, all tests pass with -race.
---ci---
project: orca
phase: 2
milestone: v0.1
status: execute
req_covered:
- REQ-002
- REQ-005
- REQ-008
- REQ-012
- REQ-017
- REQ-018
---/ci---
|
2026-06-03 12:38:46 +00:00 |
|
Jon Chery
|
46e929e4c6
|
chore(P01): source .env in trigger_coreci.sh for GITEA_TOKEN
---ci---
project: orca
phase: 1
milestone: v0.1
status: ship
---/ci---
|
2026-06-03 12:34:55 +00:00 |
|
Jon Chery
|
503923bf1e
|
ship(P01): cli skeleton merged into milestone
---ci---
project: orca
phase: 1
milestone: v0.1
status: ship
---/ci---
v0.1.1
|
2026-06-03 12:25:51 +00:00 |
|
Jon Chery
|
e3f6e1df82
|
docs(P01): verification - 4 layers pass
- Structural: go build, go vet, gofmt all clean
- Behavioral: orca version (text+JSON), subcommands registered, tests pass
- Security: gosec/govulncheck deferred to CI (not in dev env)
- Quality: tests pass, no formatting issues
---ci---
project: orca
phase: 1
milestone: v0.1
status: verify
verification:
structural: pass
behavioral: pass
security: deferred_to_ci
quality: pass
---/ci---
|
2026-06-03 12:25:27 +00:00 |
|
Jon Chery
|
aa3cccead5
|
feat(P01): CLI skeleton with Cobra, subcommand stubs, pre-push hook
Implements Phase 1 of v0.1 Foundation:
- go.mod with Go 1.25
- cmd/orca/main.go entry point
- internal/cli/root.go with global --json flag
- internal/cli/version.go (orca version)
- internal/cli/init.go (orca init - creates ~/.orca/)
- internal/cli/status.go (orca status - shows daemon info)
- internal/cli/node.go (orca node {join,leave,list} - stubs)
- internal/cli/job.go (orca job {run,list,stop,logs} - stubs)
- Makefile (build, test, lint, fmt, release)
- LICENSE (MIT)
- README.md with quickstart
- .gitignore
- .githooks/pre-push + scripts/trigger_coreci.sh (CoreCI trigger)
- Smoke tests in internal/cli/root_test.go
Verified: go build, go test, go vet, gofmt all pass.
---ci---
project: orca
phase: 1
milestone: v0.1
status: execute
req_covered:
- REQ-001
- REQ-002
- REQ-013
- REQ-015
- REQ-016
- REQ-019
- REQ-024
---/ci---
|
2026-06-03 12:23:37 +00:00 |
|
Jon Chery
|
c2038952c7
|
docs(P00): create 6 phase plans with wave ordering
---ci---
project: orca
phase: 0
milestone: v0.1
status: plan
phases_planned: 6
waves: 4
---/ci---
|
2026-06-03 12:16:08 +00:00 |
|
Jon Chery
|
65eb2e601b
|
docs(P00): research findings - architecture + personas
---ci---
project: orca
phase: 0
milestone: v0.1
status: research
personas_active: 5
personas_deactivated: 2
---/ci---
|
2026-06-03 12:15:20 +00:00 |
|
Jon Chery
|
6f34f1794b
|
docs(P00): ideation - 30 ideas accepted (3 tiers)
---ci---
project: orca
phase: 0
milestone: v0.1
status: ideate
ideas_accepted: 30
tiers:
mechanical: 10
backend: 10
cross_project: 10
---/ci---
|
2026-06-03 12:12:55 +00:00 |
|
Jon Chery
|
bc7ce1caf6
|
docs(P00): clarify ambiguities (full autonomy, 10 decisions)
---ci---
project: orca
phase: 0
milestone: v0.1
status: clarify
decisions:
- id: D-001
decision: Single binary distribution
rationale: Simpler distribution; subcommands baked into one orca binary
confidence: 0.95
- id: D-002
decision: modernc/sqlite for state store
rationale: CGO-free, cross-compile friendly, single file
confidence: 0.92
- id: D-003
decision: net/http for inter-node comms
rationale: No external RPC framework for v0.1
confidence: 0.85
- id: D-004
decision: Single-node only for v0.1
rationale: Multi-node scheduling is out of scope
confidence: 0.90
- id: D-005
decision: Human-readable default, --json for machine
rationale: Serves both humans and AI agents
confidence: 0.95
- id: D-006
decision: HCL/YAML job specs
rationale: Familiar to Nomad users, simpler than JSON
confidence: 0.88
- id: D-007
decision: mTLS for v0.1
rationale: Most secure default
confidence: 0.80
- id: D-008
decision: Direct process execution (no containers)
rationale: Avoids Docker dependency
confidence: 0.85
- id: D-009
decision: ~/.orca/config.hcl and /etc/orca/orca.hcl
rationale: XDG-style paths
confidence: 0.90
- id: D-010
decision: Structured JSON via log/slog
rationale: Native Go slog, no external dep
confidence: 0.95
---/ci---
|
2026-06-03 12:07:28 +00:00 |
|
Jon Chery
|
55aae5347e
|
chore(P00): rename orch-engine to orca, configure gitea + coreci (v0.1)
---ci---
project: orca
phase: 0
milestone: v0.1
status: execute
---/ci---
|
2026-06-03 11:36:32 +00:00 |
|
Jon Chery
|
0cba1aa5fe
|
chore(P00): set autonomy level to full
---ci---
project: orch-engine
phase: 0
milestone: v1.0
status: execute
---/ci---
|
2026-06-03 11:18:58 +00:00 |
|
Jon Chery
|
e2e77e79b9
|
chore(P00): quick task - populate config.json with backlog reference
---ci---
project: orch-engine
phase: 0
milestone: v1.0
status: execute
lessons:
- Referenced backlog project's config.json (also Go 1.25+) to establish proper schema including autonomy, personas, parallelization, sessions, ci, repository, and commands sections
---/ci---
|
2026-06-03 11:15:12 +00:00 |
|
Jon Chery
|
8c086def69
|
chore(config): populate ciagent config with standard settings
---ci---
project: orch-engine
phase: 0
milestone: v1.0
status: execute
---/ci---
|
2026-06-03 11:08:48 +00:00 |
|
Jon Chery
|
8774008c3e
|
docs(init): validate specification
---ci---
project: orch-engine
phase: 0
milestone: v1.0
status: specify
---/ci---
|
2026-06-03 11:06:26 +00:00 |
|
Jon Chery
|
97f437f9ef
|
docs(init): initialize orch-engine (6 phases)
---ci---
project: orch-engine
phase: 0
milestone: v1.0
status: specify
decisions:
- id: D-001
decision: Use single-project mode for initial setup
rationale: Simplified configuration for the initial phase
confidence: 1.0
alternatives: []
---/ci---
Specification: Build an offline/CLI-first orchestration engine.
Requirements: Simplicity, AI-first, Offline-first, CLI-first, prioritize security/bug-fixes over features, Go 1.25+.
Constraints: Simpler than Nomad, far simpler than Kubernetes.
Out of scope: K8s complexity.
|
2026-06-03 10:59:05 +00:00 |
|