2eb3227ad0ec57fb259d12f754a183dfafb94de2
12
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
308bbb74b7 |
feat(event-driven): final integration seam — state ownership, orphan recovery, CLI contract, daemon governance, task binding
§2/§3 state ownership: register_process_wait resume_mode ('fifo' default
preserves T15; 'self' = waiter owns continuation via completion-file
inotify, NO resume_cmd). ci_event_wait registers self-mode and stamps
durable terminal operation state (COMPLETED/FAILED + authority evidence)
before the envelope — a dead session can no longer downgrade operation
truth. Daemon drive skips resume_cmd-less waits; resume() re-reads and
never touches terminal records.
§4 orphan sweep: bounded periodic reconciliation of RESUMING waits past
ORPHAN_GRACE_SECS (failure detection, not scheduling) — truthful
RESUME_UNVERIFIED/READY_TO_RETRY + lease release; deterministic tests.
§5 CLI contract: ci_event_wait parses strictly; --watchdog supported;
unknown flags exit 2 loudly. No silent argument loss.
§6 governance: canonical daemon source IN REPO (bridge/daemon/);
scripts/install_wr_daemon.py installs atomically + verifies sha256
convergence (--check/--restart). One implementation, one deploy path.
§9 task binding: --task-id through cli/tool; task-bound resolution scopes
pending operations; stored operation wins over model hints; fresh
explicit-id operations normalize provisionally (ghost shas refused).
tests/test_real_async_integration.py: 10 frozen tests. Full suite 2196/0.
|
||
|
|
f90695197d |
fix(event-driven): durable-event + wait-record recheck on every cycle + H-matrix tests
CI Pipeline / best-practices (push) Successful in 14s
CI Pipeline / documentation (push) Successful in 4s
CI Pipeline / canary (push) Successful in 41s
CI Pipeline / lint (push) Successful in 52s
Auto-version and Release / release (push) Successful in 57s
CI Pipeline / gitea-offline (push) Successful in 16s
CI Pipeline / unit-tests (push) Failing after 2m50s
deploy / deploy (push) Failing after 15s
CI Pipeline / type-check (push) Successful in 37s
CI Pipeline / required-checks (push) Failing after 4s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 13s
- Every cycle checks: wr status (daemon may transition to COMPLETED), durable event log (find_matching_event), completion file (inotify) - Removed debug print, relaxed test timing for inotify+disk I/O path - All 11 ci_event_wait + 32 other wait tests green |
||
|
|
4b54451444 |
fix(event-driven): resolve short SHAs to full 40-char before authority read — 12-char prefix silently failed _fetch_runs equality (962e351 root cause)
CI Pipeline / best-practices (pull_request) Successful in 10s
Auto-label / auto-label (pull_request) Successful in 4s
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / documentation (pull_request) Successful in 5s
CI Pipeline / canary (pull_request) Successful in 36s
CI Pipeline / gitea-offline (pull_request) Successful in 17s
CI Pipeline / type-check (pull_request) Successful in 37s
Spec gate (headless) / spec-gate (pull_request) Successful in 19s
CI Pipeline / lint (pull_request) Successful in 51s
CI Pipeline / unit-tests (pull_request) Successful in 4m1s
CI Pipeline / required-checks (pull_request) Successful in 2s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 4s
deploy / deploy (push) Skipped
CI Pipeline / best-practices (push) Successful in 3s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / lint (push) Failing after 38s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / canary (push) Failing after 43s
CI Pipeline / type-check (push) Successful in 40s
CI Pipeline / unit-tests (push) Failing after 4m32s
CI Pipeline / required-checks (push) Failing after 10s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 8s
|
||
|
|
09cd18ad54 |
fix(event-driven): orphaned-lease release + durable-event recheck on re-arm + paginated runs fetch (all pages) + behavioral deadline tests
CI Pipeline / best-practices (push) Successful in 9s
CI Pipeline / documentation (push) Successful in 6s
CI Pipeline / lint (push) Failing after 33s
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / canary (push) Successful in 35s
CI Pipeline / type-check (push) Successful in 28s
CI Pipeline / gitea-offline (push) Successful in 18s
Auto-label / auto-label (pull_request) Successful in 6s
CI Pipeline / best-practices (pull_request) Successful in 10s
CI Pipeline / documentation (pull_request) Successful in 9s
CI Pipeline / canary (pull_request) Successful in 37s
CI Pipeline / gitea-offline (pull_request) Successful in 18s
CI Pipeline / type-check (pull_request) Successful in 33s
deploy / deploy (push) Skipped
CI Pipeline / lint (pull_request) Failing after 45s
CI Pipeline / unit-tests (push) Successful in 3m56s
CI Pipeline / required-checks (push) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 5s
CI Pipeline / unit-tests (pull_request) Successful in 4m0s
CI Pipeline / required-checks (pull_request) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 5s
ROOT CAUSE (Defect A, |
||
|
|
81c6d1f9c6 |
fix(hardening): operation-identity authority — explicit sha end-to-end, paginated runs fetch, model-sha-as-hint
CI Pipeline / best-practices (push) Successful in 8s
CI Pipeline / documentation (push) Successful in 4s
CI Pipeline / canary (push) Successful in 32s
CI Pipeline / lint (push) Successful in 42s
CI Pipeline / type-check (push) Successful in 30s
deploy / deploy (push) Skipped
CI Pipeline / gitea-offline (push) Successful in 21s
Auto-label / auto-label (pull_request) Successful in 23s
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / documentation (pull_request) Successful in 6s
CI Pipeline / canary (pull_request) Successful in 36s
CI Pipeline / type-check (pull_request) Successful in 27s
CI Pipeline / gitea-offline (pull_request) Successful in 22s
Spec gate (headless) / spec-gate (pull_request) Successful in 18s
CI Pipeline / best-practices (pull_request) Successful in 7s
CI Pipeline / lint (pull_request) Successful in 40s
CI Pipeline / unit-tests (push) Successful in 3m22s
CI Pipeline / required-checks (push) Successful in 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 5s
CI Pipeline / unit-tests (pull_request) Successful in 3m22s
CI Pipeline / required-checks (pull_request) Successful in 1s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 5s
Auto-version and Release / release (pull_request) Successful in 39s
Defect A root cause: Gitea runs-list page flood (scheduled merge-robot runs push relevant SHAs past the limit=50 first page) + collect-only- first-page pagination -> terminal commit read as pending -> parked until deadline. FIX: _fetch_runs paginates up to 4 pages collecting all matches before verdict. Defect B root cause: authority_verdict spawned deploy_qualify reading DEPLOY_SHA from ambient env. FIX: explicit --sha arg (env masked when sha is explicit); _ci_runs_verdict/op_ci_alive take sha as parameter only; no env read remains in the authority path. Defect C root cause: model sha treated as lookup key — a typo derived a ghost operation. FIX: model sha is a HINT; unresolved sha + single pending op -> stored target used with model_sha_mismatch logged; bound op always wins over hints. deploy_qualify gained --sha flag (env kept for workflow backward-compat only). Tests: H-matrix (identity, prefix collision, env staleness, monotonicity, aggregator lag, operation-id-first) + full 2179 suite. |
||
|
|
50a63e587f |
fix(event-driven): authority resilience — commit-status 404 fallback to runs-based verdict
CI Pipeline / best-practices (push) Successful in 9s
CI Pipeline / documentation (push) Successful in 6s
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / canary (push) Successful in 30s
CI Pipeline / lint (push) Failing after 34s
deploy / deploy (push) Skipped
Auto-label / auto-label (pull_request) Successful in 4s
CI Pipeline / type-check (push) Successful in 30s
CI Pipeline / gitea-offline (push) Successful in 15s
CI Pipeline / lint (pull_request) Failing after 29s
CI Pipeline / best-practices (pull_request) Successful in 7s
CI Pipeline / canary (pull_request) Successful in 30s
CI Pipeline / documentation (pull_request) Successful in 7s
CI Pipeline / gitea-offline (pull_request) Successful in 17s
CI Pipeline / type-check (pull_request) Successful in 31s
CI Pipeline / unit-tests (push) Successful in 3m22s
CI Pipeline / required-checks (push) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 4s
CI Pipeline / unit-tests (pull_request) Successful in 3m23s
CI Pipeline / required-checks (pull_request) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 6s
Spec gate (headless) / spec-gate (pull_request) Failing after 11m33s
Gitea's combined commit-status endpoint can 404 for the newest commit (observed live on auto-version bump commits: status object materializes late). When deploy_qualify returns pending AND the status endpoint is unreadable, fall back to the operation-scoped Actions-runs verdict (same evidence the two legs read). Also export DEPLOY_SHA in run() for python callers. Found via E10 fresh-process proof. |
||
|
|
2ebd9da139 |
feat(event-driven): structured-state routing + event-triggered cognition
CI Pipeline / best-practices (push) Successful in 11s
CI Pipeline / documentation (push) Successful in 5s
CI Pipeline / canary (push) Successful in 35s
deploy / deploy (push) Skipped
CI Pipeline / lint (push) Successful in 45s
CI Pipeline / gitea-offline (push) Successful in 18s
Auto-label / auto-label (pull_request) Successful in 8s
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / lint (pull_request) Successful in 44s
CI Pipeline / gitea-offline (pull_request) Successful in 17s
CI Pipeline / type-check (pull_request) Successful in 29s
Spec gate (headless) / spec-gate (pull_request) Successful in 23s
CI Pipeline / type-check (push) Successful in 30s
CI Pipeline / best-practices (pull_request) Successful in 8s
CI Pipeline / unit-tests (push) Successful in 3m26s
CI Pipeline / documentation (pull_request) Successful in 6s
CI Pipeline / canary (pull_request) Successful in 32s
CI Pipeline / required-checks (push) Successful in 2s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 9s
CI Pipeline / unit-tests (pull_request) Successful in 3m27s
CI Pipeline / required-checks (pull_request) Successful in 1s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 7s
Auto-version and Release / release (pull_request) Failing after 1m5s
- PendingOperation = durable continuation object: continuation_state (ACTIVE_REASONING/WAITING_EXTERNAL/RESUMABLE/RECOVERY_REQUIRED), canonical op_type/authority, task_id — parked cognition is a first-class durable state a fresh process can read - ci_event_wait stamps cognitive-state transitions (WAITING_EXTERNAL on park, RESUMABLE/RECOVERY_REQUIRED on terminal) - DEPLOY_SHA export fix: CLI/python run() consumers previously got a silent 'pending' authority verdict forever — the authority subprocess never received the sha (found via E10 fresh-process proof) - await_intent_cli route-bash: Bash commands expressing external wait intent compile to the canonical continuation (new bash.ts harness tool routes through it); plain local sleeps execute normally - tests/test_await_intent.py: E-matrix (derivation truth table, provenance order, observability) |
||
|
|
f7256aa29e |
fix(t21.5): pending-class verdicts and not-started operations re-arm internally — residual nonterminal-return generator closed (§18 audit)
CI Pipeline / best-practices (push) Successful in 11s
CI Pipeline / documentation (push) Successful in 7s
CI Pipeline / lint (push) Failing after 33s
CI Pipeline / canary (push) Successful in 34s
Auto-label / auto-label (pull_request) Successful in 6s
deploy / deploy (push) Skipped
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / type-check (push) Successful in 29s
CI Pipeline / lint (pull_request) Failing after 32s
CI Pipeline / best-practices (pull_request) Successful in 6s
CI Pipeline / documentation (pull_request) Successful in 4s
CI Pipeline / type-check (pull_request) Successful in 29s
Spec gate (headless) / spec-gate (pull_request) Successful in 23s
CI Pipeline / gitea-offline (push) Successful in 24s
CI Pipeline / canary (pull_request) Successful in 30s
CI Pipeline / gitea-offline (pull_request) Successful in 17s
CI Pipeline / unit-tests (push) Successful in 3m23s
CI Pipeline / required-checks (push) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 14s
CI Pipeline / unit-tests (pull_request) Successful in 3m29s
CI Pipeline / required-checks (pull_request) Failing after 3s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 8s
|
||
|
|
f64ee95aad |
feat(t21.5): root-cause continuation + guard retirement + V1 parity
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / best-practices (push) Successful in 27s
Auto-label / auto-label (pull_request) Successful in 7s
CI Pipeline / documentation (push) Successful in 9s
CI Pipeline / canary (push) Successful in 54s
CI Pipeline / lint (push) Successful in 1m9s
CI Pipeline / type-check (push) Failing after 38s
CI Pipeline / gitea-offline (push) Successful in 28s
CI Pipeline / best-practices (pull_request) Successful in 17s
CI Pipeline / documentation (pull_request) Successful in 12s
CI Pipeline / canary (pull_request) Successful in 47s
CI Pipeline / gitea-offline (pull_request) Successful in 33s
CI Pipeline / type-check (pull_request) Failing after 55s
deploy / deploy (push) Skipped
Spec gate (headless) / spec-gate (pull_request) Successful in 23s
CI Pipeline / unit-tests (push) Failing after 3m40s
CI Pipeline / required-checks (push) Failing after 9s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 19s
CI Pipeline / lint (pull_request) Successful in 1m4s
CI Pipeline / unit-tests (pull_request) Failing after 3m38s
CI Pipeline / required-checks (pull_request) Failing after 8s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 13s
- ci_event_wait: OPERATION_SPECS (op-specific completion authority: branch_ci/pull_request_checks -> own runs; master_ci/deploy/release -> deploy qualification); SINGLE LOGICAL AWAIT (all nonterminal conditions re-arm internally; model sees only terminal verdicts or real deadline) - await-operation tool: op_type parameter - runtime wait guard + cwd guard RETIRED (canonical hook = documented no-op; prevention lives in tests, not interception) - wr_root_resolver.py: ONE wait/resume root authority; split-brain fails loudly; start_wr_daemon.py resolves root once; governed reconciliation - construction_activation._auto_structural_awareness: PROJECT_BUILD bootstrap auto-registers Registry + spine manages edge (no manual bookkeeping); fixed latent dispatch_from_decision mode-object bug - research_memory_port.py: future-facing Memory port inside existing INWARD (provider contract, zero-result fast path, teachable-moment candidate seam; APPLICABILITY governs transfer) - v1_parity_manifest.py: 56 rows, 0 blocking mandatory-V1 items - G1-G12 gate evidence in store/scaffold/t21.5_gates.json |
||
|
|
edd6d06300 |
fix(t21.3): bridge permissions (a+rwX for runner user) + ci_event_wait token propagation note
CI Pipeline / best-practices (push) Successful in 13s
CI Pipeline / documentation (push) Successful in 6s
CI Pipeline / canary (push) Successful in 36s
CI Pipeline / lint (push) Failing after 36s
Auto-version and Release / release (push) Successful in 48s
CI Pipeline / type-check (push) Successful in 32s
CI Pipeline / gitea-offline (push) Successful in 20s
CI Pipeline / unit-tests (push) Failing after 2m58s
CI Pipeline / required-checks (push) Failing after 3s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 7s
deploy / deploy (push) Failing after 3m35s
|
||
|
|
b51afea0cb |
feat(reentry): durable event replay + drift-aware resume + 16O benchmark (T16 16C-fix/16O/16P)
CI Pipeline / best-practices (push) Successful in 10s
CI Pipeline / documentation (push) Successful in 6s
CI Pipeline / canary (push) Successful in 35s
Auto-version and Release / release (push) Successful in 39s
CI Pipeline / lint (push) Successful in 46s
CI Pipeline / type-check (push) Successful in 30s
CI Pipeline / gitea-offline (push) Successful in 17s
CI Pipeline / unit-tests (push) Successful in 2m49s
CI Pipeline / required-checks (push) Successful in 1s
deploy / deploy (push) Failing after 15m13s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 5s
- event_wait.find_matching_event(): replays matching completion events from the durable bridge event log at registration. Root-caused from TWO production cycles: on a serialized single-runner machine the CI wake always lands before/around deploy registration — a forward-only FIFO rendezvous can never deliver it (both cycles fell back to the 900s deadline, truthfully). The event log exists precisely for this; the wake is still never the verdict. - ci_event_wait: event_replayed mode short-circuits to the authority read; 2 new held-outs (9 total). - drift_resume.py (16P): claim-vs-observation reconciliation with EXPECTED/BENIGN/MATERIAL/CONFLICTING/UNKNOWN classes; MATERIAL/ CONFLICTING/UNKNOWN block dependent work; user-locked claims escalate to CONFLICTING (reality never silently overrides user-locked authority). Held-outs driven by the REAL 16O fixture: the VAT regression blocks resume; the checkpoint commit resumes clean. - 16O benchmark persisted (store/evidence/t16/16O_benchmark.md): honest result — on a tiny fixture cold and scaffold-assisted re-entry cost about the same (8 vs 9 files); the scaffold's advantage is drift classification, recorded next actions, and intent, not raw step count. No fabricated win. Suite 1884 green; ratchets PASS. |
||
|
|
e1a71efeb9 |
feat(ci): event-driven CI qualification wait over the existing W/R bridge (T16 16C/16D/16E)
CI Pipeline / best-practices (push) Successful in 9s
CI Pipeline / documentation (push) Successful in 6s
CI Pipeline / canary (push) Successful in 37s
CI Pipeline / lint (push) Successful in 46s
Auto-version and Release / release (push) Successful in 53s
deploy / deploy (push) Failing after 16s
CI Pipeline / unit-tests (push) Successful in 2m50s
CI Pipeline / gitea-offline (push) Successful in 15s
CI Pipeline / type-check (push) Successful in 26s
CI Pipeline / required-checks (push) Successful in 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 4s
- deploy.yml sleep-30 polling loop REPLACED: registers a gitea-identity PROCESS_EVENT wait, yields in select() on the FIFO, resumes on the ci.yml notify-event-bridge WAKE, then re-reads the canonical Gitea verdict (deploy_qualify.py). Event payload is never completion truth. - ci.yml gains notify-event-bridge (always(), best-effort): a red CI wakes the waiter as loudly as a green one; bridge unreachable -> watchdog recovery covers the lost wake. - event_wait.py: register_process_wait gains provider/event_type/sha identity (16E: ONE bridge primitive; builder + gitea are adapters); open_fifo_reader + caller-owned fifo_fd close the 16Y#10 race (event before waiter in select()); await_resume_event returns eof instead of busy-looping on a caller-owned fd. - ci_event_wait.py watchdog: failure DETECTOR only — liveness-gated re-arm, one-shot authority recovery on lost events, truthful failure when no verdict exists; timestamps emitted for the 16D latency proof. - tests: 8 held-outs on the REAL daemon (shared wr_daemon fixture in conftest — no duplicated helpers). Daemon-side: /process-event passes through provider/event_type/sha (defaults preserve T15); lease_path sanitizes slash-bearing session ids (resume delivery was impossible for them — found live, fixed in daemon snapshot 79434e0). Suite 1861 green; ratchets PASS; Henxels rc=0. |