deps(actions)(deps): bump github/codeql-action from 4.35.3 to 4.35.5 in the actions-all group across 1 directory#6
Open
dependabot[bot] wants to merge 1 commit into
Conversation
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Battam1111
pushed a commit
that referenced
this pull request
May 13, 2026
Autonomous resolution of the 3 v0.2 open questions via parallel
3-round craft (5 fungal-named critics: chytrid / rhizomorph /
mycoparasite / saprotroph / mycorrhiza) per the owner's "请继续"
directive (no asking, drive forward, plan-then-one-go).
## Three resolutions
### C4.4 — Invariants under P1-P9 → 9 invariants
The 5-invariant v0.2 baseline is insufficient under expanded P6-P9.
Each new principle (causality, mortality, reproduction, skin)
requires its own mechanical enforcement surface; folding into the
5-baseline dilutes coverage or kills mechanizability.
Final set (full surjective coverage + necessity check passes):
- I1 Pair-Constituted Identity & State Space (P1.c, P1.a, P7-state)
- I2 Two-Tier Governance Classification (P1.b', P1.b'')
- I3 Self-Validation Against Designated SSoT (P3, P4, P9)
- I4 Full-Fidelity Causal DAG (P6, P4, P3)
- I5 Universal Reachability Over Full State Space (P5, P7)
- I6 Universal Inclusion With Observed Metabolism (P2, P2.a, P1)
- I7 Mortality Monotonicity (P7)
- I8 Reproduction Closure (P8, P5)
- I9 Single-Skin Integrity (P9, P2, P1.c)
Sharpening of v0.8-traceable invariants resolves attacks from:
mycoparasite (SSoT redesignation, DAG lossy compression, adjacent-
technique smuggling, agent-discriminating fields), saprotroph
(tier-exemption decay, DAG unbounded growth, reproduction drift),
mycorrhiza (dormancy != death, single-operator semantics, child-
substrate symbiosis-ready).
### C5.3 — Dispatch form → Tropism + Sporocarp punctuation
Verb-form abandoned per owner C5.3. Chosen form is a continuous
chemotropic field (the tropism medium, where P1.c symbiosis and §6
continuity live) punctuated by substrate-initiated sporocarp
fruiting events (the discrete observables, where P3 evolution / P6
causality / I2 governance / I3 validation live).
Beats verb dispatch, continuous metabolic stream, NL semantic
dispatch, capability composition, algebraic operations, reactive
stream, and hybrid on ceiling × flex × efficiency under P1-P9
constraints.
Key structural points:
- Appetite axes are first-class evolvable substrate objects (P3 native).
- Appetite-locality rule: every axis is substrate-internal metabolism;
outbound RPC is I6 breach (prevents capture by LangChain etc.).
- Sporocarps are substrate-initiated (arrow reversed from verbs):
not "agent calls verb → substrate executes", but "gradient crosses
threshold → substrate fruits → agent observes".
- Two-layer duality (field/sporocarp) is medium-vs-observable, NOT
hybrid-of-two-dispatch-forms.
Honest trade-offs: ~3-5× initial implementation cost vs verbs; agent-
side prior cost (learning field/appetite/sporocarp); kind-level
field evolution friction. Recommended fallback if cost dominates:
bare continuous metabolic stream.
### C8.2 — Intent first-class? → (b') trajectory derivation
Intent is NOT a stored substrate data type. It is emergent from the
causal DAG and materialized as a derived "trajectory" view query.
Schema gains zero new types from this resolution. Cost is borne
entirely at the query layer (trajectory derivation is O(graph
traversal); pure (a) first-class type would be O(1) lookup but
creates an unverifiable self-report attack surface — agent claims
intent=X while pursuing Y; mycoparasite-resistant only as (b').
Cross-resolution coherence: sporocarps from C5.3 are the DAG nodes;
trajectory from C8.2 is a subgraph query over them; invariant I4
from C4.4 is the substrate they live in. The three resolutions
reinforce each other.
## Six drift fixes (audit of v0.2 vs archaeology)
D1: §6 "subsystems do them on their own schedule" superseded by
explicit "co-driven" framing — Fix-H25 lazy-medium principle is
superseded by §6 continuous-agent reframing.
D2: §2.2 mis-attribution "P1-P5 cover intake, evolution, iteration,
connection" fixed to "audience, intake, evolution, iteration,
connection".
D3: §7 base signal #6 hardcoded >100 / <1 thresholds replaced with
emergent-threshold framing (seed value from Fix-H11 baseline,
refined by substrate observatory per C6.4).
D4: References to non-existent "P_continuity" replaced with "§6
continuity model" throughout (P4, P6, §3).
D5: Glossary disambiguates rhizomorph (fungal-biology term in §5.1
candidate subsystems vs craft-critic name in derivation logs).
D6: §3 "Not a session-bounded system" sharpened; "Not a request/
response protocol" added.
## L1 OUTLINE v0.1 sketched
docs/architecture/L1_OUTLINE.md (~16KB / 384 lines): structural
shape for L1 carrying the 38 design hooks surfaced by L0 v0.3 (10
from C5.3 tropism + 5 from C4.4 schema-side + 5 from C8.2
trajectory + drift items). Outline only — carries NO authority.
Cannot bind L1 design. Confirms L0 v0.3 is "L1-shaped" (L1 has
clear scope to commit; nothing forced upward into L0).
Sections: §A Continuity / §B Tropism (10 hooks) / §C Schema-SSoT /
§D Governance / §E Skin / §F Lifecycle / §G Hard rules (the v0.9
replacement for v0.8 R1-R7) / §H Trajectory / §I question catalog /
§J document partitioning.
## Cross-resolution consistency check
Sporocarps (C5.3) = DAG nodes (I4 from C4.4) = trajectory atoms
(C8.2). Appetite axes (C5.3 B1) = substrate-internal metabolism
required by I6 from C4.4 = governance-classified per I2 from C4.4.
Trajectory (C8.2) = subgraph query operating over the DAG that I4
enforces full-fidelity. All three crafts referenced each other's
constraints during their derivations; the integrated L0 v0.3 is
internally coherent.
## Pending owner action
Owner reviews L0 v0.3 + L1 outline. On approval: L0 sealed, L1
formal drafting begins per §J partitioning. On request: v0.4 with
any owner-flagged corrections.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Battam1111
pushed a commit
that referenced
this pull request
May 13, 2026
Owner clarified naming confusion + authorized full structural rework
("完全重做做结构性返工,追求卓越、做到最好最棒"). This commit:
## Naming hygiene
The "v0.X" suffix on L0 drafts was conflating with the proto-Myco
v0.X (dead embryo) versioning. Cleaned up:
- Myco substrate version: **v0.9** (the new Myco being designed).
- L0_VISION.md draft counter: **DRAFT N** (no `v` prefix; integers
only). DRAFT 1-4 were the prior 4 commits (f086b9e, e4ffd61,
210d4dd, 588dca5) under the confusing "L0 v0.1-v0.4" naming.
- Sealed L0 will carry NO version — only git commit identity.
## Structural rework — L0 split, L1 spawn
Root cause of DRAFT 4's bloat (1117 lines): L0 over-committed
specification (§5.2 tropism mechanism, §5.2.1 birth phase, §5.3
trajectory edge cases, §7 signal#7 tropism-specific, §5.1 candidate
subsystem enumeration). L0 should commit identity + constraints;
L1 owns positive mechanism.
DRAFT 5 extracts L1-mechanism content into dedicated L1 documents:
### New files
- **`L1_TROPISM.md`** (DRAFT 1, 17 KB):
Receives DRAFT 4's §5.2 tropism specification, §5.2.1 birth-phase
details, §5.2 7-rival comparison, §5.2 L4 sketch, §5.2 10 L1 hooks
(B1-B10), §A continuity-recovery protocol. Adds explicit
L0-constraint-satisfaction check table.
- **`L1_TRAJECTORY.md`** (DRAFT 1, 10 KB):
Receives DRAFT 4's §5.3 trajectory specification, §5.3.1 clusterer
coupling, §5.3.2 schema-evolution epochs, §5.3.3 thread_id
orthogonal grouping, §5.3.4 cold-start codification, §H L1 hooks.
Adds candidate clustering algorithms + L2/L3 deferred items.
### Modified files
- **`L0_VISION.md`**: 1117 → 656 lines (-461). Restructured:
- §1: tighter; mechanism choices explicitly flagged as L1 territory
- §2: P1-P9 unchanged
- §3: "Not request/response" added (negative space)
- §4: 8 invariants unchanged (the merge was DRAFT-4 work)
- §5: split into §5.1 lexicon (kept) + §5.2 dispatch constraints
only (negative + must-have) + §5.3 intent negative commitment
only. All positive mechanism moved to L1_TROPISM / L1_TRAJECTORY.
- §6: refined to explicitly distinguish substrate-no-session
(L0 commitment) from host-session-reality (out of L0 scope).
Resolves A2 + A3 from prior self-audit.
- §7: 6 base + 1 composite (signal #7 prediction-accuracy moved
to L1 as tropism-specific). Signal #6 attestation cross-check
added (resolves B1 self-audit). Signal #3 generalized from
"appetite-activity diversity" (tropism-specific) to
"read-pattern diversity" (form-agnostic).
- §8: trimmed; host-intermittency caveats explicit.
- §9: amended L0 change protocol — L1 prototyping may surface L0
revision needs (resolves D1 self-audit).
- §10: glossary trimmed; v0.9-vs-DRAFT-N naming explicit.
- **`L1_OUTLINE.md`**: 384 → 199 lines (-185). Restructured into a
charter listing the 7-doc L1 set with current status, the L0→L1
coverage table, the dependency-ordered drafting plan for the
remaining 5 docs (L1_SCHEMA, L1_GOVERNANCE, L1_SKIN, L1_CONTINUITY,
L1_HARD_RULES).
## 13 self-audit problems addressed (from prior turn)
| # | Problem | Resolution |
|---|---|---|
| A1 | L1 content stuffed in L0 | Entire rework (L0 now 656 lines, mechanism content in L1) |
| A2 | Continuous-online vs reality | §6 explicit substrate-level vs host-level session distinction |
| A3 | No-session vs host-session | §6 + §3 + §8 explicit boundaries |
| B1 | Signal #6 unattested computation | §7 explicit attest-with-cross-check |
| B2 | Token vs discrim-attr fuzziness | I1 explicit ephemeral-token vs persistent-discrim split |
| B3 | Vector vs no-RPC tension | I6 embedding-model carve-out (local OR managed-attested) |
| C1 | Schema-evolution-failure | P3 rollback clause + DAG event recording |
| C2 | Compute budget unmentioned | §6 dormancy throttle + L1_TROPISM §A2 |
| C3 | Federation discovery hand-waved | P8 enumerates candidate modes (P2P/attested/registry/hybrid) |
| D1 | Paper-not-code risk | §9.2 amended: L1 prototyping may surface L0 revision needs |
| D2 | Verb-abandonment over-reach | Rework itself: L0 only commits "not verbs", L1 picks positive |
| E1 | Lexicon carve-out ad-hoc | §5.1 explicit principle ("terms mycology literature uses to describe real fungal phenomena") |
## What changed vs DRAFT 4
- **Doctrine unchanged**: 9 root principles + 8 invariants stand
(these were validated in prior pressure-tests and survive).
- **Mechanism moved**: tropism + trajectory specifications now live
in L1 docs, not L0.
- **Naming cleaned**: no more "v0.X" doc-version confusion.
- **L0 now reads as identity layer**: 656 lines of commitments,
not specifications.
## File deltas
```
L0_VISION.md : 1117 → 656 lines (-461; 41% reduction)
L1_OUTLINE.md : 384 → 199 lines (-185; rewritten as charter)
L1_TROPISM.md : NEW → 339 lines
L1_TRAJECTORY.md: NEW → 187 lines
```
Net new content: ~526 lines (L1 specifics that were buried in L0).
Net removed: ~646 lines from L0.
Total doctrine size roughly unchanged; clarity dramatically improved.
## Pending owner action
Owner reviews L0 DRAFT 5 + L1_TROPISM DRAFT 1 + L1_TRAJECTORY DRAFT 1
+ L1_OUTLINE charter. On approval:
- L0 seals (no further drafts).
- Remaining 5 L1 docs drafted in dependency order: L1_SCHEMA →
L1_GOVERNANCE → L1_SKIN → L1_CONTINUITY → L1_HARD_RULES.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bumps the actions-all group with 1 update in the / directory: [github/codeql-action](https://github.com/github/codeql-action). Updates `github/codeql-action` from 4.35.3 to 4.35.5 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@e46ed2c...9e0d7b8) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions-all ... Signed-off-by: dependabot[bot] <support@github.com>
5608c13 to
3d9066a
Compare
Battam1111
pushed a commit
that referenced
this pull request
May 19, 2026
…ion)
Owner asked "是我们对'理想'的认知全面且正确吗?" This Phase α answers it
honestly via three artifacts:
1. **docs/audits/phase_alpha_audit_2026-05-15.md** — comprehensive audit
exposing the truth: L0+L1+L2 doctrine is far more complete than I had
represented in memory snapshots, BUT implementation has drifted from
spec in three measurable ways:
a) **C-row label drift**: 7/20 immune-sporocarp tags truly match
L1_HARD_RULES §1 (C5/C6/C7/C9/C14/C17/C18). Five are
mislabeled at currently-occupied C-row numbers:
- C2_handshake_pubkey_mismatch (L1's C2 = output_endpoint_breach)
- C12_cycle_step_failed (L1's C12 = successor_activation_with_fresh_owner_heartbeat)
- C19_substrate_state_orphan_detected (L1's C19 = paused_dormancy_unsafe_host)
- C20_federation_identity_mismatch (L1's C20 = genesis_attestation_chain_broken)
- C21_birth_period_violation (catalog ends at C20)
Honest count: 7/20 = 35% spec coverage, NOT 12/20 = 60%.
b) **F-row fixed-points** (F1-F17 unconditionally CI per L1_HARD_RULES §2):
1 effectively OK (canonical_bytes_serializer), 5 partial, 11 not
enforced. The substrate has no mutation gate for its own
contract-identity-level fixed-points.
c) **L2_OBSERVABILITY observatory (6 signals + composite + drill
baseline + cycle backlog + doctrine burst)**: 0% implemented.
The substrate is BLIND TO ITSELF — has not yet been given eyes.
Real L0 gaps surviving the audit (vs my pre-audit candidates):
- Embodiment (no physical sensor/actuator notion)
- Energy economics (no computational cost as resource)
- Mesh federation between UNRELATED substrates (P5+P8 cover
reproductive lineage only)
- Aging / senescence (mortality is binary)
- Selective forgetting (I4 append-only; no privacy/efficiency forget)
- Self-model beyond I3 self-validation
- Conflict / competition (all peers cooperative by doctrine)
Revised distance-to-ideal estimate: **~63-65%** (down from 70-72%).
Direction: design more complete than I claimed (+3%), implementation
less aligned than I claimed (-4%), observatory at 0% (-5%).
2. **kernel/bridge/src/protocol.rs**: new bridge message constants
QUERY_SUBSTRATE_OBSERVATORY + _RESPONSE.
3. **myco_substrate/src/server.rs**: handle_query_substrate_observatory
implementing L2_OBSERVABILITY §2 signals #1 (persistence budget:
dag_node_count + dag_edge_count + dag_total_content_bytes +
manifest_cycle_counter) and #6 (read-window-relative position:
substrate_total_bytes / operator_attested_context_window_bytes,
ratio as repr-float for cross-language determinism).
Signal #6 emits "inf" ratio when context window is 0 (substrate
has unbounded headroom). Both signals computed O(N) over DAG;
caching is M25+ work if performance demands it.
This is the FIRST observatory primitive. The substrate can now
answer two questions:
- "How big am I?" (signal #1)
- "Do I fit in agent context?" (signal #6)
Signals 2-5 + composite are M25 work. This down payment proves
Phase α isn't paperwork.
4. **3 Phase α e2e tests** in substrate_e2e.rs:
- phase_alpha_observatory_signal_1_basic_persistence_budget
- phase_alpha_observatory_signal_6_computes_ratio_when_window_attested
- phase_alpha_observatory_signal_6_handles_zero_window
Test totals: Rust 384 → 387 (+3); Python/TS unchanged.
The next direction (revised per §6 of the audit):
- M24.0: C-row label reconciliation (rename drifted detectors,
free C2/C12/C19/C20 for L1-specified meanings)
- M24: Cycle backlog detection (L2_OBSERVABILITY §7)
- M25: Full Living Bets observatory (signals 2-5 + composite)
- M26: Drill failure-rate baseline (L2_OBSERVABILITY §6)
- M27: Doctrine-instability burst detection (L2_OBSERVABILITY §8)
- DEFER: cross-pollination, autonomous evolution, vector retrieval
— these wait until substrate can see itself
First give the substrate eyes. Then debate giving it a brain.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Battam1111
pushed a commit
that referenced
this pull request
May 19, 2026
Per Phase β audit priority rewrite: build drift-detection BEFORE shipping more features. M24 closes 5 of the 6 planned sub-phases; M24.3 (snapshot.cb integrity) + M24.6 (doctrine-instability burst) deferred to M25 with explicit rationale. ## Shipped ### M24.1 — C-row label reconciliation The Phase β audit confirmed 5 immune sporocarp tags occupy L1_HARD_RULES C2/C12/C19/C20/C21 with substrate-private semantics — labeling drift. M24.1 renames to C30-C35 substrate-private namespace, freeing the L1-reserved numbers for their formal catalog meanings (output_endpoint_breach / successor_activation_with_fresh_owner_heartbeat / paused_dormancy_unsafe_host / genesis_attestation_chain_broken). Renames: - C2_handshake_pubkey_mismatch -> C30_handshake_pubkey_mismatch - C12_cycle_step_failed -> C31_cycle_step_failed - C19_substrate_state_orphan_detected -> C32_substrate_state_orphan_detected - C20_federation_identity_mismatch_detected -> C33_federation_peer_identity_mismatch - C21_birth_period_violation_detected -> C34_birth_period_violation_during_quarantine - C22_federation_substrate_private_event_injection (added in Phase β) -> C35_federation_substrate_private_event_injection Tests + docs updated. events.rs now documents the C-row namespace convention (C1-C20 reserved for L1_HARD_RULES; C30+ substrate-private). ### M24.2 — REVEAL keypair envelope substrate_id binding (Phase β deferred fix) Pre-fix: signing input was canonical_bytes(Map(context=myco-reveal-key-binding-v1, reveal_pubkey)). Cross-substrate replay attack: same operator pubkey pinned on substrate A and B; signature for A replayable against B. Fix: signing input bumped to v2, adds substrate_id binding. Mirrors M23.2 self_euthanasia construction. TS-side change: revealKeyBindingSigningInput(revealPubkey, substrateId). New helper SubstrateClient.querySubstrateId() reads substrate_id from genesis_event DAG node. Existing M14 tests updated to use new helper + pass substrateId. ### M24.4 — Cycle backlog detection (L2_OBSERVABILITY §7) Wire kernel/continuity::CycleEngine::record_backlog / is_backlogged into handle_advance. After each cycle, measure wall-clock duration; if >5s (alive-tier budget), increment backlog. On crossing threshold (default 10), emit C36_cycle_backlog immune sporocarp. handle_advance response now includes cycle_duration_ms field (operator visibility). ### M24.5 — Living Bets observatory signals 2/3/4 + composite #7 Phase α shipped signals #1 (persistence budget) + #6 (read-window ratio). M24.5 adds: - signal #2 evolution_rate: evolution_event_count (axis_registered + evolution_succeeded + evolution_failed) + per-cycle rate - signal #3 read_pattern_diversity: distinct axis names appearing in axis_perturbed (proxy) - signal #4 federation_health: 4a (cumulative fork count; placeholder for M25), 4b (reachable Established peer count), federation_received total - signal #7 composite_health_score: weighted aggregate of #1 (node count, log-scale) + #2 (evolution rate, log-scale) + #4b (peer count, log-scale). Weights 0.4/0.3/0.3 placeholder; M25 replaces with emergent weights per L0 §7 line 357. observatory_format_version bumped from 1 to 2. Signals 5 (time trend) + bet_weakening_quorum predicate deferred to M25 (require historical signal series, which is a separate observatory subsystem). ## Deferred to M25 ### M24.3 — snapshot.cb integrity check Phase β identified snapshot.cb has no integrity validation: a local attacker who can write state_dir can poison the snapshot to inject a different pinned_operator_identity at next boot. Proper fix requires either (a) substrate-private signing keypair (M26+ Ed25519 federation auth work needs the same primitive), or (b) DAG-replay-on-load consistency check (defeats the snapshot optimization). M24.3 deferred to M25 alongside Ed25519 keypair work — both can use the new private key. Mitigation in this commit: documented as KNOWN ISSUE. ### M24.6 — Doctrine-instability burst detector L2_OBSERVABILITY §8: track rate of L0/L1 revisions over rolling window; if above threshold, emit doctrine_instability immune signal. Requires an operator-driven doctrine_revision DAG event flow (substrate doesn't directly observe git commits). M25 work. ## Test totals | Layer | Before | After | Delta | |---|---|---|---| | Rust workspace | 389 | 392 | +3 (M24.5 observatory tests) | | Python kernel | 361 | 361 | 0 | | TS anchor_client | 162 | 162 | 0 | | TS operator_bindings | 135 | 135 | 0 (querySubstrateId helper added but exercised through existing M14 tests) | | **TOTAL** | **1047** | **1050** | **+3** | ## M25+ roadmap (revised after M24) - M25.0: M24.3 snapshot.cb integrity check (using new substrate-private keypair primitive) - M25.1: M24.6 doctrine-instability burst detector - M25.2: observatory signal #5 time trends + bet_weakening_quorum predicate + 90-day window quorum logic - M25.3: emergent weight derivation for composite health score (replaces M24.5 placeholder) - M25.4: Ed25519 federation mutual auth (substrate-private signing keypair) - M25.5: TS operator_bindings catch-up — 14 missing message-pairs (federation/quarantine/euthanasia/observatory) - M26: drill_failure_rate baseline + sporocarp causal_in_edges proof tuple (I4 closure) First the substrate sees itself (Phase α: signals #1+#6; M24: signals #2/#3/#4/#7 + backlog). Then it watches itself drift (M25: signal #5 trends + bet_weakening_quorum). Then doctrine evolution is observable (M25.1 doctrine burst). Only after that is the substrate ready to be given autonomy / evolution / cross-pollination features that require trusting its self-observation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Battam1111
pushed a commit
that referenced
this pull request
May 19, 2026
Atomic milestone closing the 4 Phase β-deferred critical security gaps and completing the Living Bets observatory per L0 §7 + L2_OBSERVABILITY: - M25.0 snapshot.cb integrity via substrate-private Ed25519 signing keypair; new substrate_signing_key.cb state-dir file; cross-substrate snapshot copies now rejected with C38_snapshot_integrity_violation - M25.1 doctrine-instability burst detector (L2_OBSERVABILITY §8) emits signal_8_doctrine_revision_burst + C37 immune sporocarp on >10 CI events / 100 cycles - M25.2 signal #5 time trends + bet_weakening_quorum predicate (L0 §7 falsifiability mechanism); per-cycle observatory_history (90-cap VecDeque); when >=3 signals trend against the bet AND signal #6 <1 for >=50% of window, substrate auto-emits C40 + positive bet_weakening_quorum_quorum:{cycle} DAG event - M25.3 emergent composite weights replacing 0.4/0.3/0.3 hardcoded with normalized-stddev-derived weights per L0 §7 line 357; cold start falls back to equal weights until history accumulates - M25.4 Ed25519 federation mutual auth via FED_HELLO signatures with pinned signer_pubkey on reconnect; legacy peers (no signature) fall back to TOFU + observability marker; tampered signatures emit C39 - M25.5 TS operator_bindings 10 method-pair catch-up (federation + observatory + mortality + signing helpers) Observatory format_version bumped 2 -> 3. State-dir layout evolves M21.4 commitment: dag.cb stays sole event SSoT, but persistent files are allowed iff DAG-derivable cache (snapshot.cb) OR substrate-private secret (substrate_signing_key.cb). C-row substrate-private namespace extended to C30-C40; resolved C38 collision by renaming bet_weakening_quorum to C40 (C38 reserved for snapshot_integrity_violation). Test totals: 1094 passing / 0 failing (Rust 424 + Python 361 + TS anchor 162 + TS ops 147). +44 over M24 baseline. Critical security state: 5 of 5 Phase β findings now closed; remaining items (state_dir umask, CSPRNG) are defense-in-depth deferred to M26. L0 9 principle progress: P3 55->60, P8 45->50, P9 58->70; arithmetic mean 77 -> 79.1; weakest-link 45 -> 50; machine-confirmable distance to ideal 66-68% -> 72-75%. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Battam1111
pushed a commit
that referenced
this pull request
May 19, 2026
Recurring meta-doubt from owner ("is our ideal comprehensive and correct?")
triggered third audit phase, mirroring Phase alpha + Phase beta pattern.
Phase gamma round-1 (6 opus agents in parallel, ~180 findings, 23 CRITICAL):
- gamma.1 doctrine drift: 13 sub-clauses untracked in M25 snapshot
- gamma.2 M25 fidelity: 5+ CRITICAL bugs (signal_8 field-name break,
signal_7 weights structure break, M25.2 90-cycle vs 90-day, signal #6
direction inversion, FED_HELLO signature optional bypass)
- gamma.3 12 new structural gaps (G8-G19): adversarial owner, owner
mortality, time semantics, forkbomb, anchor client DR, aged Living Bets
seed, liveness, substrate_id collision, backup privacy, doctrine
self-consistency, catastrophic forgetting, single-skin failure
- gamma.4 stranded libraries: kernel/skin lib correct substrate wrong;
kernel/continuity::DormancyMachine lib correct ad-hoc sufficient;
kernel/governance::classifier NOT stranded (Phase beta was wrong)
- gamma.5 anchor surface: 9 of 11 sec.9 sub-clauses 0-30% mechanically
enforced; operator-IS-anchor collapse; needs 5 milestones not 1
- gamma.6 meta-framework: 6 missing principles, sec.1 species claim
FALSE in 4 ways, Living Bets bet already weak at 1M-context
L0 DRAFT 9 PROPOSAL v2 written (was DRAFT 8 since 2026-05-13):
- 15 principles (was 9): added P10 Selective Compression + P11 Metabolic
Economy + P12 Differential Response + P13 Embodiment + P14 Telos
(agent-symbiotic-flourishing) + P15 Population-Level Consensus
- 12 invariants (was 8): added I9 Compression Discipline + I10
Metabolic-Economy Observation + I11 Differential-Response Discipline
+ I12 Telos Alignment
- 4 new L0 sections: sec.13 Time Semantics, sec.14 Adversarial Owner
Threat Model, sec.15 Owner Mortality + Succession, sec.16 Generation
Limits
- sec.9 anchor surface decomposed into 6 sub-mechanisms + 5 M-anchor
milestones
- sec.7 Living Bets recalibrated: intelligence band, cost-justified
value, bet retirement
- P1 renamed Only For Agent -> Agent-Primary (drops false 人类无感知)
- P2 renamed Eternal Ingestion -> Eternal Ingestion (Envelope-Gated)
- P3 renamed Eternal Evolution -> Resumable Evolution
- P5 renamed Universal Interconnection -> Universal Interconnection
(Tier-Exempt-Permitted)
- P9 renamed Integument -> Single Integument
- sec.1 species claim retracted from literal taxonomic class to
biology-rooted symbiotic digital substrate
Phase gamma round-2 (6 fungal critics on DRAFT 9 v1, ~223 findings, 54
CRITICAL): mycorrhiza 32/6 + saprotroph 49/8 + mycoparasite 39/11 +
rhizomorph 35/13 + hypha 35/8 + primordium 33/8. DRAFT 9 v2 applies 12
structural CRITICAL fixes (sec.7.1 mutual-constitution vs P1.c
asymmetric-carrier contradiction; signal numbering ordinal discipline;
quorum trend OLS definition; birth-period exemptions for sec.7 quorum +
P12.b + P14.c; P10/P11 deadlock resolution via ordered fallback; sec.15
anchor-surface-availability gate; alive sub-states enumeration; sec.7.5
bet-retirement counter-reset and proposal-vs-execution clarity).
Remaining 42 CRITICALs deferred to:
- Owner-decision gates G-1 through G-11 (sec.17): saprotroph retraction
proposal, mycoparasite seal-vs-vulnerability, mycorrhiza
relationship-type-naming
- Cascade work (L1/L2/L3 alignment): 17 files audited, ~140 sections
flagged, 11 HIGH-impact, ~30-40 atomic commits, ~40-55 hours
Honest distance to ideal RETRACTED from M25 claim:
- M25 snapshot: 72-75% machine-confirmable (over-credit)
- Phase gamma honest: ~50-55% mean / ~25% weakest-link (P1 anchor
surface collapsed)
- Framework completeness (DRAFT 8 was 9/15 essential principles): ~60%
Phase gamma deliverables:
- docs/architecture/L0_VISION.md DRAFT 9 v2 (~1100 lines, replaces
DRAFT 8)
- docs/audits/phase_gamma_audit_2026-05-17.md (~793 lines, 16 sections)
- docs/audits/phase_gamma_cascade_list_2026-05-17.md (17 files, ~140
sections flagged)
M26+ roadmap revised: M26 cascade alignment + M-anchor-1 through
M-anchor-5 + M25 bug fixes (gated on owner G-9/G-10 decisions); M27
stranded library wire-in (classifier removed from backlog per gamma.4
correction); M28+ deferred features unchanged.
The meta-pattern continues: Phase alpha (maintainer-model drift) + Phase
beta (implementation drift) + Phase gamma (doctrinal blind spots +
ideal-set incompleteness). Each phase finds a new drift class.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Battam1111
pushed a commit
that referenced
this pull request
May 19, 2026
… signing-key sealing) Closes Phase γ.2 audit findings deferred from M25. Phase B structural refactor (commit 507649b) cleaned the architecture; M26.1 ships the functional + security fixes. Test totals: 424 → 430 passed (+6 net new tests), 0 failed. C1 — signal_8 field-name break (cross-language) Rust emitted `signal_8_doctrine_revision_burst` but TS parsed `signal_8_doctrine_burst`. TS clients silently received zero doctrine-burst data. FIX: TS canonical name aligned to Rust. Update at operator_bindings/claude_code/src/protocol/messages.ts L1293. C2 — signal_7 weights field-structure break Rust emitted 3 flat sibling keys (weight_signal_N_repr); TS expected nested `weights` Map. FIX: Rust now emits nested Map matching TS parser. Tests updated to look up `signal_7.weights.{signal_1,signal_2,signal_4b}`. C3 — 90-cycle vs 90-day window (off by 4-6 orders of magnitude) observatory.rs used substrate-cycle counter; L0 §7.4.a + §13.1 require wall-clock 90 days. FIX: parameter renamed `burst_window_unix_ns: i64` (default 90 days in nanoseconds). Cycle-cutoff derived from observatory_history's cycle↔unix_ns mapping. INTERIM: substrate-process wall-clock used (M-anchor-3 promotes to anchor-stamped wall-clock per L0 §13.1). Signal #8 payload field renamed ci_events_recent_100_cycles → ci_events_in_burst_window. C4 — signal #6 direction comment misrepresented spec Behavior was correct (sig_6_dir=="down" counts against bet) but comment claimed opposite, creating risk of incorrect "fix". FIX: comment rewritten to match L2_OBSERVABILITY §2.1 + algorithms/bet_weakening_quorum.md. Behavior unchanged. C5 — FED_HELLO signature OPTIONAL = TOFU bypass attack Attacker could omit signature → fallback to legacy TOFU pinning, defeating M25.4 mutual auth entirely. FIX: legacy peers REJECTED by default with C39 sub-grade `missing_required_signature`. New field FederationState.accept_legacy_peers (default false). Env var MYCO_ACCEPT_LEGACY_PEERS=1 enables transition-period override. Long-term TODO: CI-attested override per L1_GOVERNANCE. Pre-existing M25.4 legacy-compat test inverted to assert default-deny + C39 evidence; new ..._accepted_with_env_override test retains coverage of override path. C6 — substrate_signing_key.cb unsealed (L1_HARD_RULES C4 violation) Seed file written with default OS permissions; readable by any user process. Full OS sealing (TPM/Secure Enclave/keyring/DPAPI) deferred to M-anchor-1; interim defense via restrictive file mode. FIX: - Unix (#[cfg(unix)]): chmod 0600 after atomic rename (restrict_secret_file_permissions helper) - Windows: gated no-op + permission check reports "restrictive" (ACL hardening deferred to M-anchor-1) - Load-time verification: substrate_secret_permissions_are _restrictive() checks mode & 0o077; loose mode triggers C4_substrate_secret_unsealed immune sporocarp + in-place tightening via tighten_substrate_signing_key_permissions() - boot_or_genesis_substrate_signing_key_with_permission_status() returns (seed, was_restrictive) for post-ServerState C4 emission Test additions (11 new test functions; 1 pre-existing test inverted): C5 unit (4): m26_1_c5_default_rejects_legacy_peers, ..._env_var_1_enables_override, ..._env_var_true_enables_override, ..._env_var_garbage_keeps_default_deny (env-mutex serialized) C5 e2e (2): m26_1_c5_legacy_hello_rejected_by_default, m26_1_c5_legacy_hello_accepted_with_env_override C6 unit (5; 4 Unix-only + 1 portable): m26_1_c6_save_writes_seed_with_0600_mode (Unix), m26_1_c6_loose_mode_reported_by_permission_check (Unix), m26_1_c6_tighten_in_place_restores_0600 (Unix), m26_1_c6_boot_helper_reports_loose_mode (Unix), m26_1_c6_genesis_path_reports_restrictive (portable) C6 e2e (1; Unix-only): m26_1_c6_loose_seed_emits_c4_and_tightens Files modified: - myco_substrate/src/observatory.rs (C2 nested weights + C3 wall-clock + C4 comment) - myco_substrate/src/federation/mod.rs (C5 accept_legacy_peers + reject policy + tests) - myco_substrate/src/persistence.rs (C6 chmod 0600 + permission check + tests) - myco_substrate/src/server.rs (C5 federation env-policy constructor + C6 boot-path probe) - myco_substrate/tests/substrate_e2e.rs (C2 weights test rewrites + C3 ci_events field rename + C5 e2e tests + C6 e2e test + spawn_substrate_with_env helper) - operator_bindings/claude_code/src/protocol/messages.ts (C1 signal_8 canonical name) Verification: - cargo test --workspace --release: 430 passed / 0 failed (Windows; +5 Unix-only tests register on Linux/macOS CI) - npm test (operator_bindings/claude_code): 147 passed / 0 failed - All 6 bugs documented with audit-citation comments Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Bumps the actions-all group with 1 update in the / directory: github/codeql-action.
Updates
github/codeql-actionfrom 4.35.3 to 4.35.5Release notes
Sourced from github/codeql-action's releases.
Changelog
Sourced from github/codeql-action's changelog.
... (truncated)
Commits
9e0d7b8Merge pull request #3905 from github/update-v4.35.5-d4b4855156d7d599Add changelog entry for #389951f7e38Update changelog for v4.35.5d4b4855Merge pull request #3899 from github/mbg/esbuild/split127de81Merge remote-tracking branch 'origin/main' into mbg/esbuild/split7fde13fUse src + basename in header to avoid issues on Windowsdfa61e7Improve pattern matching and error handling52aafecImport and callrunWrappernormally inanalyzetests0d08c01Auto-generate shared bundle14085a6Auto-generate entry points