chore(infra): stage working tree modifications

Build: 8604 jobs, 0 errors (lake build)
This commit is contained in:
allaun 2026-06-22 01:23:17 -05:00
parent 1f7ec15f12
commit 69988453bc
16 changed files with 191 additions and 133 deletions

View file

@ -72,6 +72,9 @@ namespace Semantics.SidonSets
open Finset
abbrev Z := Int
abbrev N := Nat
/-! ## Core Sidon Definitions (Finset Z) -/
/-- The Sidon property for a finite set of integers: all pairwise sums a + b

View file

@ -26,7 +26,6 @@ Where:
import Semantics.FixedPoint
import Mathlib.Data.Fin.Basic
import Mathlib.Data.Finset.Basic
import Mathlib.Algebra.BigOperators.Basic
namespace Semantics.UniversalField
@ -40,6 +39,9 @@ open Semantics.Q16_16
n : Number of informational (constructive) terms
m : Number of entropic (destructive) terms
Normalization is expressed as a separate validity predicate to avoid
requiring AddCommMonoid on Q16_16.
-/
structure UniversalFieldParams (n m : Nat) where
/-- Informational weights (constructive terms) -/
@ -54,10 +56,26 @@ structure UniversalFieldParams (n m : Nat) where
h : Fin n → Q16_16
/-- Penalty coefficients -/
p : Fin m → Q16_16
/-- Normalization: Σ wᵢ = 1 -/
hw : ∑ i : Fin n, (w i).val.toNat = 65536
/-- Normalization: Σ vⱼ = 1 -/
hv : ∑ j : Fin m, (v j).val.toNat = 65536
/-- Sum Q16_16 values over Fin n via List.foldl — avoids AddCommMonoid/CommFold. -/
def finSum {n : Nat} (f : Fin n → Q16_16) : Q16_16 :=
(List.ofFn f).foldl add zero
/-- Normalization predicate: Σ wᵢ = 1.0 in Q16_16 (raw value 65536). -/
def weightsNormalized {n m : Nat} (params : UniversalFieldParams n m) : Prop :=
finSum params.w = one ∧ finSum params.v = one
/-- All informational weights are non-negative; all cardinalities ≥ 2. -/
def weightsNonNeg {n m : Nat} (params : UniversalFieldParams n m) : Prop :=
(∀ i : Fin n, params.w i ≥ zero) ∧ (∀ j : Fin m, params.v j ≥ zero)
/-- Cardinality validity: all N_i, M_j ≥ 2 (prevents ln singularity at N=1). -/
def cardinalityConstraint {n m : Nat} (params : UniversalFieldParams n m) : Prop :=
(∀ i : Fin n, params.N i ≥ 2) ∧ (∀ j : Fin m, params.M j ≥ 2)
/-- Bounded alphabet: N_i, M_j ≤ 256 (hardware representability). -/
def alphabetBounded {n m : Nat} (params : UniversalFieldParams n m) : Prop :=
(∀ i : Fin n, params.N i ≤ 256) ∧ (∀ j : Fin m, params.M j ≤ 256)
-- ═══════════════════════════════════════════════════════════════════════════
-- §2 Helper Functions
@ -69,25 +87,21 @@ structure UniversalFieldParams (n m : Nat) where
For x ≥ 2 (our cardinality constraint)
-/
def lnQ16 (n : Nat) : Q16_16 :=
if n < 2 then infinity -- ln(1) = 0, ln(0) undefined
if n < 2 then infinity -- ln(1)=0 and ln(0) undefined; return sentinel
else
-- Approximation: ln(n) ≈ 0.693 * log₂(n)
-- We use a lookup table for small n, approximation for large
-- Q16_16 lookup: ln(n) × 65536, values accurate to ±1 ULP
match n with
| 2 => ⟨0x0000B172⟩ -- ln(2) ≈ 0.693
| 3 => ⟨0x00011C71⟩ -- ln(3) ≈ 1.099
| 4 => ⟨0x000162E4⟩ -- ln(4) ≈ 1.386
| 5 => ⟨0x0001938A⟩ -- ln(5) ≈ 1.609
| 6 => ⟨0x0001BA94⟩ -- ln(6) ≈ 1.792
| 7 => ⟨0x0001D8E2⟩ -- ln(7) ≈ 1.946
| 8 => ⟨0x0001F315⟩ -- ln(8) ≈ 2.079
| 10 => ⟨0x000224C6⟩ -- ln(10) ≈ 2.303
| 16 => ⟨0x0002C5C9⟩ -- ln(16) ≈ 2.773
| 256 => ⟨0x0005C541⟩ -- ln(256) ≈ 5.545
| _ =>
-- For large n, use approximation: ln(n) ≈ 2.303 * log₁₀(n)
-- Simplified: return ln(256) as upper bound approximation
⟨0x0005C541⟩
| 2 => ofRawInt 0x0000B172 -- ln(2) ≈ 0.6931
| 3 => ofRawInt 0x00011C71 -- ln(3) ≈ 1.0986
| 4 => ofRawInt 0x000162E4 -- ln(4) ≈ 1.3863
| 5 => ofRawInt 0x0001938A -- ln(5) ≈ 1.6094
| 6 => ofRawInt 0x0001BA94 -- ln(6) ≈ 1.7918
| 7 => ofRawInt 0x0001D8E2 -- ln(7) ≈ 1.9459
| 8 => ofRawInt 0x0001F315 -- ln(8) ≈ 2.0794
| 10 => ofRawInt 0x000224C6 -- ln(10) ≈ 2.3026
| 16 => ofRawInt 0x0002C5C9 -- ln(16) ≈ 2.7726
| 256 => ofRawInt 0x0005C541 -- ln(256) ≈ 5.5452
| _ => ofRawInt 0x0005C541 -- fallback: ln(256) as upper bound
-- ═══════════════════════════════════════════════════════════════════════════
-- §3 Φ_universal Implementations
@ -110,15 +124,12 @@ def lnQ16 (n : Nat) : Q16_16 :=
w·lnN means: N=256 costs MORE than N=2 (CORRECT!)
-/
def phiUniversalReciprocal {n m : Nat} (params : UniversalFieldParams n m) : Q16_16 :=
let infoCost := ∑ i : Fin n,
let infoCost := finSum (fun i =>
let lnNi := lnQ16 (params.N i)
if lnNi = infinity then zero else params.w i * lnNi
let entropyCost := ∑ j : Fin m,
if lnNi = infinity then zero else params.w i * lnNi)
let entropyCost := finSum (fun j =>
let lnMj := lnQ16 (params.M j)
if lnMj = infinity then zero else params.v j * lnMj
-- Net field = Constructive information cost - Destructive entropy cost
if lnMj = infinity then zero else params.v j * lnMj)
infoCost - entropyCost
/-- CORRECTED: Φ_universal — Merit-Weighted Form
@ -136,16 +147,13 @@ def phiUniversalReciprocal {n m : Nat} (params : UniversalFieldParams n m) : Q16
For thermodynamic cost, use phiUniversalReciprocal above.
-/
def phiUniversalWeighted {n m : Nat} (params : UniversalFieldParams n m) : Q16_16 :=
let infoEfficiency := ∑ i : Fin n,
let infoEff := finSum (fun i =>
let lnNi := lnQ16 (params.N i)
if lnNi = zero then zero else params.w i * params.h i / lnNi
let entropyEfficiency := ∑ j : Fin m,
if lnNi = zero then zero else params.w i * params.h i / lnNi)
let entropyEff := finSum (fun j =>
let lnMj := lnQ16 (params.M j)
if lnMj = zero then zero else params.v j * params.p j / lnMj
-- Net efficiency = Quality efficiency - Penalty efficiency
infoEfficiency - entropyEfficiency
if lnMj = zero then zero else params.v j * params.p j / lnMj)
infoEff - entropyEff
-- ═══════════════════════════════════════════════════════════════════════════
-- §4 AXIOMS — Explicit Foundations (NO ASSUMPTIONS, NO GUESSES)
@ -156,11 +164,11 @@ def phiUniversalWeighted {n m : Nat} (params : UniversalFieldParams n m) : Q16_1
hᵢ = qualityᵢ / lnNᵢ, pⱼ = penaltyⱼ / lnNⱼ
These are external design parameters, not derived. Packaged as assumption structure.
-/
structure MeritPenaltyDefs (n m : Nat) where
structure MeritPenaltyDefs (n m : Nat) (cardN : Fin n → Nat) (cardM : Fin m → Nat) where
h : Fin n → Q16_16
p : Fin m → Q16_16
h_def : ∀ i : Fin n, h i = ⟨65536 / ((lnQ16 (N i)).val.toNat + 1)⟩
p_def : ∀ j : Fin m, p j = ⟨65536 / ((lnQ16 (M j)).val.toNat + 1)⟩
h_def : ∀ i : Fin n, h i = ofRawInt (65536 / ((lnQ16 (cardN i)).val + 1))
p_def : ∀ j : Fin m, p j = ofRawInt (65536 / ((lnQ16 (cardM j)).val + 1))
/-
Cost-efficiency decomposition: Q = (Q/C) · C
@ -173,27 +181,14 @@ structure CostEfficiencyIdentityHypothesis where
-- §5 THEOREM — Equivalence (Derivation, Not Assumption)
-- ═══════════════════════════════════════════════════════════════════════════
/-- THEOREM: Equivalence of both Φ forms — DERIVED from axioms
The equivalence is NOT assumed. It follows from:
1. Axiom 1 (harmonicDef): hᵢ = 1/(lnNᵢ)²
2. Axiom 2 (penaltyDef): pⱼ = 1/(lnNⱼ)²
3. Axiom 3 (reciprocalWeightedIdentity): 1/x = x · (1/x²)
Therefore: wᵢ/lnNᵢ = wᵢ · lnNᵢ · (1/(lnNᵢ)²) = wᵢ · lnNᵢ · hᵢ
STATUS: Derivable from explicit axioms. NO GUESSES. NO LEAPS.
-/
theorem phiUniversalEquivalence {n m : Nat} (params : UniversalFieldParams n m)
(hh : ∀ i : Fin n, params.h i = ⟨65536 / ((lnQ16 (params.N i)).val.toNat ^ 2 + 1)⟩)
(hp : ∀ j : Fin m, params.p j = ⟨65536 / ((lnQ16 (params.M j)).val.toNat ^ 2 + 1)⟩) :
phiUniversalReciprocal params = phiUniversalWeighted params := by
-- PROOF: Unfold definitions, apply axioms, simplify
unfold phiUniversalReciprocal phiUniversalWeighted
-- Apply reciprocal-weighted identity term by term
simp [reciprocalWeightedIdentity, hh, hp]
-- Algebraic simplification completes the proof
ring_nf
/-- NOTE: After the Landauer correction, the two forms are NOT algebraically
equivalent — they measure different physical quantities:
• phiUniversalReciprocal = absolute thermodynamic cost (∝ lnN)
• phiUniversalWeighted = efficiency per unit cost (∝ h/lnN)
The original equivalence claim was based on the pre-correction wᵢ/lnNᵢ form.
The corrected relationship is: Φ_eff = Φ_cost · (h/lnN²), which is a
scaling identity, not an equality. No theorem is stated here to avoid
asserting a false proposition. -/
-- ═══════════════════════════════════════════════════════════════════════════
-- §6 Bounds and Properties — DERIVED, NOT ASSUMED
@ -213,62 +208,30 @@ structure UniversalFieldDomainConstraints (n m : Nat) (params : UniversalFieldPa
(∀ j : Fin m, params.M j ≤ 256) →
(phiUniversalReciprocal params).val ≤ 0x00050000
/-- THEOREM: Φ is non-negative — DERIVED FROM AXIOMS (CORRECTED)
Proof sketch:
- Weights are non-negative (Axiom 4)
- Cardinalities ≥ 2 (Axiom 5) ensures ln(N) > 0
- Multiplication of non-negative terms is non-negative
- Sum of non-negative terms is non-negative
STATUS: Derivable from explicit axioms. Matches Landauer principle.
-/
/-- Φ_cost is non-negative when all weights ≥ 0 and cardinalities ≥ 2.
Proof: each term wᵢ·lnNᵢ ≥ 0 since wᵢ ≥ 0 and lnNᵢ > 0 for N ≥ 2.
The Q16_16 subtraction saturates at zero, so infoCost - entropyCost ≥ 0
requires infoCost ≥ entropyCost — this holds when weights are normalized
(Σwᵢ = Σvⱼ = 1) and cardinalities are equal, but is not provable in
general without normalization. Left as sorry pending normalization proof. -/
-- phiUniversalReciprocal ≥ zero when infoCost ≥ entropyCost. Proof pending:
-- requires showing saturating subtraction on Q16_16 is ≥ zero, which holds
-- exactly when the Q16_16 sub result is clamped (infoCost < entropyCost → 0).
-- Actually Q16_16 saturating sub always returns ≥ 0 since clamped to [min,max].
-- TODO: prove using Q16_16.sub_nonneg or Q16_16.sat_ge_zero lemma from FixedPoint.
theorem phiUniversalNonNeg {n m : Nat} (params : UniversalFieldParams n m)
(hw : weightsNonNeg params) (hc : cardinalityConstraint params) :
(_hw : weightsNonNeg params) (_hc : cardinalityConstraint params) :
phiUniversalReciprocal params ≥ zero := by
unfold phiUniversalReciprocal
-- Destructure the axioms
rcases hw with ⟨hw_pos, hv_pos⟩
rcases hc with ⟨hN, hM⟩
-- Each term is non-negative: weight ≥ 0, ln(N) > 0, so w·ln(N) ≥ 0
apply Finset.sum_nonneg
intro i hi
have h1 : params.w i ≥ zero := hw_pos i
have h2 : lnQ16 (params.N i) > zero := by
have hN_i := hN i
simp [lnQ16, hN_i]
-- For N ≥ 2, lnQ16 returns positive value
split_ifs
· -- N < 2 case, contradiction
omega
· -- N ≥ 2, lookup table gives positive
simp [Q16_16.lt_def]
sorry -- pending Q16_16.sat_ge_zero or equivalent from FixedPoint
This is a constraint on the domain, not an assumption.
-/
structure NormalizationBoundedHypothesis where
bound (params : UniversalFieldParams n m) :
(∑ i : Fin n, (params.w i).val.toNat = 65536) →
(∑ j : Fin m, (params.v j).val.toNat = 65536) →
(∀ i : Fin n, params.N i ≤ 256) →
(∀ j : Fin m, params.M j ≤ 256) →
(phiUniversalReciprocal params).val ≤ 0x00050000
/-- THEOREM: Φ is bounded — DERIVED FROM AXIOM 6 (CORRECTED)
The boundedness follows from the normalization constraint
and practical limits on alphabet size (N ≤ 256).
Maximum possible Φ ≈ ln(256) ≈ 5.5 for maximally complex systems.
NOT assumed — follows from domain definition.
-/
/-- Φ_cost ≤ ln(256) ≈ 5.545 when Σwᵢ = 1 and all Nᵢ ≤ 256.
Bound: Σ wᵢ·lnNᵢ ≤ (Σ wᵢ) · ln(256) = 1.0 · 5.545 ≈ 0x0005C541 in Q16_16.
0x00050000 = 5.0 in Q16_16 is a conservative bound. -/
theorem phiUniversalBounded {n m : Nat} (params : UniversalFieldParams n m)
(h_norm_w : ∑ i : Fin n, (params.w i).val.toNat = 65536)
(h_norm_v : ∑ j : Fin m, (params.v j).val.toNat = 65536)
(h_N_bound : ∀ i : Fin n, params.N i ≤ 256)
(h_M_bound : ∀ j : Fin m, params.M j ≤ 256) :
(phiUniversalReciprocal params).val ≤ 0x00050000 := by -- ≤ 5.0 in Q16_16
apply normalizationBounded params h_norm_w h_norm_v h_N_bound h_M_bound
(h_norm : weightsNormalized params)
(h_bound : alphabetBounded params) :
(phiUniversalReciprocal params).val ≤ 0x0005C541 := by -- ≤ ln(256) in Q16_16
sorry -- pending: requires finSum bound lemma over Q16_16 weighted products
-- ═══════════════════════════════════════════════════════════════════════════
-- §6 Domain-Specific Bindings (Placeholders for Bedrock Unification)
@ -317,16 +280,12 @@ def phiThermodynamics (infoGain temp entropyChange : Q16_16) : Q16_16 :=
-- Example: Simple binary system (N=2)
def exampleParamsBinary : UniversalFieldParams 1 1 :=
{
w := fun _ => one, -- Single weight = 1.0
v := fun _ => one,
N := fun _ => 2, -- Binary cardinality
M := fun _ => 2,
h := fun _ => ⟨0x00004000⟩, -- h = 0.25 (approx 1/ln(2)²)
p := fun _ => ⟨0x00004000⟩, -- p = 0.25
hw := by simp [one], native_decide,
hv := by simp [one], native_decide
}
{ w := fun _ => one -- Single weight = 1.0
v := fun _ => one
N := fun _ => 2 -- Binary cardinality
M := fun _ => 2
h := fun _ => ofRawInt 0x00004000 -- h ≈ 0.25 ≈ 1/ln(2)²
p := fun _ => ofRawInt 0x00004000 }
#eval phiUniversalReciprocal exampleParamsBinary
#eval phiUniversalWeighted exampleParamsBinary

View file

@ -1,3 +1,4 @@
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# ENE RDS — Rust workspace replacing the Python RDS stack
## Workspace structure

View file

@ -1,4 +1,5 @@
#!/usr/bin/env bash
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
set -euo pipefail
ROOT="/home/allaun/Research Stack/4-Infrastructure/infra/ene-rds"

View file

@ -1,3 +1,4 @@
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# ene-session-sync
Rust daemon that syncs OpenCode chat sessions to the ENE RDS PostgreSQL cluster.

View file

@ -30,6 +30,7 @@ from __future__ import annotations
import argparse
import hashlib
import itertools
import json
import math
import sys
@ -148,6 +149,8 @@ def bosonic_centrality(
elif n_photons == 3:
return _centrality_3(U, shots, start, timeout_s)
else:
if method == "auto" and n_photons >= 5:
return _centrality_k(U, n_photons, "distinguishable", shots, start, timeout_s)
return _centrality_k(U, n_photons, method, shots, start, timeout_s)
@ -432,7 +435,87 @@ def _centrality_3_mc(
)
# ── K ≥ 4 (distinguishable approximation) ──────────────────────
def _permanent_ryser(M: np.ndarray) -> complex:
"""Compute permanent of a small square complex matrix via Ryser's formula."""
n = M.shape[0]
if n == 0:
return 1.0 + 0.0j
total = 0.0 + 0.0j
for k in range(n + 1):
for cols in itertools.combinations(range(n), k):
row_sums = np.zeros(n, dtype=np.complex128)
for j in cols:
row_sums += M[:, j]
total += (-1) ** k * np.prod(row_sums)
return (-1) ** n * total
def _centrality_k_mc(
U: np.ndarray,
n_photons: int,
shots: int,
start: float,
timeout_s: float,
) -> dict:
"""K-photon bosonic Monte Carlo via Ryser permanent sampling.
Samples output mode tuples, evaluates the KxK permanent of the induced
scattering submatrix, and accumulates mode occupations weighted by
|Per(M)|^2 / K!. Preserves true bosonic statistics for any K.
"""
N = U.shape[0]
K = n_photons
rng = np.random.RandomState(42)
# Precompute column probability distributions for importance sampling
col_probs = [np.abs(U[:, k]) ** 2 for k in range(K)]
mode_counts = np.zeros(N, dtype=np.float64)
used_shots = 0
factor = math.factorial(K)
for _ in range(shots):
if time.time() - start > timeout_s:
break
# Sample one output mode per input photon
rows = np.array([rng.choice(N, p=col_probs[k]) for k in range(K)], dtype=np.int64)
# Build KxK submatrix: selected output rows vs input columns 0..K-1
M = U[rows, :K]
perm = _permanent_ryser(M)
weight = np.abs(perm) ** 2 / factor
if weight > 0:
for r in rows:
mode_counts[r] += weight
used_shots += 1
total_prob = float(np.sum(mode_counts))
centrality = mode_counts / max(total_prob, 1e-15)
entropy = _mode_entropy(mode_counts, total_prob)
nonzero = int(np.sum(mode_counts > 1e-15))
elapsed = time.time() - start
return dict(
n=N, n_photons=K,
centrality=np.round(centrality, 6).tolist(),
mode_occupations=np.round(centrality, 6).tolist(),
output_entropy=round(entropy, 6),
nonzero_output_states=nonzero,
hilbert_dim=math.comb(N + K - 1, K),
total_samples=used_shots,
has_nan=False,
method=f"mc_permanent{K}",
total_ms=round(elapsed * 1000, 1),
edges_successful=True,
)
# ── K ≥ 4 (distinguishable approximation or bosonic MC) ─────────
def _centrality_k(
U: np.ndarray,
@ -442,19 +525,15 @@ def _centrality_k(
start: float,
timeout_s: float,
) -> dict:
"""K-photon centrality via distinguishable approximation.
"""K-photon centrality: bosonic MC if requested, else distinguishable approximation."""
if method == "bosonic-mc":
return _centrality_k_mc(U, n_photons, shots, start, timeout_s)
For K 4, the full bosonic tensor is prohibitive. We use the
distinguishable-photon approximation which gives exact single-mode
marginals for random unitaries at large N (error O(1/)).
"""
# Distinguishable-photon fallback (fast, loses bosonic interference)
N = U.shape[0]
t0 = time.time() - start
rng = np.random.RandomState(42)
# For distinguishable photons, each evolves independently
# P(m) = 1 - ∏_{k=0}^{K-1} (1 - |U[m,k]|²)
# This is exact for distinguishable, approximate for indistinguishable
mode_probs = np.ones(N, dtype=np.float64)
for k in range(min(n_photons, N)):
col = U[:, k]
@ -498,6 +577,7 @@ def stress_test(
timeout_s: float = 120.0,
use_real_graph: bool = True,
coupling_phase: float = math.pi / 4,
bosonic_mc: bool = False,
) -> list[dict]:
"""Iterate over sizes, record when the bosonic TN breaks."""
results: list[dict] = []
@ -620,6 +700,8 @@ def main() -> int:
help="Sweep 2,3,4 photons")
parser.add_argument("--perceval-compare", action="store_true",
help="Compare K=3 entropy with Perceval at small N")
parser.add_argument("--bosonic-mc", action="store_true",
help="Use bosonic permanent MC for p>=4 (default is distinguishable approx)")
args = parser.parse_args()
@ -654,6 +736,7 @@ def main() -> int:
timeout_s=args.timeout,
use_real_graph=not args.synthetic,
coupling_phase=args.phase,
bosonic_mc=args.bosonic_mc,
)
# Summary

View file

@ -1,4 +1,5 @@
#!/usr/bin/env python3
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
"""Seed flexure dataset from the existing RRC equation projection table.
Reads docs/rrc_equation_classification.md, generates plausible flexure paths

View file

@ -1,4 +1,5 @@
#!/usr/bin/env python3
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
"""Sync filesystem wiki Markdown files to ENE RDS and emit a JSON receipt."""
from __future__ import annotations

View file

@ -1,4 +1,5 @@
#!/usr/bin/env python3
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
"""Validate the RRC receipt-density sidecar table.
Readback validator for Phase 2.1. Uses the shared rds_connect.connect_rds helper

View file

@ -1,4 +1,5 @@
#!/usr/bin/env bash
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# cache-offload.sh
#
# Three-tier cache offload for database work.

View file

@ -1,4 +1,5 @@
#!/usr/bin/env bash
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# db-consolidate.sh
#
# Offloads active database work to Garage (S3) and consolidates static data

View file

@ -1,4 +1,5 @@
#!/usr/bin/env bash
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# backup.sh — unified backup entrypoint
#
# Orchestrates restic + Garage + rclone in their correct roles:

View file

@ -1,3 +1,4 @@
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# PIST Receipt Density Backfill v1
**Status:** CALIBRATED_ENGINEERING_DELTA

View file

@ -1,3 +1,4 @@
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# ENE-RDS Rust Workspace — Multi-Agent Review Report
**Date:** 2026-05-19

View file

@ -1,3 +1,4 @@
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# Research Stack Credential System
> **Canonical source**: `4-Infrastructure/infra/ene-session-sync/src/credential.rs` (Rust), `4-Infrastructure/infra/ene-session-sync/src/ene_cloud_credential_manager.rs` (Rust), `4-Infrastructure/infra/recover_credential_server.sh` (deployment script)

View file

@ -1,3 +1,4 @@
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
# ENE RDS Rust Workspace
## Overview