Module 6: #[track_caller] error macros for zero-cost location capture - #2
Merged
Merged
Conversation
Add plan_err!, config_err!, exec_err! macros that use #[track_caller] + std::panic::Location for zero-cost call-site capture (Gate 4/7). Bridge design: macros call plan_err_at()/config_err_at()/exec_err_at() which convert std::panic::Location to snafu::Location. This gives ergonomic macros while maintaining compatibility with 148 existing snafu error creation sites across 18 files. - plan_err_at(), config_err_at(), exec_err_at(): #[track_caller] helpers - plan_err!, config_err!, exec_err!: format!() wrapper macros - 4 tests proving location capture works https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
AdaWorldAPI
pushed a commit
that referenced
this pull request
Mar 6, 2026
#1: RUSTYNUM IS MANDATORY — no hand-rolled numeric ops in lance_parser/ #2: NO SERDE_JSON ON THE HOT PATH — NodeParameterValue is not serde_json::Value, they are not convertible, the fix is never param_to_json() https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
AdaWorldAPI
pushed a commit
that referenced
this pull request
Apr 18, 2026
The 5th and foundational chess research direction: load the full historical record (5B Lichess games + 10M master games + Syzygy endgame tablebases) into our native encoding and make it queryable via Cypher with semantic similarity. Compression: 200B position-occurrences → ~325 GB on SSD after CAM-PQ palette compression + FEN deduplication. ChessBase needs 600 GB for 10M games; we carry 500× more in half the space. Three query classes impossible in any existing chess tool: - Semantic position similarity (palette distance is O(1)) - Multi-hop NARS confidence paths (truth propagation) - Human-intuition move mining (engine-dispreferred but winning) ~1400 lines of new code, ~10 days focused work. Most infrastructure already shipped (AriGraph, CausalEdge64, Cypher parser, BindSpace, PaletteSemiring). Recommended as Tier 0 substrate — every subsequent experiment (#2 style benchmark, #3 learning, #1 longitudinal) is measurably more credible with 5 billion games behind it. https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
AdaWorldAPI
pushed a commit
that referenced
this pull request
Apr 20, 2026
Addresses all 5 follow-ups from .claude/knowledge/cam-pq-unified-pipeline.md: #1 Wire register_cam_udfs in execute_with_context - CypherQuery::with_cam_codebook(codebook) builder method - execute_with_context auto-registers cam_distance + cam_heel_distance UDFs when codebook is set - One-line unblock for SQL/Cypher CAM-PQ queries #2 Migrate cam_pq_calibrate output to Lance schema - codebook_to_lance() in lance-graph/src/cam_pq/storage.rs - Converts (codebook, fingerprints) -> (vectors_batch, codebook_batch) - Arrow RecordBatches ready for Lance write; bridges bgz-tensor's raw calibration output to the canonical storage format #3 impl OrchestrationBridge for codec research (nd.* step-types) - codec_bridge.rs: CodecResearchBridge owns StepDomain::Ndarray - nd.tensors / nd.calibrate / nd.probe dispatch via codec_research - Parses args from step.reasoning as WireRequest JSON - Complements planner's lg.* bridge #4 Generic OrchestrationBridge routing endpoint - POST /v1/shader/route — accepts WireUnifiedStep JSON - Composed bridge: tries CodecResearchBridge first (nd.*), falls through to PlannerAwareness (lg.*) if DomainUnavailable - planner_bridge.rs preserved as typed convenience (rich responses) - Both patterns coexist: generic route + typed Wire DTOs #5 WireUnifiedStep + WireStepResult DTOs - Generic step envelope: {step_id, step_type, reasoning} - Generic result: {step_id, step_type, status, reasoning, confidence} - POST /v1/shader/route uses these; per-op endpoints stay for convenience with their richer typed responses All 5 follow-ups delivered in one commit. 46/46 shader-driver tests pass. lance-graph compiles clean. https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
This was referenced Apr 20, 2026
AdaWorldAPI
pushed a commit
that referenced
this pull request
Apr 25, 2026
This was referenced Apr 29, 2026
AdaWorldAPI
pushed a commit
that referenced
this pull request
Apr 29, 2026
…UDF hard-fail Closes two critical loose ends in the PR-F1 ColumnMaskRewriter UDF wrap: Loose End #1 (security hole): masked columns leaked through WHERE / JOIN / GROUP BY / aggregate nodes because the rewriter only walked top-level Projection. `SELECT MAX(ssn) FROM users WHERE ssn = '...'` would expose unmasked SSN values via the predicate and the aggregate. Fix: replace top-level Projection match with full-tree expression rewrite. Use `LogicalPlan::map_expressions` to dispatch to every node variant (Filter, Projection, Aggregate, Join, Sort) and `Expr::transform_down` to walk every nested expression. `TreeNodeRecursion::Jump` after a Column replacement prevents infinite descent into the freshly-built mask expression (relevant for Hash mode, which wraps the column in a ScalarFunction whose argument IS the original column). Loose End #2 (silent placeholder): RedactionMode::Hash returned `lit("***REDACTED***")` — if the real hash UDF was forgotten in a follow-up, every Hash-masked column would silently render as a string placeholder with no surface signal that policy is mis-wired. Fix: replace placeholder with reference to `policy_hash_v1`, an unregistered ScalarUDFImpl whose `invoke_with_args` returns `NotImplemented("policy_hash_v1 UDF not yet registered — see PR-F1b")`. Plans build (so call sites compose), execution fails loud — loud > silent. PR-F1b will replace the body with FNV-64 / SHA-256-truncated and register the UDF in the SessionContext. Failing-test-first: - `test_where_clause_does_not_leak_unmasked_column` builds `Projection(id) → Filter(ssn = '123-45-6789') → TableScan(users)`, runs the rewriter, asserts the Filter predicate references the mask literal and not bare `users.ssn`. Failed pre-fix on commit 88c0dc8 — Filter still showed `users.ssn = Utf8("123-45-6789")`. - `test_max_ssn_aggregate_is_masked` builds `Aggregate(MAX(ssn))`, asserts MAX argument is rewritten. Failed pre-fix — MAX(users.ssn) unchanged. - `test_hash_mode_binds_not_yet_wired_udf_not_silent_placeholder` asserts `policy_hash_v1` appears and `***REDACTED***` does not. Failed pre-fix — plan emitted Utf8("***REDACTED***"). All 3 fail on the existing skeleton, all 3 pass post-fix. Total lance-graph-callcenter --features auth-rls-lite test count: 70 passed (15 policy + 55 other), 0 failed. https://claude.ai/code/session_01NYGrxVopyszZYgLBxe4hgj
AdaWorldAPI
added a commit
that referenced
this pull request
Apr 30, 2026
…ring F1 (MySQL <-> SPO oracle parity) shipped via MedCareV2 PRs #1, #2, #3, medcare-rs PR #71, and lance-graph PR #309. The vision doc still claimed F1 was "the next concrete deliverable". Rewrite section 7 to: state F1 has shipped, describe the LanceProbe -> ParityWitness -> DriftSink flow, name the contract DTO (lance-graph-callcenter::transcode::parallelbetrieb::DriftEvent), list F1's known gaps (no latency claims; in-memory ring buffer), and state F2 RBAC+audit wiring (medcare-rs adopting RlsRewriter) as the next posture. No other sections touched.
3 tasks
AdaWorldAPI
added a commit
that referenced
this pull request
May 6, 2026
…ITICAL fixes required) Meta-1 review surfaces 10 findings; 2 CRITICAL fixes block Round 2 opening: CRITICAL #1: Doctor.Anamnese Full predicate-write violates BMV-Ä §57 append-only → fix: empty writable_predicates, keep only "append" action CRITICAL #2: Receptionist clinical-blind fails safety (no Identity-read for allergy/triage lookup before scheduling) → fix: merge Patient permission to Detail-depth + 3 demographic writes, add Identity-read on Diagnosis + LabResult HIGH #3-#4 (defer to Round 3 gate.rs): Diagnosis finalize/retract Escalate + Patient anonymize/merge/delete Escalate (GDPR Art.17 + §35 BDSG) MEDIUM #5-#8 (backlog): Missing entities (Termin, Recall, ePA) + audit trail hook LOW #9-#10 (backlog): PKV/GKV modulation + dynamic reason strings Round 2 implications surfaced for W5/W8. Round 3 implications surfaced for W9/W12 (Escalate wrapping + §73 SGB V test). Concrete diff for W3-revision-2 included at end of file. Next commit: W3-revision-2 applies the two CRITICAL fixes.
AdaWorldAPI
added a commit
that referenced
this pull request
May 6, 2026
…1 CRITICAL fix path) Meta-2 review surfaces 5 findings; 1 CRITICAL flagged for verification: CRITICAL #1: W7 hard-depends on StepDomain::MedCare which may not exist upstream → Recommended fix path: fetch lance-graph-contract/src/orchestration.rs to verify DomainProfile shape, then either confirm variant exists OR commit W7-revision-2 with inline-constructed DomainProfile fallback MEDIUM #2: MedCareStack empty struct doc-comment overclaims as "facade" → Doc-only fix; defer to next field-growth commit MEDIUM #3: Missing with_default_policies() builder → Backlog; lands when rls_registry field lands LOW #4-#5: Cross-crate test + dev-deps deferred Round 3 implications surfaced: - W9 imports list (medcare_rbac::{policy, role, access}) - W10 lib.rs gate re-export shape - W12 §73 SGB V tests must include BtM Escalate + Ueberweisung row visibility (Meta-1 carry-forward) Sprint orchestrator: verify upstream StepDomain::MedCare before committing W7-revision-2, OR apply fail-safe inline construction.
AdaWorldAPI
added a commit
that referenced
this pull request
May 6, 2026
…e (sprint closure) Meta-3 final review surfaces 5 findings; ZERO CRITICAL: HIGH #1: Action operations (Operation::Act) unreachable via gate → Doc note recommended; orchestration layer is the right home for action gating HIGH #2: BtM Escalate "v1 limitation" tests use loose is_allowed() assertions → Recommend tightening to explicit assert_eq!(AccessDecision::Allow) for clearer future test-failure messages MEDIUM #3: Three name paths for Policy (rbac, gate, lib) → Backlog; doc-only canonicalization MEDIUM #4: 20-200 ns gate decision claim unbenchmarked → Backlog; criterion-based gate-bench follow-up LOW #5: TD-MEMBRANE-FIRST-VS-ANY untested → Backlog; vacuous in v1 without divergence case Sprint-wide closure: - Round 1 (medcare-rbac): 26 tests, solid, 2 CRITICAL fixes applied - Round 2 (medcare-realtime skeleton): 5 tests, 1 CRITICAL casing+HIPAA fix - Round 3 (gate impl): 33 tests, 2 HIGH documentation gaps - Total: 64 tests across 3 crates VERDICT: Ship. POLICY-1 medcare-side seam CLOSED for v1. Topology I-1/I-2/I-3/I-4 upheld. PR #29 three TD caveats honestly carried forward.
AdaWorldAPI
added a commit
that referenced
this pull request
May 6, 2026
…closure 12 workers + 3 metas across 3 rounds, 4 CRITICAL fixes applied as inline revisions (W3-rev2, W4-rev2, W7-rev2). Meta-3 final verdict: SHIP. Total shipped: - medcare-rs: 14 commits, 13 files, ~1,865 LOC, 64 tests - lance-graph sprint-log: 21 commits (12 agent logs + 3 meta reviews + scaffolding + this synthesis) POLICY-1 / MEMBRANE-GATE-1 medcare-side seam: SHIPPED v1 - Mirror of smb-office-rs#29 with regulatory adaptations - Three TD caveats from PR #29 honestly carried forward - Topology I-1/I-2/I-3/I-4 invariants preserved Outstanding from Meta-3 (backlog): - HIGH #1: Action ops doc note (5 min) - HIGH #2: Tighten v1-limit assertions (10 min) - MEDIUM #3-#4: Policy name canonicalization + bench harness - LOW #5: TD-MEMBRANE-FIRST-VS-ANY test (vacuous in v1) Synthesis includes: - Findings summary (4 CRITICAL applied + 2 HIGH backlog) - Topology invariant preservation table - Upstream gaps surfaced (StepDomain verified, BMV-Ä retention, BtM Escalate) - Test posture per-crate - Recommended follow-up sprint scope (~half day) - What the cca2a pattern validated this run - Full branch state at sprint closure (commit lists for both repos) Ready for CI verification + PR to medcare-rs main.
This was referenced May 7, 2026
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 7, 2026
Closes the governance loop for the #352 → #353 → #354 sequence on the lance-graph side, plus the 5-PR cross-repo coordinated landing of 2026-05-07 (lance-graph #352/#353/#354, OGIT #2, woa-rs #2, MedCare-rs #109). PR_ARC_INVENTORY.md prepended with minimal #354 entry; lock notes: - Append-only board hygiene survived 4 sequential prepends (incl. prior splat-osint) without any past-entry mutation. Confidence-line-only mutability policy is durable. - Cross-repo coordinated landing pattern documented as a recipe: lance-graph plans → OGIT TTL → consumer integration → governance close-out. LATEST_STATE.md table prepended with #354 row; "Last updated" advanced. No new types, plans, or knowledge docs in this commit — pure governance. Not opening a new PR for THIS commit (would be recursive governance-on-governance unless explicitly requested). https://claude.ai/code/session_01WevBiZ3jzVocu8fBpTY8sq
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 16, 2026
…ix v1-temporal-corrupts-W3-Test-1 bug Codex review flagged two consistency gaps on PR #381 that would either produce uncompilable code or fail the regression suite for ordinary v1 data. Both addressed in this patch. W2 spec — pr-ce64-mb-2-causaledge64-v2.md - §9 Test Plan rewritten: removed test_g_slot_roundtrip, test_g_slot_max_no_w_contamination, and all g_slot()/with_g_slot()/ set_g_slot() assertions (no such API in v2 layout per L-3); with_routing signature corrected to (w: u8, t: TrustTexture); pack() signature corrected (no temporal arg per L-2); added test_inference_mantissa_signed_roundtrip, test_spare_isolation, test_mantissa_no_plasticity_contamination - §10 risk matrix: fixed "bits 46-48 are G slot bits" → bits 46-49 now hold 4b SIGNED mantissa, not G; not Option-C-conditional - §11 OQ-FORWARD-REFACTOR: same Option-C → Option-F correction W3 spec — pr-ce64-mb-2-pal8-nars-regression.md (CODEX P1 #2) - §3 Test 1 (pal8_v1_v2_round_trip_zero_default): root-cause fix — temporal=1023 in v1 sets bits 52-61 which v2 has reclaimed for W/lens/spare; under v2 decode those bits alias to non-zero W=63, truth=Murky. Test would FAIL on ordinary v1 data. Rewritten to use temporal=0 (the only safe binary-migration value) so byte-identical round-trip is provable. - §3 Test 1b (pal8_v1_nonzero_temporal_is_blocked_by_version_gate): NEW — proves the version gate is mandatory by asserting v1 temporal=1023 DOES produce non-zero W/truth under v2 (the failure mode) and that PAL8 v2 reader rejects the v1 blob with PalDecodeError::MissingVersionByte. - §3 Test 2 (pal8_v2_v2_round_trip_all_fields): dropped g_slot/ set_g_slot + temporal/set_temporal calls; rewrote isolation matrix to cover mantissa↔W↔truth↔spare (the four v2 reclaim-zone fields) - §3 Test 3 (pal8_round_trip_arbitrary, property test): same - §4 NarsTables Test 1: rewrote NarsEngine extraction claim (no temporal in v2; mantissa added); dropped set_g_slot(31); added set_spare(0b111) for full reclaim-zone isolation - §4 NarsTables Test 3 (nars_engine_to_from_causal_edge_isolates_new_fields): dropped g_slot references; added spare - §5 EdgeColumn test: dropped g_slot/temporal; added mantissa+spare - §8 W2-owned: corrected accessor list (inference_mantissa/w_slot/ truth/spare; no G_SHIFT) - §8 Agreement checklist: rewrote items 1-5 to Option F layout - §10 OQ-3: pack_v2 vs setter API updated to 4 setters (not 3) Process note: ~13 main-thread Edit calls in this fix; subagent Python-via-Bash workaround used for the final risk-matrix line fix after permission prompt feedback. Will follow up with settings.local.json wildcard syntax adjustment. https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 16, 2026
…ck semantic-routing bugs Codex review on PR #383 surfaced three semantic-routing bugs all sharing the root cause of "v1 API path bypasses v2 mantissa / reclaim-zone semantics". Same anti-pattern as the W3 spec codex P1 from PR #381. All three fixed + paired with regression tests. P1 #1 — forward() decoded weight.inference_type() (3-bit unsigned) even under v2, so a v2 edge built with `with_inference_mantissa(-1)` (Abduction direction) would read bits 46-48 as 0b111 = Reserved7 and dispatch through the synthesis/default branch instead of Abduction. Negative mantissas (Abduction, Counterfactual) silently produced wrong NARS truth propagation. Fix: under `causal-edge-v2-layout`, decode via `InferenceType::from_mantissa(weight.inference_mantissa())` for the match arm. Result re-stamped via `with_inference_mantissa( resolved_infer.to_mantissa())` so the sign bit (49) survives pack()'s v2 mantissa write (pack() needs the v1 enum value but to_mantissa() maps it through correctly — see P2 fix below). P1 #2 — set_temporal() unconditionally wrote bits 52-63 even under v2 where those bits are plasticity[2] + W-slot + lens + spare. The v1 learn() path calls set_temporal(current_time) after every observation; that call clobbered W-slot routing state and corrupted the reclaim zone for any edge that had been stamped via with_w_slot/ with_truth/etc. Same root cause as the pack() temporal-write bug fixed in commit ab39d01 — just a different setter path that wasn't gated. Fix: feature-gate set_temporal() the same way as pack(): under v2, the call is a complete no-op (the `t: u16` arg is silently dropped with documented migration pointer to chain-position + AriGraph Triplet.timestamp). learn() transitively becomes safe under v2 since the only reclaim-zone write was the set_temporal call. P2 — pack() under v2 wrote the raw `inference as u8` discriminant into bits 46-48 (3-bit mask). With the v1 enum: - Deduction=0, Induction=1, Abduction=2, Revision=3, Synthesis=4 - pack(Abduction) → bits 46-48 = 0b010, bit 49 = 0 - inference_mantissa() reads 4 bits as i4 → +2 - from_mantissa(+2) decodes as Induction, NOT Abduction Silent semantic drift on every v2 pack() call for any non-Deduction inference type. Fix: under v2, pack() writes `inference.to_mantissa() as i4` (4 bits including sign) so the round-trip pack→inference_mantissa→ from_mantissa preserves the semantic. The v1 branch keeps the original 3-bit discriminant write for back-compat. forward()'s final re-stamp (P1 #1 fix) covers the case where the resolved InferenceType needs to be re-encoded after composition. Three regression tests added to `v2_layout_tests.rs`: - `test_forward_decodes_negative_mantissa_under_v2` — Abduction via mantissa=-1 must NOT alias Reserved7 - `test_set_temporal_no_op_under_v2` — set_temporal(1023) on an edge with w=42/truth=Fuzzy/spare=0b101 must leave the raw u64 unchanged - `test_pack_uses_mantissa_mapping_under_v2` — pack(Abduction), pack(Counterfactual), pack(Intervention) all round-trip through inference_mantissa → from_mantissa with semantic identity preserved Test status post-fix: - v2 (default): 33 pass / 1 pre-existing fail (test_build_fast) - v1 (no features): 16 pass / 1 pre-existing fail - The 3 new regression tests prevent silent re-introduction https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 16, 2026
…ixes (CSI-7/8/9) The Opus honest meta-review (final of the 12+1 fleet) graded sprint-11 + Wave F at **B** (down from W-F10 Sonnet draft's B+) and surfaced 3 P0 integration gaps where worker output never reached the build path because lib.rs / workspace registration was orphaned between worker DONE and meta-review SPAWN. Fixed all three in this commit. W-Meta-Opus review (~/sprint-log-11/meta-review-opus.md, 161 lines) - Independent per-worker grades W-F1..W-F12 (W-F10 placeholders filled) - CSI-7..13 cross-cutting findings missed by Sonnet drafts - Sprint-11 grade: B (not B+) — Wave F integration discipline lapsed - Recommends promoting E-META-10 (v1-API-under-v2 alias) to iron rule in CLAUDE.md alongside I-SUBSTRATE-MARKOV / I-NOISE-FLOOR-JIRAK - Sprint-12 spawn recommendation: YES, conditional on Wave F + #386 merge P0 fix #1 — CSI-7: sigma-tier-router workspace registration - Added `crates/sigma-tier-router` to `Cargo.toml` workspace `members` - Removed the self-declared `[workspace]` table from `crates/sigma-tier-router/Cargo.toml` (it forced the crate into standalone mode, preventing parent-workspace inclusion) - Validation: `cargo test --manifest-path crates/sigma-tier-router/Cargo.toml` — 12/12 tests pass; clean cargo check P0 fix #2 — CSI-8: cognitive-shader-driver lib.rs gaps - Added `pub mod attention_mask;` and `pub mod attention_mask_actor;` at the top of the pub-mod block (alphabetically before bindspace) - W-F2 + W-F3 modules now reachable to downstream consumers; tests will execute on workspace cargo test P0 fix #3 — CSI-9: ndarray hpc/stream/mod.rs (cross-repo, this commit prepares ndarray for the companion change) - Edited `/home/user/ndarray/src/hpc/stream/mod.rs` to register `pub mod qualia;` + `pub mod splat_field;` alongside the existing `pub mod inference;` (W-F5 had registered itself; W-F4/W-F6 left orphans) - Re-exports: `QualiaI4Row`, `QualiaStream`, `SplatField`, `SplatFieldStream` - Validation: `cargo test --lib hpc::stream` in ndarray — **18/18 pass** (6 each × 3 streams) - The ndarray-side change requires a separate commit + push to the `/home/user/ndarray` repo (its own git history); main thread will land that as a sibling PR Aggregate Wave F test totals (verified via Opus review) - Rust impl workers (W-F1/2/3/4/5/6/7): 60 tests across 7 files - Governance/doc workers (W-F8/9/10/11/12): 5 markdown files, ~1500 LOC docs - Opus meta-review: 161 lines - Total Wave F LOC: ~5000 (code + docs + plans) Remaining gaps (per Opus review, NOT P0 but tracked) - W-F2's local `type MailboxId = u32` shadow alias (CSI-10) → keep for back-compat; sprint-12 refactor consolidates - E-META-10 promotion to iron rule → sprint-12 work - ndarray companion PR for CSI-9 → sibling commit https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 16, 2026
…tionMaskSoA + canonical MailboxId import Codex P2 review on PR #388 flagged that `AttentionMaskActor` is public but `AttentionMaskSoA` (the only production backend in the crate) doesn't implement `AttentionMaskBackend`. Downstream consumers can't add the impl themselves because they own neither the trait nor the SoA (Rust orphan rules), so `AttentionMaskActor::new(AttentionMaskSoA::new(...))` would force them to wrap in a local newtype. Fix #1 — production-backend impl in attention_mask_actor.rs Added `impl AttentionMaskBackend for crate::attention_mask::AttentionMaskSoA` with the four trait methods delegating to the existing inherent methods on AttentionMaskSoA. Now downstream consumers can wire the two directly: `AttentionMaskActor::new(AttentionMaskSoA::new(4))` works out of the box. Fix #2 — collapses CSI-10 from the W-Meta-Opus honest review The W-F2 worker had defined a local `pub type MailboxId = u32` in attention_mask.rs (Opus CSI-10 entry: "W-F2 used local MailboxId shadow alias"). Switched to `pub use lance_graph_contract::collapse_gate::MailboxId;` — same underlying u32 so all method signatures stay compatible, but now both attention_mask.rs and attention_mask_actor.rs reference the SAME canonical type and the trait impl in fix #1 can be added without type-mismatch concerns. Test status: 14/14 attention_mask + attention_mask_actor tests pass. Clean compile (modulo 2 pre-existing unused_mut warnings unrelated to this change). Branch rebased on main (post PR #385 merge) to pick up the ndarray hpc-extras feature flag that W-C1 added; this resolves the blake3 unresolved-crate compile failure that hit cognitive-shader-driver prior to rebase. https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
This was referenced May 16, 2026
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 18, 2026
…r-actor (Sprint 0) Adds two new stub crates from the four-repo integration plan as workspace-EXCLUDED scaffolds (additive contract shape; promoted to members in Sprint 1/2 once heavy deps land). * crates/lance-graph-tikv-provider/ (Glue #2, plan §5) TikvNodeTableProvider + TikvEdgeTableProvider stubs implementing datafusion::catalog::TableProvider + lance_graph_contract::provider markers. Bodies are Sprint 1 unimplemented!() with the trait shape pinned. * crates/cognitive-shader-actor/ (Glue #4, plan §6) CognitiveShaderActor<S> wrapping any SupervisableShader (from the new lance_graph_contract::actor module) as a ractor::Actor with ShaderMessage enum + ShaderSupervisor stub. Bodies are Sprint 2 unimplemented!() pending ractor::Actor signature confirmation. Both crates depend only on lance-graph-contract = "0.2" (path) plus their domain crates (tikv-client / ractor); no existing crate gains or loses a dep. Workspace check stays unaffected (excluded). Workers: LG-1, LG-2. Sprint 0 of the four-repo wave.
7 tasks
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 18, 2026
… + extend constraint binding to _inherit-only classes All three codex findings are real correctness issues. Fixing them tightens the validation_kind classifier so a regenerated corpus does not pollute downstream queries with false-positive kinds, and lifts the Odoo "extend-in-place" idiom (the same shape #525 fixed for relational fields). # codex #1 — `_inherit`-only classes' constraints attach to the bases The original block flushed `local_constrains` inside `if model_name is not None`, silently dropping `@api.constrains` methods on the common Odoo extension form (`_inherit='account.move'` without `_name`). Now `model_targets = [_name]` if set, else `list(_inherit)` underscored, and constraints attach to *each* target. Same shape #525 took for relational fields — kept consistent. # codex #2 — `search_count(...) > 1` is uniqueness ONLY, not also range The unconditional `Compare` walker added `range` for any `< | > | <= | >=`, including the canonical uniqueness pattern `<rs>.search_count(...) > 1`. That polluted every uniqueness method with a stray `validation_kind=range`. Added `_is_uniqueness_call(left)` guard so range is skipped when the LHS is a `search_count` call. Direct field-vs- bound checks (`self.amount < 0`, `self.amount > 1000000`) still classify as range. # codex #3 — `not re.match(...)` is format ONLY, not also presence The broad `UnaryOp(Not)` rule added `presence` for `if not re.match(...):` and `if not <rs>.search(...):` — the negated-call wrap of format / lookup checks, not presence checks. Restricted presence to truthiness of a *value-like* operand (`Name` / `Attribute` / `Subscript`); negated calls are skipped. Direct field truthiness (`if not self.partner:`) still classifies as presence. # Tests 8 new regression tests under `TestCodexFindings` (32 → 40 OK): - `test_constraints_bind_to_inherit_only_extension` - `test_constraints_bind_to_each_inherit_when_list` - `test_constraints_with_name_skip_inherit_targets` (specificity) - `test_search_count_gt_is_only_uniqueness` - `test_field_range_check_still_classifies_range` (specificity) - `test_negated_re_match_is_only_format` - `test_negated_search_is_only_lookup` - `test_direct_field_truthiness_is_still_presence` (specificity) Each kind has a paired specificity test ensuring the fix did not break the canonical pattern. python3 -m unittest tests.test_spo_enrich : 40/40 OK (was 32)
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 18, 2026
…h, so Cypher is its AST; board-ops + ontology-traversal + thinking-styles + SurrealQL egress are ONE AST A kanban board IS a graph: card=GUID node, column/phase=state, move=edge rewrite, dependency=edge, WIP=count constraint, transition rules=graph schema. Cypher is the AST for graph patterns, so Cypher is the board's native query/mutation language. The planner already shares one AST across Cypher/Gremlin/SPARQL/GQL front-ends + SurrealQL adapter/egress + thinking-style dispatch + kanban phases - odoo's ontology traversal through the SurrealQL AST adapter is the existence proof. These are one AST seen from four sides, not four subsystems. Refines E-GUID-IS-THE-GRAPH correction #2 (the lifecycle state-machine IS a graph; "kanban is not traversal" was a false dichotomy). Scope: "Cypher is the AST" = surface lowering to the shared IR/SurrealQL AST, not a claim the nom parser emits SurrealQL today (DataFusion now; SurrealQL lowering is the lite-unified gate #540). Wiring = Backend::MailboxSoa router variant + Cypher->SurrealQL lowering behind lite-unified. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 20, 2026
…iwar POC Follow-up to merged #557; rolls in both codex P1 review findings + the operator's 16-family-adapter edge model + the Callcenter slice + an aiwar OSINT POC on the real graph. soa_graph (codex P1 #1 + #2, operator model): - classid IS the class (exact): project_snapshot / nearest_anchor include only rows where classid == domain.classid — a mixed-class board can't leak one domain's nodes/edges into another's view. - 16 x 8-bit family-node adapters: the canonical EdgeBlock is read as 16 family adapters (12 in-family + 4 out-of-family), each non-zero byte -> a FAMILY node by `family & 0xFF`, collision-aware (ambiguous low byte skipped, never mis-routed). Member-by-identity resolution removed -> the >255-member aliasing dissolves (resolution is family-level only). Trade: mixin dependency for extreme render stability + flexibility (E-FAMILY-ADAPTER-EDGES-ARE-RENDER-STABLE). lance-graph-callcenter (the slice): - graph_table (query-lite): GraphSnapshot -> `nodes` + `edges` arrow MemTable TableProviders + register_graph(SessionContext). The DataFusion / SQL / Cypher->SQL path (mirrors transcode::ontology_table). - graph_gremlin (always-on, pure contract types): g(&snap).v().out()/ .in_()/.out_e(label)/.values_kind() — the Gremlin POC = SurrealQL `->edge->` traversal kernel. contract::aiwar + example (the POC the operator asked for): - AiwarClassView (entity category ⇒ family id) + aiwar_node_rows ingest the real AdaWorldAPI/aiwar-neo4j-harvest/data/aiwar_graph.json into OSINT NodeRows; project_snapshot gives a Gotham graph whose family nodes ARE the categories. Example run: 221 entities/326 edges -> 281 nodes (221 members + 60 family hubs) + 481 edges. q2 wires it to the Quadro-2 visual. Tests: contract 703 lib (+5), clippy --all-targets -D warnings clean. callcenter 10 graph tests (--features query, incl. live SQL roundtrip), default build compiles graph_gremlin; new files clippy-clean (pre-existing callcenter query-clippy debt logged TD-CALLCENTER-QUERY-CLIPPY). Board updated (LATEST_STATE, AGENT_LOG, EPIPHANIES, TECH_DEBT, plan). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 20, 2026
… fuse codex P2 #1 (contract source unification): lance-graph + symbiont path-dep lance-graph-contract; lance-graph-ogar git-dep'd it, so when composed Cargo sees two distinct crates and OgarClassView impls the git ClassView, unusable where the engine expects the path one. Fix: path-dep ../lance-graph-contract (the canonical in-repo copy) + a [patch."…/lance-graph"] that folds ogar-class-view's transitive git contract onto the SAME path copy = one source. Documented the cargo limitation: an in-repo workspace root (symbiont) adding this crate MUST repeat the patch ([patch] only applies at the workspace root). codex P2 #2 (parity guard only ran in tests): the drift fuse was #[cfg(test)] only, so a downstream cargo build never ran it — the "fails the build on drift" claim was false for normal builds. Fix: added parity::COUNT_FUSE, a compile-time const assert (mirror::CODEBOOK.len() == ogar_vocab::class_ids::ALL.len()) that fires in ANY build (cargo build included) on add/remove drift; kept the runtime assert_codebook_parity for the full id/domain bijection (tested + callable at startup); corrected the docs to state both depths precisely (no overclaim). Re-verified: cargo test --manifest-path crates/lance-graph-ogar/Cargo.toml 3/3 (the ogar_class_view_implements_contract_class_view test compiling proves one-source unification), clippy -D warnings + fmt clean, no "patch not used". Board: AGENT_LOG (cont.15). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 4, 2026
…perator ruling)
Operator ruling 2026-07-04 ("mark all as migration mandatory"): the V1
contiguous-u24 node-key tail (family:u24 ++ identity:u24) is forbidden and its
migration to the V3 6×(u8:u8) facet is mandatory on every surface — upgrading the
le-contract §L7 #2 reconciliation from optional to a hard mandate.
- ISSUES.md ISS-V1-U24-TAIL-MIGRATION-MANDATORY: the full residue enumerated with
file:line (ocr.rs:121, soa_graph.rs:412, aiwar.rs:104, action.rs:417/693,
callcenter graph_table + OWL bytes[13..16] writers, ogar lib.rs:195, and the
CLAUDE.md CANON doc), each mandatory, each gated per-site on v3-envelope-auditor.
Records the mechanism (no new_v3 constructor; classid tail_variant resolves V3)
and the gotcha (NodeGuid::new byte-packing does NOT align with the V3 reading —
classid swap alone is insufficient). Test-only fold assertions exempt.
- EPIPHANIES.md E-V3-V1-U24-MIGRATION-MANDATORY: the ruling as policy.
Confirmed already V3-clean (no action): the Tesseract transcode arc
(contract::network FacetCascade #643, recoder, tesseract-recognizer, ruff
harvest) + OGAR render_class_with_methods (#150) — zero contiguous-u24.
Board-only; no code, no build step.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016b33swuXE23hKtqxsHu9p1
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 10, 2026
perturbation-sim/examples/comma_quorum.rs — the Pythagorean-comma vertical-quorum probe (E-COMMA-QUORUM-1 / E-COMMA-REPLAY-1), all pre-registered gates PASS: - quorum: comma stride (2395, coprime with M=4096 per D-QUANTGATE) holds N_eff 11.00/12 effective witnesses where strict alignment collapses to 1.00 (unit 2.49, rational 3.92) - replay: any level regenerated from (GUID, envelope) is bit-identical and write-order-independent - latent: a level never computed at write time passes quorum independence on first projection (max|rho|=0.156, dN_eff +0.83) - economy: 82,176 B touched vs ~69 GB dense — the 64x64..256kx256k pyramid is never materialized Honesty chronicle kept in the probe header: run #1 pre-registered FAIL (3.24) diagnosed as the spectral-participation ceiling — the measured boundary condition N_eff(comma) = min(L, spectral participation of the detail field) — not tuned away; runs #2/#3 isolated envelope common-mode and the Dirichlet sidelobe floor. .claude/v3/FUTURE-DESIGN.md — the operator-requested meta board / landing zone: 5-ruling index with measured results, the ladybug-rs -> thinking-engine -> p64 -> driver -> SoA migration arc, the thinking-engine unwired-gems wiring queue (CascadeChannels8 first), the mid-flight value-tenant constraint. v3 README doc-map row added. Board hygiene same-commit: EPIPHANIES prepend E-COMMA-QUORUM-MEASURED-1 (FINDING); STATUS_BOARD D-MTS-5 -> Measured GREEN; plan temporal-markov-and-style-classes-v1 row updated; AGENT_LOG prepend. chaoda_surge_epicenter.rs: rewrap-only cargo fmt sweep (whitespace, PR #592 precedent). Probe + example clippy -D warnings clean. Co-Authored-By: Claude <noreply@anthropic.com>
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 10, 2026
bit per comma level matches the full CausalEdge64 awareness proxies perturbation-sim/examples/comma_awareness.rs (zero-dep; D-MTS-5 machinery + NARS revision/deduction proxies; pre-registered gates, honest run chronicle in the header): - knee: comma lane k*=1 (2 explicit truth bits/edge vs the baseline's 16) passes all three awareness proxies (|dE| 0.0084, surprise-bit agreement 0.9688, F-descent rho 0.9792); the aligned control needs k*=4 - mechanism measured: the comma walk is a low-discrepancy per-edge lattice, so de-dithered averaging is stratified sampling - comma k=1 RMSE 0.0244 vs aligned 0.2503 (10x), worth ~3.4 effective bits ~ log2(12)=3.58 - replay bit-identical across passes and level orders - chronicle: run #1 G1 FAIL was a mis-registered gate (exact agreement demanded of a dithered-reconstruction path); fixed by a diagnosis MEASUREMENT - max disagree margin-to-threshold 1.7e-5 proves every flip is boundary noise; G1' re-registered STRICTER, run #2 all green - fences: proxies, not the full ShaderDriver loop; D-MTS-6b (driver-integrated fixture) gates any real CausalEdge64 shrink; economy framed marginal-cost (the per-level slots are the pyramid's own envelope storage) Board same-commit: EPIPHANIES E-COMMA-AWARENESS-MEASURED-1; STATUS_BOARD D-MTS-6 -> Measured GREEN; FUTURE-DESIGN + plan rows; AGENT_LOG entry (incl. PR #674 opening + the codex fix). Includes fmt-only rewrap residue on planner style.rs/nars_engine.rs (cargo fmt sweep, PR #592 precedent). Co-Authored-By: Claude <noreply@anthropic.com>
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 16, 2026
…(codex P2 #2 on #697) PaletteDistanceTable.table is a private field with no slice export, so the arm-A spec ("upload PaletteDistanceTable.table") was not implementable outside bgz17 as written. Amended: the probe materializes buf[a*256+b] = table.distance(a,b) over 0..256^2 — bit-identical to the private buffer by construction, since distance() is the direct indexed read table[a*256+b] (palette.rs:275-277) — and uses the same public calls as the CPU oracle. A zero-copy `pub fn as_slice()` may be added to bgz17 in the probe PR itself, never assumed to exist. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 17, 2026
…ng mask (CodeRabbit #719) Address 3 of CodeRabbit's 5 findings (the spec-strengthening ones): - §0c NEW authoritative table: concept u16 != classid; classid = compose_classid(canon, appid)=canon-high (canon<<16)|appid; propose appid 0x0000 (canon-only) for internal concepts; exact classids + read-mode tuples for every cognitive/chess concept + the board-row classid; BoardAggregates = tenant lane + board-row classid (both). - §5 ValueSchema::Thinking: exact 10-tenant field mask (Cognitive hot set ∪ 3 triangle lanes), tenant_bytes 102 B; mandatory routing (every thinking/task classid -> Thinking, never Cognitive) + mandatory persist-side survive-baking test (TD-TRI-1-P4 #2 made concrete). - header: byte-precision claim made conditional on the two open knobs. Skipped 2 (with reason): STATUS_BOARD D-TRI-1 is a dashboard row that transitions status in place by convention (not strict-append like EPIPHANIES/PR_ARC); the INTEGRATION_PLANS entry matches the file's actual per-entry format (the graphrag entry above it carries no Author/Confidence field either). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Awg6TXocHcwTtc6eGsHcdD
AdaWorldAPI
added a commit
that referenced
this pull request
Jul 17, 2026
…undary) (#719) * docs(plan): D-TRI-1 classid-half batched-mint spec — to the handoff boundary The classid half of D-TRI-1, spec'd byte-precise so the doc-W4 council can execute it mechanically post-S1. NO bytes minted (proposals only): - chess 0x06 (episode/candidate/iteration/event — operator-ruled byte) - Cognition task domain 0x03 (fan-out/counterfactual/synthesis/inference/ deduction/extrapolation/syllogism — operator-ruled canonical; byte proposed) - BoardAggregates value tenant @ row_offset 188 (U8x8 proposed) - execution sequence (OGAR originates -> lance-graph mirrors + parity tests -> read-modes -> BoardAggregates lane), P4 ValueSchema::Thinking proposal - S1/S3/S5 coordination with the graphrag arc (community-id S1-gated; never solo) Two open knobs flagged for operator/council: Cognition byte 0x03, BoardAggregates width. Handoff: the other session runs S1; the council mints. Board: INTEGRATION_PLANS prepend + STATUS_BOARD D-TRI-1 (value-half MERGED, classid-half SPEC READY). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Awg6TXocHcwTtc6eGsHcdD * docs(plan): reserve 0x0300 Cognition domain root, task-row concept -> 0x0308 (Codex P2 #719) Codex correctly flagged that cognitive_task at 0x0300 collides with the codebook CC==0x00 domain-root convention (ogar_codebook.rs:4-6): every promoted concept starts at 0x??01, and 0x??00 is the reserved domain root. Reserved 0x0300 (root, not a CODEBOOK entry); the 7 task verbs stay at 0x0301-0x0307; the generic Tasks-SoA task-row concept moves to 0x0308. Chess (§1) was already correct (0x0601). Added the codebook-root convention note so the council never emits a 0x??00 row. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Awg6TXocHcwTtc6eGsHcdD * docs(plan): concept-id vs classid mapping + exact ValueSchema::Thinking mask (CodeRabbit #719) Address 3 of CodeRabbit's 5 findings (the spec-strengthening ones): - §0c NEW authoritative table: concept u16 != classid; classid = compose_classid(canon, appid)=canon-high (canon<<16)|appid; propose appid 0x0000 (canon-only) for internal concepts; exact classids + read-mode tuples for every cognitive/chess concept + the board-row classid; BoardAggregates = tenant lane + board-row classid (both). - §5 ValueSchema::Thinking: exact 10-tenant field mask (Cognitive hot set ∪ 3 triangle lanes), tenant_bytes 102 B; mandatory routing (every thinking/task classid -> Thinking, never Cognitive) + mandatory persist-side survive-baking test (TD-TRI-1-P4 #2 made concrete). - header: byte-precision claim made conditional on the two open knobs. Skipped 2 (with reason): STATUS_BOARD D-TRI-1 is a dashboard row that transitions status in place by convention (not strict-append like EPIPHANIES/PR_ARC); the INTEGRATION_PLANS entry matches the file's actual per-entry format (the graphrag entry above it carries no Author/Confidence field either). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Awg6TXocHcwTtc6eGsHcdD --------- Co-authored-by: Claude <noreply@anthropic.com>
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 19, 2026
…tion Adds two things to text_stream_to_soa: EMIT_SYMBOLS TSV export and a canonical-surface-fidelity "manufactured" readout — the working codebook- resolution leg for the jeans-in-"Rumi" OOV artifact. Three-detector arc (all measured, 4 corpora): - The genre-vector over-representation filter is FALSIFIED as an OOV detector: it flags the CENTRAL theme words (animal/farm #1/#2 in Animal Farm, mouse/ wolf in Aesop) with the same score as jeans — over-representation is a property of both theme words and sinks. - Canonical-surface-fidelity works (superset): flags jeans(100%)/box(99%), clears animal(69%)/farm/miss; Aesop 0 (clean). Also flags benign lemma-only inflection (labor/try) — the residual needs case preservation. - Root cause of the worst artifacts = proper-noun collapse via case-destruction at deepnsm vocabulary.rs:344 (split_words lowercases before lookup): jeans<- Jean (a character), box<-Boxer (the horse). Corpus-integrity: chasing jeans to root exposed that scratch "rumi.txt" is Gutenberg #56097 "The Ranch Girls at Boarding School" (a novel), NOT Rumi. Records E-CODEBOOK-OOV-SURFACE-FIDELITY-1; corrects the corpus label + mechanism in E-GRAMMAR-HEURISTIC-CONTENT-FILTER-1 and the label in E-COHERENCE-LENGTH-PROBE-1 (Status-line edits; both findings STAND — the Q/coherence signature is strengthened: novel==novel signature). LLM tail-cleaner stays credential-blocked (env keys reject auth; session OAuth not repurposed). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016b33swuXE23hKtqxsHu9p1
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 19, 2026
…tion Adds two things to text_stream_to_soa: EMIT_SYMBOLS TSV export and a canonical-surface-fidelity "manufactured" readout — the working codebook- resolution leg for the jeans-in-"Rumi" OOV artifact. Three-detector arc (all measured, 4 corpora): - The genre-vector over-representation filter is FALSIFIED as an OOV detector: it flags the CENTRAL theme words (animal/farm #1/#2 in Animal Farm, mouse/ wolf in Aesop) with the same score as jeans — over-representation is a property of both theme words and sinks. - Canonical-surface-fidelity works (superset): flags jeans(100%)/box(99%), clears animal(69%)/farm/miss; Aesop 0 (clean). Also flags benign lemma-only inflection (labor/try) — the residual needs case preservation. - Root cause of the worst artifacts = proper-noun collapse via case-destruction at deepnsm vocabulary.rs:344 (split_words lowercases before lookup): jeans<- Jean (a character), box<-Boxer (the horse). Corpus-integrity: chasing jeans to root exposed that scratch "rumi.txt" is Gutenberg #56097 "The Ranch Girls at Boarding School" (a novel), NOT Rumi. Records E-CODEBOOK-OOV-SURFACE-FIDELITY-1; corrects the corpus label + mechanism in E-GRAMMAR-HEURISTIC-CONTENT-FILTER-1 and the label in E-COHERENCE-LENGTH-PROBE-1 (Status-line edits; both findings STAND — the Q/coherence signature is strengthened: novel==novel signature). LLM tail-cleaner stays credential-blocked (env keys reject auth; session OAuth not repurposed). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016b33swuXE23hKtqxsHu9p1
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 23, 2026
…ng (Codex P2 #2) Codex flagged that the `rung == 0` guard only protects beliefs observed BEFORE they were ever derived. A belief that is derived first and observed later keeps its rung (>= 1) per S2's rung-in-place revision, yet now carries real observation evidence — so a subsequent close_transitive that finds a higher-expectation pure derivation would overwrite it, dropping the observed evidence (e.g. derive A->C from A->B->C, observe A->C, then add strong A->D->C). Fix: gate on the stamp, not the rung. A pure derivation carries the empty stamp (Stamp::default()); any belief with observation evidence has a non-empty stamp (observe unions it in — and a derived belief's zero stamp is disjoint from every source, so observing it always pools via revision). `e.stamp != Stamp::default()` therefore catches both the purely-observed (rung 0) and the derived-then-observed (rung >= 1) case. Regression closure_does_not_overwrite_a_derived_then_observed_belief runs Codex's exact scenario with the observed truth's expectation kept BELOW the strong path's, so the guard (not the expectation test) is what protects it. 92 crate tests + clippy -D warnings green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 23, 2026
…enant) Operator green-lit adding a TEKAMOLO tenant (temporal/causal/modal/local, 256:256:256 each, + qualia). It is NOT a new layout — it is a NAMED READING of the existing 12-byte content-blind facet payload in the CascadeShape::G4D3 (4×3) carving, its four groups named as the adverbial roles Temporal(when)/Kausal(why)/Modal(how)/Lokal(where), each a 3-byte 256:256:256 cascade. TekamoloFacet(pub FacetCascade): every accessor delegates to the canonical FacetCascade::cascade_byte(G4D3, group, level) — NO bytes of its own, NO ENVELOPE_LAYOUT_VERSION bump, NO new ValueTenant. from_lanes packs the four lanes; shared(other, role) is the per-axis shared-prefix locality readout. Qualia already exists (value tenant #1 QualiaI4_16D, untouched); a value facet needs no companion edge tenant (edges are the orthogonal EdgeBlock + MaterializedEdges tenant #2). The address side of the typed-relation frontier the House falsifier identified: pairs with Copula::Rel(verb) edge-typing to give the ablation centre-finder real articulation structure. E-TEKAMOLO-FACET-IS-A-G4D3-READING-1. Tests: 5 green (roundtrip, parity-with-cascade_byte, lane-isolation, per-role shared-prefix, any-facet-reads-as-tekamolo). Gates: cargo test -p lance-graph-contract --lib tekamolo_facet 5 passed; clippy -p lance-graph-contract --lib -D warnings clean. v3-envelope-auditor pass in flight. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 26, 2026
…real Codex P2 (prepositional fronting) + CodeRabbit Major (Ps 5:2 segmentation) were the SAME root cause: the whole-KJV `i—pray→thee` commit had only fired via pg10 line-wrapping luck — the parser could not reach `for unto thee will I pray` by design. Fixes in insight_right_corner_read.rs: - unit split extended `.;\n` -> `.;:?!,\n` (KJV colons are clause separators; `?`/`!` were silently merging clauses — codex P2 #2; the comma-split also removes a cross-clause `unto him, Shall we go` capture) - leading discourse-connective skip (for/and/but/...) + fronted recipient-PP skip. FRONT_PREPS deliberately ONLY unto/to: the re-run showed locative/source fronts commit role-WRONG edges (`of them shall ye buy` — them=source; `upon thee shall he offer` — thee=place; those belong to the Lokal lane, not the object slot). Precision over recall. - two regressions added (Ps 5:2 shape; double-`?` multi-clause). Whole-KJV re-run: 6 -> 21 commitments, 21/21 defensible on spot-check, incl. the Ps 105:11 = 1 Chr 16:18 duplicate pair surfacing live (the Phase-4 duplication caveat demonstrated). Board numbers corrected with a dated note (same entry, this PR's unmerged content). CodeRabbit Major (loader panic on empty PoS field): first-byte guard applied to the shared pattern in ALL FOUR examples (right_corner, witness_gated, reason_wired, coca_read) — skip malformed rows, never panic. Also from the review round (ChatGPT refinements): - witness.rs::has_fronted_argument documents the obl over-approximation honestly (governed vs circumstantial oblique needs a valency/frame layer; ArgumentStatus queued — a fronted temporal/locative obl must not license an object candidate). - EPIPHANIES gains E-WITNESS-SPECIFIC-MEANING-1 [SPEC]: the four-instrument probe family (Aesop / Daniel OG-Theodotion / Susanna expression graph / Coena), the EvidenceAvailability family (TextAbsent vs ExpressionAbsent vs NonProjectable vs Paraphrased), corresponds_to-never-same_as, and the ratified execution order: PROIEL grammar PROMOTION (Level 3 — witness- derived rule survives witness removal) is the next implementation PR. Gates: contract 1037 green; clippy -D warnings + fmt clean; all four examples run green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LFRfkNAyJCkLbtChuSHNay
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 26, 2026
…diagnosed Codex 2xP1 + P2 and CodeRabbit 3 findings on #850, all confirmed real. Three of them are the German form of the error this arc has been chasing in English: reading a SURFACE signal as structure without checking what GOVERNS it. P1 #1 — Satzklammer measured sentence-wide instead of clause-local. `fin[0]` is the leftmost finite verb, not the matrix predicate: in `Wenn es regnet, bleibe ich zuhause` it selected `regnet` and derived a spurious V3+ for a clause that is matrix V2. The sentence-wide `nonfin` sweep could also pair a predicate with a nonfinite verb from a different clause. Now anchored on the ROOT's verb cluster, with bracket members taken from that cluster only. Effect: V2 now 40,882 vs V3+ 851 / V1 615 (~96.5% V2 — correct for German declaratives; the bug inflated V3+ on every subordinate-first sentence). P1 #2 — verb-finality read from the wrong verb. In periphrastic clauses (`das ich gesehen habe`) the relativizer attaches to the PARTICIPLE while finite `habe` holds the right corner, so comparing against the participle systematically REVERSED the classification. Both the relative-clause and subordinate-clause blocks now resolve the clause's verb cluster and anchor on its finite member. Effect: relative clauses 6,419 verb-final vs 2,051 not (75.8%); subordinate 10,944 vs 2,380 (82.1%) — both now correct German. CodeRabbit — subordinate detection excluded AUX, so every clause headed by a German modal (koennen/muessen/sollen/wollen/duerfen/moegen, all UPOS=AUX in UD) was skipped: `weil er kommen muss` never counted. Now VERB|AUX, and acl:relcl added to the relation set. P2 — Wechselpraeposition asserted spatial meaning from case alone. `an dich denken` is Acc with no direction; every governed and temporal use was emitted as `directional`. The fix uses the ALTERNATION as the evidence: a (prep, governor) pair attested with BOTH cases is a live Wechsel contrast and gets the reading; a pair locked to one case is lexically GOVERNED and gets reading='-'. Effect: 11,001 of 36,934 tokens (30%) reclassified as governed — e.g. `sagen an+Dat`, `heissen in+Dat`, `liegen an+Dat` (idiomatic) — while `kommen/gehen/stehen in` correctly stay alternating. Same discipline as the English extractor's recipient-only PP fronting. Docs (CodeRabbit): the i4 boundary now uses one exact predicate throughout (`-8 <= off <= +7` local, `off < -8 or off > +7` non-local) instead of mixing +-8 / |off|>8, and the demarcation fence is labelled `text` (MD040). Two shared helpers added: verb_cluster() (a clause's lexical head + the auxes UD hangs off it) and finite_of() — German splits the finite and lexical verb across the Satzklammer, so any bracket question must be asked of the cluster, never of a single token. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LFRfkNAyJCkLbtChuSHNay
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 30, 2026
…nized Review round (codex 2 findings + CodeRabbit 7 comments), all verified against the code before acting: 1. Gold TYPE-SEPARATED from resolver input (codex #1, CodeRabbit x3): Tok no longer carries a gold field; fixtures return (Vec<Tok>, Gold) with the referee's pairs in a separate list read only by assert arms. A future toks[p].gold shortcut is now a compile error -- closed by the type system, strictly stronger than the suggested invariance test. 2. B2 exercises the BINDER with the tempting target (codex #2, CodeRabbit x2): binding god@15 into scratch rows asserts Ok(-4) AND stored nibble -4 -- "storable-but-wrong" proven at the binder, not by re-deriving its range predicate in the gate. New test binder_accepts_the_tempting_wrong_target. 3. The relative-span "load-bearing" test was VACUOUS (codex P2, CodeRabbit Major) -- confirmed: subject selection scans forward and English is head-first, so serpent@2 wins with or without the filter; the claim was false for that rule. Replaced with the honest pair: clause_segmentation_is_load_bearing (erase the "and" boundary -> structural resolution FAILS entirely -- the true 3:1 counterfactual) and relative_span_filter_can_fire (synthetic clause whose FIRST candidate is in-relative -- the filter demonstrably changes the outcome vs the unfiltered pick). Doc comment corrected to say what actually bears load. 4. The pull-test had no DIVERGENT stored chip (codex P1) -- confirmed: 3:1 escalates (no chip) and 3:7's chips coincide with the heuristic, so stored state was entirely heuristic-reconstructible. Added the constructed in-range interposition fixture ("the man which the boy saw slept, and he smiled" -- labelled built-English, not KJV): recency -> boy (d=-4, wrong), binding -> man (d=-7, gold, BINDS). New gate B4 asserts the STORED nibble differs from the heuristic reconstruction -- the divergence now lives in stored state; composition renumbered B5. New test divergent_chip_differs_from_heuristic_reconstruction. 5. EPIPHANIES wording fixed pre-merge (CodeRabbit Minor): the chip stores the POINTER the verification selected, never "the verified answer" -- pointer-not-answer kept consistent throughout. Declined with reasons (exec-run addendum): workspace-wide fmt/clippy sweep (repo practice is scoped -p; all-features is the known TD-LANCE-GRAPH-ALL-FEATURES-DELTA-BREAK surface); methods-on-carrier nitpick (the carrier litmus targets cognitive state carriers, not probe fixtures). OPERATOR RULING canonized (EPIPHANIES prepend, E-64K-THOUGHTS-DONT-DO-QUORUM-PLASTICITY-BREATHES-FROM-TENSION-1): the 64k parallel thoughts do NOT do quorum -- the i4 mantissa was never sized for counterfactual agreement; inconsistency is plasticity's work; contradictions are the substrate's fuel, preserved, never voted away; linguistic tension = magnitude of expressivity (W7's stored -7 vs recency's -4 is that quantity in one nibble); NARS breathes from these tensions; and the honesty line runs between EPISODIC causality (stream order) and EPISTEMIC causality (warrant) -- recency IS the episodic proxy whose failure the divergence gates measure. The quorum-binder follow-on from E-A-CHIP-BEARS-LOAD-OR-IT-IS-A-JOKE-1 is withdrawn in place (pre-merge correction); TD-LENS-QUORUM survives as scan-cost debt only. Hermeneutik ladder ordering recorded: Gadamer first, the four stances (Kant/Wittgenstein/Nietzsche/Hegel) next. Gates: 5/5 green (B1-B5). Tests: 7/7. clippy -D warnings clean (one map_identity of my own making, fixed). fmt clean, gates re-verified after. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 31, 2026
…3 sample size All three confirmed. None was fixed by adjusting a threshold. P1 #1 — H1 SORTED THE HISTOGRAMS. Comparing sorted multisets discards which cell maps to which offset, and the UNSORTED histograms genuinely differ (peak at index 4 vs 2), so the gate passed while hiding that every cell had moved. An aggregate distribution cannot establish per-cell invariance. Replaced with the argument that actually holds, in two halves: (i) type-level, stated not measured — from_hhtl(path, depth) has no parameter that could carry a carving; (ii) empirical — the entire difference between the carvings is a CONSTANT rotation of 2 across all 256 cells with variance 0, and a cell-dependent shift is the falsifier. P1 #2 — H2 DREW A DESIGN CONCLUSION FROM AN UNWIRED PREMISE. I claimed the shipped constants are "MATCHED to the 4-ary use case". Verified against the source: ResidueEncoder::encode reads only start_offset (n=1, residue.rs:157); index/arc appear solely in walk_spectrum and crate tests; the shipped NiblePath is FAN_OUT=16. Nothing that ships consumes a 4-step prefix, so the n=4 comparison is a property of a hypothetical consumer. Claim withdrawn. What survives is narrower and still worth recording: the pre-registered suspicion is NOT CONFIRMED — a retraction of a concern, not a vindication of a design. P2 #3 — H3 PUBLISHED A FALSE SAMPLE SIZE. The counter incremented before the k > 0 eligibility check, so "4,662 pairs sharing >=1 address level" was really every thinned pair. Codex's inference was exactly right: since tiered agreement holds for every eligible pair by construction, 1,152 IS the eligible population. Corrected figures: flat 51/1,152 = 4.4% (~ the 1/17 = 5.9% chance level, i.e. the flat intake keeps ancestry about as often as chance would); per-tier 1,152/1,152 = 100% BY CONSTRUCTION, now asserted as a construction check rather than as evidence. The ~23x ratio was arithmetic on a mislabelled denominator and is retracted. Both board records corrected in the same commit with dated inline markers, per the append-only rule. Gates 3/3 green; clippy -D warnings clean; fmt applied. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
AdaWorldAPI
pushed a commit
that referenced
this pull request
Aug 4, 2026
…dex P2)
Third anchor iteration, and the third instance of one class.
THE DEFECT. The anchor was chosen by raw |lambda| while the materiality cutoff
below it is correlation-scaled (1e-9 * sqrt(var_i * var_j)). Different units.
An item with an enormous residual variance can therefore hold the largest raw
loading while every covariance in its own row falls BENEATH its own cutoff —
so every sign defaults positive and a material negative edge elsewhere forces
a false rejection.
Reproduced before fixing, on exact one-factor data:
lambda = [0.9, 1.0, -0.8] var = [1, 1e20, 1]
raw-|lambda| picks item 1; its cutoff is 1e-9*sqrt(1e20) = 10
against covariances of 0.9 and 0.8 -> all signs default +
the material -0.72 edge between items 0 and 2 then conflicts
-> omega_total returns None on a valid model
THE FIX. Select by COMMUNALITY, lambda_i^2 / var_i — the share of the item's
own variance the common factor explains. It is dimensionless, so the anchor
criterion and the cutoff finally measure the same thing. On the fixture it
picks item 0 (communality 0.81) over item 1 (1e-20), and item 0's row carries
real sign information.
The public rustdoc is updated in the same commit — it had just been corrected
one round earlier and was stale again, which is the same trap the previous
commit recorded.
THE CLASS, recorded as E-A-CRITERION-MUST-BE-IN-THE-SAME-UNITS-AS-THE-TEST-IT-
FEEDS-1. Three anchors have now rejected valid data: item 0 (arbitrary, breaks
when lambda_0 = 0), raw |lambda| (breaks on unequal residual variances), and
communality (dimensionless, correct). Anchor #2 was not wrong about loadings —
1.0 really is the largest |lambda|. It was wrong because "strongest" was
measured in covariance units while "material" was measured in correlation
units, so the anchor could be strong by one yardstick and invisible to the
other.
And this is the third form of ONE deeper error: the absolute pivot in
R-squared, the four .max(1.0) floors in omega, and now the raw-|lambda| anchor
are all scale-dependence — a number compared against a constant, or against a
quantity in different units. Each was fixed as an instance and the class
resurfaced one layer over. The rule that catches all three at once: every
comparison in a numerical routine has two operands; write down the units of
both, and if they differ the comparison is a bug regardless of what the tests
say.
119 lib + 13 doctests green; stats.rs clippy-clean.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
AdaWorldAPI
pushed a commit
that referenced
this pull request
Aug 12, 2026
…h, fixed in all three homes Codex P2 on #930: "identical R-bar with mu shifted 100.3 deg" fused two different comparisons. Identical R-bar belongs to steering<->rotated (0.343 = 0.343, mu shifted exactly 90 -- rotation preserves concentration by construction); the 100.3 deg separation belongs to surface<->rotated, where R-bar is NOT identical (0.516 vs 0.343). The composite was false in all three homes: LATEST_STATE, the #929 arc entry, report SS5.13. Stated correctly the finding is STRONGER -- the control separates from surface in BOTH channels. Unmerged board entries composed in place (append-only rule's unmerged-PR allowance); the merged report gets a dated correction note. Lesson banked: the 13/13 figure verification checked every NUMBER and still missed this -- a relation between two individually correct numbers can be false. Verify comparative claims AS claims: every "identical/same/larger" must name both operands, and the check must evaluate the relation. Also codex P2 #2: the LATEST_STATE shipped-PR table had stalled at #780. Added #926-#929 rows plus an explicit gap-note row for #781-#925 (carried by PR_ARC_INVENTORY) -- honest gap, not silent reconstruction of ~150 rows. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add plan_err!, config_err!, exec_err! macros that use #[track_caller]
Bridge design: macros call plan_err_at()/config_err_at()/exec_err_at() which convert std::panic::Location to snafu::Location. This gives ergonomic macros while maintaining compatibility with 148 existing snafu error creation sites across 18 files.
https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV