Praxis CI
|
e8a05adcd1
|
feat(P01): SLICE-05 operator bootstrap CLI + secrets scope
- TASK-05-01 scripts/create-operator.py: CLI that reads
PRAXIS_BOOTSTRAP_OPERATOR_USER/PASS + PRAXIS_PG_DSN from env, creates
the pool, applies migrations, hashes the password with argon2id, and
INSERTs with ON CONFLICT DO NOTHING (idempotent — D-052). --update
flag forces rehash + ON CONFLICT DO UPDATE. Missing env → exit 1
(R-BOOT-02). Connection failure → 3x retry with 5s backoff (R-BOOT-01).
- TASK-05-02 .ciagent/config.json: added "operator" secrets scope
(PRAXIS_PG_PASSWORD, PRAXIS_COOKIE_SECRET,
PRAXIS_BOOTSTRAP_OPERATOR_USER/PASS, PRAXIS_VC_ISSUER_KEY).
.ciagent/.env.secrets.example: template (committed, no real secrets).
.gitignore: added negations so .env.secrets.example is tracked while
.env.secrets stays ignored.
- TASK-05-03 tests/test_create_operator.py: 7 tests (mocked PgStore) —
create, already-exists (no update), --update rehashes, missing env →
exit 1, password is argon2id (not plaintext).
---ci---
project: praxis
phase: 1
milestone: v0.4
status: execute
persona: devops-engineer
task: 05-01,05-02,05-03
requirements:
covered: [REQ-AUTH-01]
---/ci---
|
2026-08-04 00:56:41 +00:00 |
|
Praxis CI
|
6ab40c6f25
|
docs(milestone): merge phase/00 pre-execution → milestone/v0.4-operator-tier
Phase 0 complete — v0.4 operator tier pre-execution artifacts:
- PROJECT.md (v0.4 scope validated, D-050..D-057)
- REQUIREMENTS.md (8 active REQs: REQ-MT-01/02, REQ-AUTH-01, REQ-DASH-01 + 4 NFRs)
- ARCHITECTURE.md (operator Postgres + auth + dashboard + aggregation + VC migration)
- PERSONAS.md (6 active personas — frontend + devops reactivated)
- RESEARCH-v0.4-operator-tier.md (7 domains, 20 risks, confidence 0.70-0.95)
- PLAN-v0.4-operator-tier.md (2 execution phases, 10 slices, 52 tasks, 8/8 REQ)
- GRILL-v0.4.md (proceed-with-conditions, 6 MUST binding decisions)
---ci---
project: praxis
phase: 0
milestone: v0.4
status: complete
requirements:
covered: []
partial: []
---/ci---
|
2026-08-04 00:39:53 +00:00 |
|
Praxis CI
|
d0f37e151e
|
docs(milestone): complete v0.3-mastery-scoring — v0.1.5 tagged, release #380, merged to main
v0.3 milestone complete. Merged to main, tagged v0.1.5, release #380.
13/13 REQ-IDs covered, 8 deferred to v0.4 (operator tier).
Next milestone: v0.4 (cohort dashboard + auth + Postgres).
---ci---
project: praxis
phase: 2
milestone: v0.3
status: complete
milestone_complete: true
milestone_merged_to_main: true
---/ci---
|
2026-08-04 00:15:41 +00:00 |
|
Praxis CI
|
813bd586d6
|
docs(milestone): merge v0.3-mastery-scoring → main
v0.3 milestone merged to main. Mastery scoring + competency rubrics +
verifiable credentials (formative-tier) shipped. 13/13 REQ-IDs covered.
Next milestone: v0.4 (operator tier — cohort dashboard + auth + Postgres).
---ci---
project: praxis
phase: 2
milestone: v0.3
status: complete
milestone_complete: true
milestone_merged_to_main: true
---/ci---
|
2026-08-04 00:14:59 +00:00 |
|
Praxis CI
|
1b3617da3b
|
docs(P02): review + audit — APPROVE_WITH_NOTES, HEALTHY, 2 P0 fixed
REVIEW.md: 2 P0 fixed (stale test defaults, sandbox isolation),
8 P1+ flagged for post-hoc review. Verdict: APPROVE_WITH_NOTES.
AUDIT.md: 0 critical, 5 warnings. Reconstruction PASS, file
discipline PASS, branch hygiene PASS, commit discipline PASS.
Verdict: HEALTHY. Doc-drift fixed (REQ statuses → complete).
P0 fixes in working tree:
1. lxc-config.bats: aligned stale defaults with production code
2. lxc-deploy.bats: fixed sandbox isolation (HOME redirect)
---ci---
project: praxis
phase: 2
milestone: v0.2
status: review
---/ci---
|
2026-08-03 18:54:38 +00:00 |
|
Praxis CI
|
6cf63cb064
|
docs(P01): verify — APPROVE_WITH_NOTES, 4 P0 fixed, 18/20 REQ covered
Verification layers:
Structural: PASS (all scripts executable, syntax clean, Dockerfile valid)
Behavioral: PASS (121 bats, 77 pytest, docker build succeeds, compose valid)
Security: PASS (no secrets committed, .dockerignore excludes .env*, env_file pattern)
Quality: PASS (coreci patterns followed, no coreci refs, G-104/G-105/G-106 verified)
P0 issues found and auto-fixed:
1. docker-compose.yml: removed invalid restart_policy key, fixed env_file syntax
2. pyproject.toml: added fastapi + uvicorn deps (v0.1 gap exposed by Dockerfile)
3. timing.sh: renamed coreci_deploy_timing → praxis_deploy_timing (TASK-03-07)
4. firstboot-hook.sh: fixed idempotency check (/opt/praxis/.git not /usr/local/bin/praxis-deploy)
P1+ issues: 8 (1 fixed: lxc-config.sh default alignment, 7 noted for post-hoc review)
REQ coverage: 18/20 covered, 2 deferred (live first-boot timing + live E2E require cluster)
Must-haves: 25/28 pass, 2 partial (comment-only diffs, no Makefile), 1 deferred
---ci---
project: praxis
phase: 1
milestone: v0.2
status: verify
---/ci---
|
2026-08-03 18:37:45 +00:00 |
|
Praxis CI
|
70994e18ad
|
docs(init): validate specification — v0.2 Proxmox LXC deployment
---ci---
project: praxis
phase: 0
milestone: v0.2
status: specify
---/ci---
|
2026-08-01 13:51:29 +00:00 |
|
Praxis CI
|
fbd6602814
|
docs(milestone): complete v0.1 foundation
---ci---
phase: 0
milestone: v0.1
status: complete
---/ci---
|
2026-08-01 13:32:48 +00:00 |
|