No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
P1
P2
P3
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Creatidy/scarcity-router!105
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "program/m04-m05-m09-parallel"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Three parallel, independently reviewed workstreams, integrated into one feature branch for owner review. Baseline
PROGRAM_BASE_SHA=35ef2754f46dd8d6c7ef438b88c2135b791b8dcb(canonicaldevelopat wave start, including merged #104 / M03+M08). Nothing is merged todevelopby this PR; it is left open for human review.Workstream A — #89 / M04: Generic OpenAI-compatible HTTP adapter and Ollama integration (full implementation)
f77d370d95835fbeb6ad669a3c78eefae63e6a5fonm04/http-ollama(9 commits). Review iterations: 2 (round 1CHANGES_REQUESTED— one blocker: a ~12%-flake cancellation test / missing post-loop cancel check; fixed adapter-side with a 30/30 determinism proof plus four DEFER hardenings; round 2APPROVEwith the reviewer independently re-deriving the interleaving analysis).OpenAICompatibleHttpAdapter,server_direct_httpchannel) + import-clean wire translation core (openai_http_core.py) + six evidence-based presets (OpenAI API, DeepSeek, OpenRouter, Z.ai Coding Plan, Ollama, generic) with dated (2026-09-20) compatibility-matrix evidence per cell; unevidenced facts are PARTIAL/UNKNOWN and fail closed; unevidenced request parameters are explicitly refused before any byte is sent.ProviderOrigin/ProviderCredentialonly (never client content), verified TLS with no bypass, plain HTTP loopback-only, redirects refused with exactly-one-request behavior,X-Scarcity-Router-Gatewaystamped outbound and marker-bearing responses refused (router→router forbidden), bounded bodies/streams under the dispatch deadline, typed permanent/ambiguous/timeout classification, honest usage (never fabricated), redacted diagnostics./api/tags) and quota-free health (/api/version); the shared translation core is the single Ollama semantic implementation for the worker-bridged path. API-only operation proven end-to-end through the real M03 coordinator with no worker.stream_options/coding-endpoint reasoning parity remain PARTIAL pending vendor evidence; catalog provider-vocabulary extension (deepseek/ollama/openrouter as calibrated providers) is an explicit owner decision when those models enter the catalog.Workstream B — #90 / M05: Native worker, pairing, and execution transport (full implementation)
4f9e4fbb2bf14178b584550b78981f30da35a02bonm05/native-worker(13 commits). Review iterations: 3 (round 1CHANGES_REQUESTED— two reproduced blockers: per-process identity-store salt that bricked all paired workers on restart, and a pre-auth JSON depth bomb leaking session rows; both fixed with reopen/depth-bomb tests, plus a missing listener test added. Round 2CHANGES_REQUESTED— the depth-bomb fix was incomplete: the pre-auth listener path still wedged via guarded session-row release; completed with an unconditional release + mutation-verified regression test. Narrow final verificationAPPROVEwith independent falsification control).docs/worker-protocol.md), version negotiation failing closed, 8+8 closed message vocabulary, 12-code error vocabulary, server-advertised heartbeat, bounded capped-exponential backoff (auth/version/revocation failures stop, never retry).(request_id, attempt_id), session death resolves attemptsinterrupted→AdapterAmbiguousError→ambiguous_execution_state+failed_ambiguousaudit through the real M03 coordinator; worker reportsattempt_interruptedfirst on reconnect; late results answeredattempt_unknown; duplicate attempt ids refused pre-send. Pinned end-to-end (execute count always 1).Workstream C — #94 / M09: Configuration, web UX, and diagnostics (full implementation)
9186c5d1850d2387fbb903e1b06f8a858b376640onm09/config-web-diagnostics(6 commits). Review iterations: 1 (APPROVE, no blockers; 9 DEFER hardening notes recorded for the owner — pairing-code entropy + redeem rate limiting [naturally M10], expired-session pruning, doctor migrate-on-read side effect, credential-write ordering, one decorative test, HEAD-body wart, fixture XDG hygiene, D-048 typo).GET /v1/status,POST /v1/select,POST /v1/simulate, bearer client-key — the exact M08 remote-bridge seam) +/control/**admin API (session + CSRF) + zero-dependency server-rendered UI on one listener (D-045 coexistence); frozen loopback REST v1 untouched.diagnostics.pypowers the UI and the additivedoctorCLI (D-016 realized); detected/authenticated/protocol-compatible/available/eligible/promotion-confirmed ladder; quota-free checks; generation test requires explicit confirmation and is unavailable by default. Exports secret-free by construction. D-048 records the UI-stack/store/secret-storage decisions.Integration (
program/m04-m05-m09-parallel@9f960092d431d269fdcaa20a20d84fdcc3f0ef4c)--no-fftask merges preserving full provenance; one textual conflict (duplicateExecutionAdapterimport from identical M04/M05 fixture widening — trivial). Semantic reconciliations (commits97ebb5f,66a1bf1,b1e4aa3,eaa3987,978673d,9f96009+ fixture fix88a2b0b):WorkerIdentityStore/WorkerAdminService/WorkerEndpoint) are now the sole system — control API/UI delegate to it, the HTTP redeem endpoint and M09's worker tables are retired via tested schema-v2 migration (v1 hashes genuinely non-convertible: unsalted SHA-256 vs per-store pepper; unrelated data proven intact). Conflict recorded as decision D-049.LoopbackOllamaAdapteris backed by M04's core on theollamapreset. Post-reconciliation review caught (and a completion fix at9f96009closed, independently verified with adversarial reproductions) a streaming-path RecursionError regression in the adaptation layer; M04's approved modules remain byte-identical.server_composition.pybuilds the M04/M05 adapters from administrator configuration (fail-closed validation before persistence; credentials only via the dispatch-only store reader);control_serveroptionally attaches the TLS worker listener (off by default); default deployment stays honestly empty.CHANGES_REQUESTEDon the reconciliation (the blocker above + 5 DEFERs) → completion fix → narrow final verificationAPPROVE.AUDIT_PASS— all 22 contract points PASS (2 non-blocking notes: an entrypoint docstring wording nit; docs issue-reference form consistent with baseline convention). Auditor independently re-ran the gate twice and ran 33 empirical probe checks against the real composed server and a real TCP worker listener (unauthenticated probes 401, end-to-end pinned dispatch with store-held credentials, redirect refusal with zero followed requests, pairing/reuse/revocation over real TCP, duplicate-attempt refusal, no redispatch surface).Combined validation on
9f960092(integrator-run, matching the auditor's and verifier's independent runs)uv sync --only-dev✅ ·make check✅ 1658 tests OK (1318 baseline + 82 M04 + 122 M05 + 101 M09 + 24 integration + 11 remediation) ·uv run basedpyright✅ 0 errors / 0 warnings / 0 notes ·git diff --check✅ ·make package-check✅ ·make guardrails✅ 40/40. Full suite run twice at final head (no flakes). No test requires paid inference, real provider credentials, personal subscriptions or private Creatidy infrastructure — all fixtures synthetic with conspicuous fake secrets. Frozen surfaces (server.py,machine_api.py,mcp.py, and M04's five approved modules) verified byte-identical.Explicit confirmations
develop;mainuntouched; no tags or releases.package-checkstill covers exactly the three existing console scripts).Downstream deferrals (owner-scheduled)
worker_bridgedresource id; worker-side allowlist and admin-trust bound the exposure); automaticenforce_liveness()wiring in the production composition loop.stream_options/reasoning parity, per-deployment Ollama version capture.Refs: #89, #90, #94 (program root #85).
MERGE_BLOCKER 1 (review 1): the pepper salt was per-process (secrets.token_bytes never written to disk), so every server restart invalidated every stored credential hash (pairing broke with 'unauthorized') and voided all outstanding admin-issued pairing codes ('pairing_code_invalid'). The salt is now created once on first init, persisted in store_meta beside the schema version, read back on every load, and verified (hex/length); a corrupt salt row fails closed instead of silently re-peppering. Also removes the dead _replace_credential_hash helper and makes close() idempotent. Tests: reopen (create -> close -> reopen same path -> authenticate succeeds, outstanding code still redeems, still hashes-only at rest) and corrupt-salt fail-closed.