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!104
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "program/m03-m08-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
Two parallel, independently reviewed workstreams, integrated into one feature branch for owner review. Baseline
PROGRAM_BASE_SHA=e4391dfcfcd82e3463624f132ccf26d73e1a5051(canonicaldevelopat wave start, including merged #103 / D-047). Nothing is merged todevelopby this PR; it is left open for human review.Workstream A — #88 / M03: OpenAI-compatible gateway and execution coordinator (full implementation)
e03d3cc6106fb2ef4e9028ba7a91c4bd414e5d5aonm03/gateway-coordinator(6 commits). Review iterations: 2 (round 1CHANGES_REQUESTEDwith 3 blockers — chunkless-stream client hang, deadlimits=Nonesafe default, one D-045 doc contradiction; all remediated ine03d3cc; round 2APPROVEwith no findings).gateway_validation.py,gateway_contracts.py(execution surface v1, D-045;GatewayLimitssafe defaults, D-044; closed OpenAI-style error vocabulary; SHA-256 client-key directory),gateway_audit.py(exact D-043 audit field set, content-free, count+age bounded,AuditSinkseam),gateway_adapters.py(ExecutionAdapterdispatch seam + typed permanent/ambiguous/timeout failures for future M04/M05/M06),gateway_openai.py(strict closed-allowlist chat/completions parsing, capability inference, fail-closed),gateway_coordinator.py(admission via M02route_request/admit_pinned_targetexactly once, bounded concurrency reservation, single dispatch with no cross-target reroute or blind retry, disconnect cancellation, deadline, honest multi-call usage accounting),gateway_server.py(distinct authenticated execution server,python -m scarcity_router.gateway_server, default loopback:8787; bearer auth vs hashed keys file, refuses unconfigured start, TLS required off-loopback, router-loopX-Scarcity-Router-Gatewayrejection, SSE with chunkless-stream synthesis).sr-pin:<resource>/<provider>/<model>/<variant>[@decision]→PinnedTarget→admit_pinned_target; no variant reconstruction,pinned_model_not_boundis a typed rejection,modelfield resolves only via routing-profile alias (existing requirement model, D-042 — no second scoring system).server.py(frozen loopback REST v1) byte-identical to baseline. No persistence introduced — in-memory state +AuditSinkseam (D-041 in-memory allowance; SQLite-class store deferred to M09 if needed).docs/execution-surface.md(additive execution-surface v1 contract). README gateway paragraph refreshed./v1/responses;n>1,logprobs/logit_bias, multimodal content parts; real adapters (M04/M05/M06 — the shipped registry starts empty and answers honestly); administrator key-issuance/rotation UX + durable store (M09); execution-resource collector wiring (M04/M09); representative OpenAI-SDK/IDE client acceptance and dated backend capability-matrix evidence (explicit #88 evidence items, owned by M10).Workstream B — #93 / M08: MCP, REST, CLI compatibility; optional remote mode (full implementation)
521f961670a93acc901cbd558c4e246ac2630998onm08/interfaces-compat(3 commits). Review iterations: 1 (APPROVE, no blockers).tests/test_interfaces_guardrails.py(40 tests): the consolidated guardrail suite locking frozen v1 semantics — exact REST route set (execution paths 404 on the loopback adapter), exact 3 MCP tools, loopback-only non-configurable binding, liveness-only/healthz, envelope/schema-version separation (machine-interface 1 / capacity 3 / eligibility 1), closed error vocabulary with frozen status mapping, strict JSON parsing, missing-vs-nullsemantics, requirement-source XOR, freshness semantics, and four-waydirect == CLI == REST == MCPparity extended to gateway-era D-039 eligibility fields. Runnable standalone via the newmake guardrailsgate.scarcity_router/remote.py(+ typedRemoteBridgeErrorinerrors.py): the optional remote-mode bridge client — explicit configuration, explicit failure, zero silent local fallback (client structurally holds no collectors/artifacts/policy); verified TLS for every non-loopback origin with no bypass option, plain HTTP only for explicit loopback origins, redirects never followed, bearer key header-only/never logged/redacted repr, machine-interface v1 envelopes end-to-end.docs/architecture.mdsection): authenticated control endpointsGET /v1/status,POST /v1/select,POST /v1/simulate+ Bearer client identity. Reconciliation is confined to three endpoint constants + envelope validation + the test stub.server.py,machine_api.py,mcp.py,cli.py.Integration
e278cb1— two--no-ffmerge commits preserving logical task history. Zero conflicts; zero manual resolution (branches were file-disjoint); the integration auditor proved both task file sets are byte-identical to their approved heads in the merge result, so no task re-review was required.PinnedTargetvariant survives every boundary verbatim; no hidden rerouting/fallback anywhere; no M04/M05/M06 adapter leaked (registry ships empty); ZCode closed per D-047; Z.ai deferred to M04; security postures coherent (same TLS rule from both sides); docs tell one story).e278cb1(run by integrator and independently re-run by the auditor):uv sync --only-dev✅ ·make check✅ 1318 tests OK (1183 baseline + 95 M03 + 40 M08) ·uv run basedpyright✅ 0 errors / 0 warnings / 0 notes ·git diff --check✅ ·make package-check✅ ·make guardrails✅ 40/40. No test depends on live inference, provider credentials, personal subscriptions, private infrastructure or paid services — all fixtures are synthetic.Explicit confirmations
develop;mainuntouched; no tags or releases.docs/decisions.md— none was needed (no conflict arose).Refs: #88, #93 (program root #85).