• v0.2.3 d3251edc07

    coreci-bot released this 2026-10-11 00:35:46 +00:00 | 2 commits to main since this release

    Milestone 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.1 carries the .pyz attached (this one included); token discipline: file-only .env* resolution, never shell env; bounded-retry → release_pending escalation 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

    1. Download coreci-broker-v0.2.3.pyz from this release's assets.
    2. chmod +x coreci-broker-v0.2.3.pyz then ./coreci-broker-v0.2.3.pyz, or python3 coreci-broker-v0.2.3.pyz (Python 3.11+).
    3. ./coreci-broker-v0.2.3.pyz --version prints v0.2.3.
    4. First boot prints BROKER_ADMIN_PASS=... exactly once and creates .env, broker.db, broker.audit.log (mode 0600) in the state dir (BROKER_ENV_PATH anchors it). Full env contract in the README.

    Artifact sha256 (computed from the attached file):

    sha256:d2cf0d74805e7f927a6690b0ed80652c80281b62ae40086bd41542e3dcfbac80  coreci-broker-v0.2.3.pyz
    

    Docker 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.3
    

    State lives on the /state volume — 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_pending events across the milestone
    Downloads
  • v0.2.2 b255cacc3e

    coreci-bot released this 2026-10-10 23:14:08 +00:00 | 0 commits to main since this release

    Summary

    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 tests
    

    CLI install + usage

    1. Download coreci-broker-v0.2.2.pyz from this release's assets.
    2. 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+).
    3. Check the build: ./coreci-broker-v0.2.2.pyz --version prints v0.2.2.
    4. 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.
    5. 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.pyz
    

    Docker 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
  • v0.2.1 8cf5cbde6d

    coreci-bot released this 2026-10-10 21:08:43 +00:00 | 2 commits to main since this release

    Summary

    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 tests
    

    CLI install + usage

    1. Download coreci-broker-v0.2.1.pyz from this release's assets.
    2. 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+).
    3. Check the build: ./coreci-broker-v0.2.1.pyz --version prints v0.2.1.
    4. 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.
    5. 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.pyz
    

    Docker 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
  • v0.2.0 60a9811ba4

    coreci-bot released this 2026-10-10 16:39:26 +00:00 | 4 commits to main since this release

    Milestone 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.py unchanged 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 .pyz attachment begins with v0.2.1 (D-020 / G-021).

    Downloads
  • v0.1.5 e650681755

    coreci-bot released this 2026-10-10 15:30:14 +00:00 | 5 commits to main since this release

    Milestone 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
  • v0.1.4 cd6892a5bd

    coreci-bot released this 2026-10-10 14:41:45 +00:00 | -2 commits to main since this release

    Phase 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 2de11e9724

    coreci-bot released this 2026-10-10 13:28:39 +00:00 | 0 commits to main since this release

    Phase 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 0b23fbc952

    coreci-bot released this 2026-10-10 01:16:23 +00:00 | 2 commits to main since this release

    Phase 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 8b92b23a3f

    coreci-bot released this 2026-10-10 00:00:26 +00:00 | 4 commits to main since this release

    Phase 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 547a7b812d

    coreci-bot released this 2026-10-09 23:10:51 +00:00 | 6 commits to main since this release

    Phase 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