Repository navigation
Description
Objective: prove a complete event chain before upgrading the context engine
This is an integration programme, not a new graph/database proposal. Begin with one real event chain from a GitHub finding through gitbot-fleet/Hypatia observations and ultimately a verified learning outcome. Keep VeriSimDB, VCL-UT, Odraz/JEG, residual-evidence and invariant-path independently useful. Do not force any of them to become Hypatia-only. No automation should increase repair confidence or authorise a merge from unverified external reports.
Observed as-built state (2026-10-30)
- Hypatia
lib/vcl/client.exroutes primarily to a flat-file FileExecutor, with remote executor for multi-URL sources; it does not currently demonstrate a fully integrated VeriSimDB/VCL-UT/JEG analysis path. - VeriSimDB
elixir-orchestration/lib/verisim/query/vclt_gate.exsupports an optionalVERISIM_VCLT_GATEbinary. Unconfigured returns:skip; proof discharge and mutations use other paths. This gate is a static admissibility check, not a factual attestation that a code change is good. - vcl-ut owns the proof-backed VCL admissibility semantics; the exact reachable L7–L10 source surface and residual obligations must be treated as observed/version-specific, never asserted from README badges alone.
- Odraz JEG is a pre-alpha independently useful claim/evidence mechanism. It is not deployed as Hypatia's generic graph service.
- #919 wants support-named gate verdicts. #971 wants a single KYAML-parsed workflow model. These are adjacent but do not block the initial outcome chain.
- PR #982 attempts replay-safe, postcondition-backed fleet ingestion. At inspected head
579e969c6343c9a4a312eae78bf2033754c61b93it had nine unresolved inline review threads (six Codex, three CodeRabbit), and redSecurity Status,Rust Dependency Audit,Rust License & Ban Check, andgovernance / Allowlist Preflight; it was returned to draft. Do not report it as complete or learning-verified. lib/cross_repo_learning.exon main still countsoutcome: "success"in local and transferred evidence without the stricter verification qualification. Repairing just OutcomeTracker is insufficient to close the overall feedback loop.
Event-chain trace (MVP; all steps must be inspectable)
- Source change: identify repo/ref, immutable commit SHA, relevant path/symbol and scan tool version. A path/line alone is not stable identity; use file/revision identity and reanchoring when available.
- Observed finding: structural scanner emits a reproducible observation and its evidence reference. Keep
asserted,inferred,observed,tested,contradicteddifferent; do not certify assertions because they were received. - Identity/relationship context: link affected symbol, transitive callers and previous version through existing VeriSimDB graph/temporal/provenance modalities; record modality/profile and missing witnesses explicitly. Vector results can nominate candidates, never establish identity or equivalence alone. Later seam, not a prerequisite for the MVP outcome chain.
- Admissibility: where operations need VCL-UT checking, record the actual certified level, input/schema digest, gate version and whether invoked/skipped/failed. A skipped gate is NOT a pass. Preserve verifier limitations. Later seam, not fabricated today.
- Judgement: record claimed effect, supporting and contradicting evidence IDs, policy version, qualification status and current-head context. JEG-like evidence model is an interchange concept, not a mandatory dependency on Odraz.
- Attempt: append an identifiable
attempt_idwith stable producer identity and source event provenance before execution. Do not use a hash of the JSON contents as an attempt ID: separate attempts can have identical content. Avoid host-specific absolute paths and credentials. - Test/verification: record before/after predicates, test runner+toolchain, exit status, test/scan digests,
verified | incomplete | failed | unverified, independent failure/timeout cases. A zero exit code or neural self-assessment alone does not establish successful remediation. - Durable ingestion: use a stable event identity and idempotent destination write, detect corrupt and unreadable logs, retry transient reads/writes, prevent producer feedback echoes and duplicates after restart. Different attempts with identical payloads must remain distinct. Record causality (parent IDs) and timestamps as metadata, not as trust substitutes.
- Qualified learning and review verdict: Bayesian counts, annealing temperatures/stages, cross-repo transfer and dispatch decisions use the SAME verified-evidence qualification. Unsupported records may still count as auditable attempts, not successful fixes. Findings/approvals name exactly which evidence they depend on. If evidence is withdrawn, recompute/revise dependent verdicts (link Gate verdicts that name their support #919 and residual-evidence Revision).
- Receipt: emit a compact machine-readable chain with
head_sha,subject_id,event_id,parent_event_ids,source,provenance,assertion,observations,proof_or_test_ref,qualification,verdict,missing_evidence,chain_version. Final format must respect KYAML / I-JSON/JCS policy through their actual canonical tools, not introduce ad-hoc parsing or Python.
First implementation slice: close PR #982's epistemic leaks
Do not create a grand new data model before fixing the actual false-learning path.
- Fix all outstanding review findings in PR fix: stop replay and false success in fleet learning ingestion #982 with fixtures: local failed fixes must count as failures; unqualified results may appear in the audit log but not advance Bayesian confidence, annealing maturity or dispatch tier; unqualified-only attempts must persist as such.
- Handle missing/unreadable destination log, dropped append, changes during poll, and restart/replay. A failed persistence operation must not advance a source cursor/signature.
- Deduplicate the same actual event, not different attempts containing byte-identical JSON. Define an exact stable source identifier and prove how producer emits it or an equivalent source-location identity; event-ordering and crash-recovery tests are required.
- Prevent re-reading imported fleet outcomes as new local outcomes on the following scheduler tick.
- Audit and fix CrossRepoLearning's unqualified success counts/transfer and anomaly classification, in a separate targeted PR or explicitly linked follow-up, with negative tests. Otherwise higher-level confidence remains vulnerable.
- Run the pinned Elixir tests and an integration fixture across two polls + scheduler restart, synthetic identical-but-distinct attempts, missing/corrupt logs, retry-after-write-failure, red->green transition, and withdrawn evidence. Treat incomplete tool execution as BLOCKED.
- Resolve all app review threads substantively and inspect current-head CI, including the four red checks named above. Never bypass a rule to get green. Preserve Verified signature policy.
Acceptance evidence
Only claim E0 outcome chain verified when tests show:
- 1 verified event credits one outcome and one learning update across poll/restart/replay.
- 2 distinct attempts with identical outcomes credit twice if both verified, while replay of one event never credits twice.
- Exit-zero-only / absent verifier / contradictory evidence contributes zero positive learning and zero maturity increase.
- A true failed attempt lowers confidence appropriately; a failed write does not commit or acknowledge an event.
- Missing/unreadable/corrupted evidence causes a visible failure/unknown, never a silent success.
- Cross-repo consumers cannot re-introduce unqualified confidence.
- A resulting gate/learning receipt names its exact evidence and supports retraction/revision without erasing audit history.
Following E0 (not before): E1 parsed workflow identity with #971 and KYAML; E2 VeriSimDB graph/temporal/provenance identity and optional native-vector retrieval (reusing existing HNSW); E3 VCL-UT validation seam; E4 JEG-style support/contradiction exchange with Odraz-compatible semantics; E5 controlled neuro-symbolic synthesis. Each state must be separately demonstrated as source-existing / tested / integrated / operational. Never claim features are operational because their repos exist.
Boundaries
No new Python. No forced cloud vector DB, blockchain, login or mandatory new sandbox. No breaking changes to unrelated research repos. No unapproved fixes or automatic merges. Keep this scoped to event-source integrity and reproducible evidence before expanding to formal consonance. This is event-chain integration, not an architectural restart.
Activity
coderabbitai commentedon Oct 30, 2026
🔗 Related PRs
#982 - fix: stop replay and false success in fleet learning ingestion [open]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!
hyperpolymath commentedon Oct 31, 2026
E0 implementation checkpoint (2026-10-30/31 UTC)
Draft PR #982 (
fix/fleet-learning-evidence-20261030, most recently inspected heada25373bd5ea1fada02521b89421f621452436e3b) now changes the actual feedback boundary:veteranstates no longer automatically confer dispatch authority when all supporting logs lack verification fields. Added planted historical-veteran regression.event_id.failedstatus; batch rollback requests carry explicit negative provenance without claiming they executed a revert.mix test test/outcome_tracker_test.exs test/cross_repo_learning_test.exsto the pinned Elixir E2E job. On prior head31e240477c70b008ef251cd7c3d91ab808e1741f, this job ran 29 ExUnit tests with 0 failures (Actions run 41148628818, job 124379674626). Later commits are not covered by that outcome; current-head CI is still pending.Draft stacked PR #986 (
fix/e0-cross-repo-qualified-after-982, base = #982 branch) applies the same qualification function to local/transferred cross-repo confidence, transfer source eligibility, cached indexes and verified anomaly evidence, with planted negative tests. PR #985 was closed unmerged because it had incorrectly targetedmain, where the new qualification function was unavailable.Still owed (not E0-certified): current-head ExUnit, format, reviews and mandatory CI on both branches; replay/restart/incomplete-write end-to-end fixture; historical-data migration parity/performance on large logs; stable producer event IDs; all bot review conversations; verified signatures. Governance / Allowlist Preflight fails for five SHA-pinned
metadatastician/standardsreusable workflows not covered by the current allowlist, and Rust license/dependency security checks also fail. These must be diagnosed and repaired, not waived. No merge authorised.After this closes, proceed E1 KYAML source model (#971), not a newly invented vector database.
fix(E0): use the same verified-evidence gate for cross-repo learning …
hyperpolymath commentedon Nov 1, 2026
E0 post-merge audit — 2026-11-01 (BLOCKED, not acceptance)
Inspected
mainatf6f8864e772003a2ee66b18b3d8261a5484a6d2aand merged PRs #982/#986. Both ingestion and cross-repo qualification code are present; no new database or Python. The current-head E2E Elixir, Security, CodeQL and CICD Squabbler workflows pass, but this is not full E0 replay/restart acceptance.Specific code-level regression candidate:
lib/learning_scheduler.ex:517-575, localingest_new_outcomes/1, snapshots file size and advanceslast_outcome_positions[file]tosizeafter parsing withString.split("\\n", trim: true); undecodable lines are silently dropped. An incomplete final JSONL record can therefore be acknowledged, and an append containing only its suffix is read from that advanced offset on the next poll. Missing/unreadable local files are not surfaced as a blocking evidence condition. Contrast fleet import at lines 664-714, which explicitly rejects an incomplete final row without acknowledging the source signature. Validate with a two-poll append-in-progress fixture before fixing; then retain the offset of the last complete newline, quarantine complete malformed historical lines with traceable audit metadata, and retry incomplete tails without duplicate outcomes. Also test file truncation/rotation and restart.Current-head governance blocker: Governance run 41249464522 has failed
governance / Allowlist Preflight, job 124679746203. The log reports exactly two uncovered action refs:google/clusterfuzzlite/actions/build_fuzzers@v1andgoogle/clusterfuzzlite/actions/run_fuzzers@v1(45 references inspected). Review legitimate usage, action security and canonical allowed-actions policy; do not turn off the gate or add blanket wildcards. Separate Mirror run 41249464519 has host verification failures for Gitea, Disroot, SourceHut and a Bitbucket push failure; these should be triaged as operational integration issues, not misreported as learning-test failures.Outstanding proof obligations: executable pinned two-poll + restart tests for same-event deduplication, distinct identical attempts, partial tails, read/write/recipe-file failures, maturity reconstruction from old veteran states, and cross-repo non-qualification; inspect #982/#986 review thread resolution and actual signed-commit/merge rule status. Current unit tests cover many qualification cases but their test names do not establish the full restart integration contract. Until demonstrated, E0 remains BLOCKED. No merge, branch-rule waiver or dispatch authorisation proposed by this note.
hyperpolymath commentedon Nov 1, 2026
E0 critical-path repair issue created: #995 — local JSONL ingestion must not acknowledge incomplete records. Follow that with deterministic replay/restart fixtures, canonical I-JSON/JCS evidence/identity checks, then governance gates and an exact-head E0 receipt. This is an independent repair seam, not a request for a new database or Python.
fix(E0): local JSONL reader must not acknowledge incomplete records (#…
hyperpolymath commentedon Nov 4, 2026
Cross-repository execution evidence from the 2026-11-04 audit is now recorded in hyperpolymath/proven-cicd-and-workflows#77, with companion repairs hyperpolymath/proven-tests-and-benches#103, hyperpolymath/pons-asinorum#68 and hyperpolymath/panic-attack#257.
Both scanners were run with strict coverage on all four repositories. All eight runs returned exit 2 / partial coverage. These must enter E0–E5 as incomplete observations, never as clean scans or successful repairs. The suite gate now preserves this distinction, bounds execution and runs the second scanner even when the first refuses; 88 controls include the full 49-pair exit matrix and an actual timeout.
A concrete negative-label failure was reproduced: a Pons fixture assumed two Python property reads were stable. A changing property produces UnboundLocalError. PR #68 retains the original as a positive fixture and makes the negative snapshot once. A learned outcome must bind the source digest, fixture identity, execution result and review; changing a fixture label alone is not evidence of repair.
Requested integration acceptance: malformed report, unknown/partial coverage, repeated delivery, tool crash and absent checker cannot increase assurance; correlated Pons/panic observations retain their separate provenance and do not count as independent proofs. This audit did not execute Hypatia's neural/symbolic system, so it is feedback for its conformance corpus, not a claim of completed Hypatia verification.
fix(neural): qualify ESN training observations before learning (#1001)