-
released this
2026-10-11 00:35:46 +00:00 | 2 commits to main since this releaseMilestone v0.2 — cli-packaging (milestone release)
The completed v0.1 broker, packaged for distribution. Scope: CLI + distribution only — the broker is byte-identical to v0.1.5 (1390 lines, AC14 cap 1400).
Phases
- P0 pre-execution →
v0.2.0— requirements REQ-21..23, decisions D-019..D-022, research (zipapp mechanics, gitea release API, OCI registry v2), plan (3 phases / 12 tasks), grill GO-WITH-CONDITIONS (G-009..G-021, all applied) - P1 cli-packaging →
v0.2.1— zipapp build pipeline + boot shim (REQ-21), release tooling: sanctioned secrets loader + gitea attacher (REQ-22) - P2 docker-release-integration →
v0.2.2— daemonless OCI publish client (REQ-23), Dockerfile + .dockerignore + docs - P3 final-review-ship →
v0.2.3— acceptance matrix, security review (PASS-WITH-FINDINGS: 0 P0 / 1 P1 / 3 P2 — all remediated with regression gates), review + audit GO, this release
Requirements
- REQ-21 —
coreci-broker-vX.Y.Z.pyz: single-file self-contained CLI (stdlib zipapp, no pip); bundles broker + admin UI + client module; first-boot parity with v0.1 (admin pass printed once, 0600 state files);--version; deterministic builds (two consecutive builds byte-identical) - REQ-22 — every release from
v0.2.1carries the.pyzattached (this one included); token discipline: file-only.env*resolution, never shell env; bounded-retry →release_pendingescalation never blocks tag+merge - REQ-23 — docker container built once per milestone and published as a gitea package:
git.coreci.dev/coreci/broker:v0.2.3+:latest, daemonless stdlib registry client (D-019) — no container runtime required
Verification
- Cumulative suite: 356 tests green (1 pre-existing skip: bcrypt not importable locally) — includes the v0.1 AC1–AC14 matrix and the v0.2 acceptance matrix (boot parity through the artifact, reproducibility, self-containment, stub publish/release roundtrips, Dockerfile consistency)
- Security review: 8 binding axes PASS after remediation; frozen broker zero-delta verified (no v0.2 commit touched
coreci_broker.py, client, UI, or reference tools) - Release attachment: script-driven (
scripts/release.py), idempotent, sha256 computed from the attached file
CLI install + usage
- Download
coreci-broker-v0.2.3.pyzfrom this release's assets. chmod +x coreci-broker-v0.2.3.pyzthen./coreci-broker-v0.2.3.pyz, orpython3 coreci-broker-v0.2.3.pyz(Python 3.11+)../coreci-broker-v0.2.3.pyz --versionprintsv0.2.3.- First boot prints
BROKER_ADMIN_PASS=...exactly once and creates.env,broker.db,broker.audit.log(mode 0600) in the state dir (BROKER_ENV_PATHanchors it). Full env contract in the README.
Artifact sha256 (computed from the attached file):
sha256:d2cf0d74805e7f927a6690b0ed80652c80281b62ae40086bd41542e3dcfbac80 coreci-broker-v0.2.3.pyzDocker usage
docker pull git.coreci.dev/coreci/broker:v0.2.3 # also :latest docker run -p 8765:8765 -v broker-state:/state git.coreci.dev/coreci/broker:v0.2.3State lives on the
/statevolume — mount a persistent volume or the admin pass and registrations are lost with the container.Escalations (all auto-resolved)
- E-001/E-002
execution_dispatch— silent subagent dispatch failures on P2-01/P2-02; orchestrator executed directly; both passed independent four-layer verify gates - Zero
release_pendingevents across the milestone
Downloads
- P0 pre-execution →
-
released this
2026-10-10 23:14:08 +00:00 | 0 commits to main since this releaseSummary
coreci-broker v0.2.2: the broker packaged as a self-contained CLI zipapp artifact. coreci-broker-v0.2.2.pyz is built by scripts/build_cli.py with a deterministic normalization pass - the same sources rebuild byte-identical on the same environment, so the digest below is meaningful across rebuilds.
Requirements
REQ-22: from the first CLI-building release onward, every gitea release attaches the built coreci-broker artifact alongside the existing source archive. The upload resolves the forge token only via the sanctioned .env* files (never the process environment), asserted non-empty before the first API call.
Verification
The artifact sha256 in the CLI section below is computed from the attached file itself (G-017 - never an argument, never hand-pasted). Re-run the cumulative suite on the tagged commit:
python3 -m unittest discover -s testsCLI install + usage
- Download coreci-broker-v0.2.2.pyz from this release's assets.
- Install: chmod +x coreci-broker-v0.2.2.pyz then ./coreci-broker-v0.2.2.pyz, or run it directly with python3 coreci-broker-v0.2.2.pyz (Python 3.11+).
- Check the build: ./coreci-broker-v0.2.2.pyz --version prints v0.2.2.
- The env contract (every BROKER_* variable) is documented in the README; state is anchored by BROKER_ENV_PATH - the .env file's directory is the state dir and relative paths stay CWD-relative.
- First boot prints BROKER_ADMIN_PASS=... exactly once and creates the .env, broker.db, and broker.audit.log state files with mode 0600; the printed admin pass is not shown again - store it.
Artifact sha256 (computed from the attached file):
sha256:8486d36209e77a5f5c3348f9072a04265e19b447ac274c8bbfdbc22c3d7a696a coreci-broker-v0.2.2.pyzDocker usage
docker pull git.coreci.dev/coreci/broker:v0.2.2
docker run -p 8765:8765 -v broker-state:/state git.coreci.dev/coreci/broker:v0.2.2
State lives on the /state volume (WORKDIR /state; the first boot generates the .env, broker.db, and broker.audit.log there) - mount a persistent volume or the admin pass and any registered apps are lost with the container.
Downloads
-
released this
2026-10-10 21:08:43 +00:00 | 2 commits to main since this releaseSummary
coreci-broker v0.2.1: the broker packaged as a self-contained CLI zipapp artifact. coreci-broker-v0.2.1.pyz is built by scripts/build_cli.py with a deterministic normalization pass - the same sources rebuild byte-identical on the same environment, so the digest below is meaningful across rebuilds.
Requirements
REQ-22: from the first CLI-building release onward, every gitea release attaches the built coreci-broker artifact alongside the existing source archive. The upload resolves the forge token only via the sanctioned .env* files (never the process environment), asserted non-empty before the first API call.
Verification
The artifact sha256 in the CLI section below is computed from the attached file itself (G-017 - never an argument, never hand-pasted). Re-run the cumulative suite on the tagged commit:
python3 -m unittest discover -s testsCLI install + usage
- Download coreci-broker-v0.2.1.pyz from this release's assets.
- Install: chmod +x coreci-broker-v0.2.1.pyz then ./coreci-broker-v0.2.1.pyz, or run it directly with python3 coreci-broker-v0.2.1.pyz (Python 3.11+).
- Check the build: ./coreci-broker-v0.2.1.pyz --version prints v0.2.1.
- The env contract (every BROKER_* variable) is documented in the README; state is anchored by BROKER_ENV_PATH - the .env file's directory is the state dir and relative paths stay CWD-relative.
- First boot prints BROKER_ADMIN_PASS=... exactly once and creates the .env, broker.db, and broker.audit.log state files with mode 0600; the printed admin pass is not shown again - store it.
Artifact sha256 (computed from the attached file):
sha256:401f0a4e673f0bf6eee6b6fee11442af52b5935121da867bd33e2109da9c18ab coreci-broker-v0.2.1.pyzDocker usage
docker pull git.coreci.dev/coreci/broker:v0.2.1
docker run -p 8765:8765 -v broker-state:/state git.coreci.dev/coreci/broker:v0.2.1
State lives on the /state volume (WORKDIR /state; the first boot generates the .env, broker.db, and broker.audit.log there) - mount a persistent volume or the admin pass and any registered apps are lost with the container.
Downloads
-
released this
2026-10-10 16:39:26 +00:00 | 4 commits to main since this releaseMilestone v0.2 — cli-packaging (pre-execution)
Phase 0 of milestone v0.2. Scope per owner directives: package the completed v0.1 broker as a CLI, attach it to every release with notes, and publish a docker container once per milestone as a gitea package.
Phase 0 deliverables
- REQ-21 CLI packaging (zipapp
coreci-broker.pyz, self-contained, boot parity) — validated - REQ-22 release assets attached with notes from v0.2.1 onward — validated (D-020)
- REQ-23 daemonless docker publish to
git.coreci.dev/coreci/broker(once per milestone) — validated (D-019) - Clarification decisions D-019..D-022 recorded (publish mechanism, attachment cadence, image tags, base image)
- RESEARCH: zipapp mechanics, gitea release-asset API, OCI registry v2 pull/push — live-verified flows
- PLAN: 3 phases / 12 tasks / waves, MVP/UX sections present
- GRILL: GO-WITH-CONDITIONS — 13 bindings G-009..G-021 applied to the plan
- PERSONAS: release-engineer (custom) owns all v0.2 code; broker frozen
Verification
- v0.1 cumulative suite: 295 tests green (1 skip: bcrypt not installed locally — scrypt path)
- Broker zero-delta:
coreci_broker.pyunchanged at 1390/1400 lines (AC14)
Next
- P1 — CLI Packaging + Release Tooling (
v0.2.1): build pipeline + boot shim, packaged boot acceptance, release-asset automation
Note: this pre-execution release carries no CLI artifact — the
.pyzattachment begins withv0.2.1(D-020 / G-021).Downloads
- REQ-21 CLI packaging (zipapp
-
released this
2026-10-10 15:30:14 +00:00 | 5 commits to main since this releaseMilestone v0.1 coreci-broker — the complete Requirements Specification v0.5 implementation.
Milestone summary
CoreCI Broker: a single-file credential broker (stdlib-only Python 3.11, <1400 lines per owner decisions D-016..D-018) for autonomous agent tools on the Open WebUI host. Derived tokens (base64(sha256(pepper:UUID:user:agent:sorted_tags))), UI allowlists, append-only JSONL audit, path-scoped secret reads via a pluggable creds source (file | OWUI API), four-page admin UI, public zero-dependency client module, reference tools. Nothing deferred — REQ-01..REQ-20 all complete.
Phases
- P0 pre-execution → v0.1.0 (spec, D-001..D-015, research, 30-task plan, grill Proceed 0.85)
- P1 core skeleton → v0.1.1 (config/store/audit/hasher/token/router/mounts; 618 lines)
- P2 admin plane → v0.1.2 (session auth, allowlists CRUD, audit query, 4-page UI; AC1/2/3/9)
- P3 tool auth plane → v0.1.3 (register w/ pepper rule, App-auth scan+cache, state endpoints; AC4/7/8/10/12)
- P4 secrets + client ecosystem → v0.1.4 (creds adapter, scoped secrets endpoint, client module, reference tools; AC5/6)
- P5 final review + ship → v0.1.5 (AC1-AC14 matrix, security review PASS, README, remediation)
Verification
- 295 tests green (stdlib unittest; AC1-AC14 acceptance matrix pinned)
- Security: 3 P0s found+fixed across in-verify passes (static state-file disclosure CWE-552; full-secret-store static disclosure CWE-200; register-plane hardening), STRIDE/CWE reviews PASS at P3/P5
- Audit: reconstruction clean, 0 unresolved escalations, branch hygiene clean
- Owner approval recorded at the P5 gate (incl. line-cap chain ratification)
Deployment
See README: standalone (python3 coreci_broker.py) or OWUI workspace tool; first-boot admin pass discipline; post-ship live-OWUI smoke checklist (deployed v0.11.3) before migrating real tools; 90-day adoption criterion 2027-01-09 (proxmox tool on the client module).
Downloads
-
released this
2026-10-10 14:41:45 +00:00 | -2 commits to main since this releasePhase 4 (Secrets + Client Ecosystem — final execution phase) of milestone v0.1 coreci-broker.
Delivered
- Creds-source adapter: FileCredsSource (default data/creds.json, fresh reads) | OwuiApiCredsSource (KB→files→content, Bearer, cached, fail-closed toggle)
- GET /api/broker/secrets/: App-auth, scope path == coreci/<agent_id> (403), traversal defense (decode-before-validate, double/triple-encode safe), every attempt audited (ok/denied/error)
- Public client module coreci_broker_client.py (160 lines, stdlib-urllib only, zero deps): ensure-registered (idempotent), state get/put, 401→re-register→retry-once, data.get("pepper"), served unauthenticated at /static/
- Reference OWUI tools: proxmox §11 flow (register→persist→read, safe dry-run default) + minimal auth-then-use showcase + README
- P3 remediation batch: colon-collision class eliminated, 50-agent cap, cache eviction on overwrite, IntegrityError idempotent path, RecursionError→400, App-auth failures audited as denied
- P0 security fix (in-verify): default static root no longer serves data/creds.json (CWE-200) — protected set extended + regression tests
- 283 tests green; AC5/AC6 acceptance green; end-to-end: fetch client from /static/ → import → register → state → secret read
Requirements
REQ-07, REQ-08, REQ-19, REQ-20 — complete
Next
P5 final review + ship → v0.1.5 (milestone release)
Downloads
-
v0.1.3 — tool auth plane Stable
released this
2026-10-10 13:28:39 +00:00 | 0 commits to main since this releasePhase 3 (Tool Auth Plane) of milestone v0.1 coreci-broker.
Delivered
- POST /api/broker/agents/register: allowlist gates (403 unknown/revoked), idempotent re-derive (same token when unchanged+unexpired, overwrite on input change), pepper returned only on row-create or tokenless register (KB-loss recovery, D-005), TTL from BROKER_TOKEN_TTL
- App-auth: Authorization: App ; UUID-scoped slow-hash scan + in-memory verified-token cache (never authoritative; row existence+expiry re-checked on hit, D-004); revoked apps honored until TTL
- GET /api/broker/agents/: App-auth + identity match, metadata-only (D-015)
- Agent state GET/PUT with identity enforcement; BROKER_AGENT_STATE_BACKEND=internal (SQLite, in-place schema upgrade) | owui (stub-verified adapter)
- Security review PASS (STRIDE/CWE, 4x P2 routed to P4); P2 findings F-1/F-3 fixed + F-4 tests
- AC14 line cap extended to <1200 (D-017) then <1400 pre-P4 (D-018, final projected)
- 199 tests green; AC4/AC7/AC8/AC10/AC12 acceptance green
Requirements
REQ-02, REQ-04, REQ-09, REQ-10 — complete
Next
P4 secrets + client ecosystem → v0.1.4
Downloads
-
v0.1.2 — admin plane Stable
released this
2026-10-10 01:16:23 +00:00 | 2 commits to main since this releasePhase 2 (Admin Plane) of milestone v0.1 coreci-broker.
Delivered
- Admin session auth: login/logout/whoami, cookie broker_session (HttpOnly, SameSite=Lax), TTL default 300s, lazy expiry + boot cleanup; HTTP Basic accepted on all admin endpoints
- app_registrations CRUD (UUID validation, 409 duplicate, revoke-keeps-tokens, reinstate)
- user_allowlist CRUD (optional email, same semantics)
- Audit query: filters (since/until/user/uuid/action), limit clamp 100-1000, streaming line read, next_since cursor
- Four-page admin UI + dashboard + persistent nav (server-rendered, no build step): login, app_registrations, user_allowlist, read-only audit (no export)
- P1 verify findings remediated: 1MiB body cap, handler timeout, thread-safe store, env write fix
- AC14 line cap amended to <1000 (owner decision D-016)
- 149 tests green; AC1/AC2/AC3/AC9 acceptance green; verify: no P0, P1/P2 findings routed to P3
Requirements
REQ-01, REQ-05, REQ-06, REQ-12, REQ-13 — complete
Next
P3 tool auth plane → v0.1.3
Downloads
-
v0.1.1 — core skeleton Stable
released this
2026-10-10 00:00:26 +00:00 | 4 commits to main since this releasePhase 1 (Core Skeleton) of milestone v0.1 coreci-broker.
Delivered
- coreci_broker.py (618 lines, stdlib-only, AC14-enforced): .env config bootstrap + first-boot pepper/admin-pass generation (printed exactly once)
- SQLite store per spec §5.2 (5 tables + index) at mode 0600, umask-independent
- Append-only JSONL audit writer (9 verbs, fsync per write, 0600)
- Dual-mode bcrypt/scrypt hasher (format-prefixed, format-aware verification)
- Derived token engine: base64(sha256(pepper:UUID:user:agent:sorted_tags)) — 44-char, byte-exact
- ThreadingHTTPServer router + {"error,message} contract + traversal-rejecting static hook
- OWUI Tools mount (once-per-process guard) + standalone main
- 92 tests green; security fix: static hook no longer serves broker state files (CWE-552)
Requirements
REQ-03, REQ-11, REQ-14, REQ-15, REQ-16, REQ-17, REQ-18 — complete
Next
P2 admin plane → v0.1.2
Downloads
-
v0.1.0 — pre-execution Stable
released this
2026-10-09 23:10:51 +00:00 | 6 commits to main since this releasePhase 0 (pre-execution) of milestone v0.1 coreci-broker.
Pre-execution artifacts
- Specification validated: REQ-01..REQ-20 (Requirements Specification v0.5 distilled; full scope, nothing deferred)
- Clarification: D-001..D-011 (init) + D-012..D-015 (residual defaults) — 15 binding decisions
- Research: environment constraints, OWUI Tools/KB surface (source-verified), spec defects and resolutions, testing harness
- Plan: 30 wave-ordered tasks across P1-P5, must-haves, MVP/UX sections
- Personas: backend (all phases), frontend (P2), security (P3/P5), data deactivated
- Grill: verdict Proceed (0.85), 8 binding decisions G-001..G-008, 0 open escalations
- MVP/UX gate: PASS
Next
P1 core skeleton → v0.1.1
Downloads