Skip to content

substrate: port-with-DST discipline + AceHack-LFG 0-diff invariant#43

Merged
AceHack merged 1 commit intomainfrom
acehack/port-with-dst-and-0-diff-invariant
Apr 27, 2026
Merged

substrate: port-with-DST discipline + AceHack-LFG 0-diff invariant#43
AceHack merged 1 commit intomainfrom
acehack/port-with-dst-and-0-diff-invariant

Conversation

@AceHack
Copy link
Copy Markdown
Owner

@AceHack AceHack commented Apr 27, 2026

Aaron 2026-04-27 two more clarifications:

Port-with-DST discipline — ../scratch and ../SQLSharp predate DST; their no-DST shape made debugging hard. Port the idea/feature/API, NOT the no-DST shape. Add DST (Otto-272) + pinned seeds (Otto-273) + flake-zero (Otto-248).

AceHack-LFG 0-diff invariant — long-horizon goal: 0-diff between AceHack and LFG main, OR a small enumerated allowlist of expected differences. Build a verification check under tools/sync/ that emits a classified report. 'Few' is part of the bar.

Substrate-only. No code change.

🤖 Generated with Claude Code

…nvariant

Aaron 2026-04-27 two more clarifications absorbed:

(5) Port-with-DST discipline: ../scratch and ../SQLSharp predate
    DST discovery; their no-DST shape made debugging hard. When
    porting, ADD DST (Otto-272) + pinned seeds (Otto-273) +
    flake-zero (Otto-248). Don't replicate the bad-debugging
    experience.

(6) AceHack-LFG diff-minimization invariant: long-horizon goal
    is 0-diff between AceHack and LFG main, OR a small enumerated
    allowlist of expected differences (.github/funding.yml, repo-
    name references, org-specific tokens). 'Few' is part of the
    bar.

Operational: build a 0-diff verification check under tools/sync/
that emits a report classifying each diff as expected
(allowlisted) or surprise (needs investigation). Sequenced after
laptop-source-integration (which may temporarily widen the diff).

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main
Co-Authored-By: Otto <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 27, 2026 15:24
@AceHack AceHack enabled auto-merge (squash) April 27, 2026 15:24
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AceHack AceHack merged commit 71aaff1 into main Apr 27, 2026
18 checks passed
@AceHack AceHack deleted the acehack/port-with-dst-and-0-diff-invariant branch April 27, 2026 15:26
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the project memory around install-script language strategy with two additional clarifications (DST-first porting discipline and AceHack↔LFG diff-minimization invariant), and refreshes the memory index entry accordingly.

Changes:

  • Add “port-with-DST” discipline guidance when porting shapes from ../scratch / ../SQLSharp (DST + pinned seeds + flake-zero).
  • Add the AceHack↔LFG diff-minimization/allowlist invariant and an operational plan to build a verification check under tools/sync/.
  • Update memory/MEMORY.md index entry to reference the new clarifications.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
memory/project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md Adds two new clarification sections (DST-first porting + AceHack/LFG diff-minimization invariant).
memory/MEMORY.md Updates the corresponding index entry to include the new clarifications.

Comment thread memory/MEMORY.md

- [Laptop-only-source integration HIGH PRIORITY — `../scratch` = future ACE PACKAGE MANAGER seed (22 files); `../SQLSharp` = pre-DBSP event-stream-processing with LINQ/SQL (14 files, predates Aaron's DBSP discovery, Zeta-progenitor); goal = either ship feature OR write detailed-enough design that we no longer need the reference; Aaron 2026-04-27 clarification: NOT literal copy-paste, self-contained-understanding floor; refined triage per directory identity — `../scratch` references absorb into canonical location or design-doc the Ace-package-manager intent; `../SQLSharp` references map to DBSP-rigorous Zeta equivalents or design-doc the gap; sequenced AFTER PR #26 sync](project_laptop_only_source_integration_scratch_sqlsharp_features_or_designs_high_priority_2026_04_27.md) — 2026-04-27 P1 backlog row; per-reference triage with three outcomes (ship / design-doc / delete-decorative); composes Otto-275 (log-but-don't-implement default to design when uncertain) + Otto-323/346 (NOT external deps, in-repo or eliminate) + Otto-340 (substrate IS identity); done = `git grep ../scratch` and `git grep ../SQLSharp` return zero matches; effort L (3+ days); closes with Aaron's "good job today!!" second positive validation; Aaron's third 2026-04-27 clarification reveals `../SQLSharp` features potentially subsumed by Zeta's DBSP-rigorous form (linq-expert + sql-expert + sql-engine-expert skills already track this class).
- [Install-script language strategy — pre-install bash + PowerShell (where users are with nothing installed) / post-install TypeScript (declarative state, type-safe) / Python only for AI-ML eventually; Aaron 2026-04-27 confirms after PR #26 INSTALLED.md Python row update validation; `../scratch` is future-declarative-state hint surface; `.mise.toml` is canonical pin source-of-truth](project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md) — 2026-04-27: composes Otto-215 (bun-TS migration) + Otto-235 (4-shell bash compat for pre-install) + Otto-247 (version currency) + Otto-323 (dependency symbiosis); pre-install structurally bash+PowerShell forever (no-runtime constraint); post-install migrates to TypeScript opportunistically; Python proposals AI/ML-test-gated; closes with Aaron's "Good job on everything" validation of the substrate-cluster Otto-354/355/356/357/358/359 + PR #26.
- [Install-script language strategy — pre-install bash + PowerShell (where users are with nothing installed) / post-install TypeScript (declarative state, type-safe) / Python only for AI-ML eventually; Aaron 2026-04-27 confirms after PR #26 INSTALLED.md Python row update validation; `../scratch` is future-declarative-state hint surface; `.mise.toml` is canonical pin source-of-truth; Aaron 2026-04-27 fifth clarification: port-with-DST discipline (NOT replicate the no-DST bad-behavior from `../scratch`/`../SQLSharp`); Aaron 2026-04-27 sixth clarification: AceHack-LFG diff-minimization invariant (0-diff or rigorously-accounted-for + few)](project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md) — 2026-04-27: composes Otto-215 (bun-TS migration) + Otto-235 (4-shell bash compat for pre-install) + Otto-247 (version currency) + Otto-272/273/281/248 (port-with-DST: DST-everywhere + seed-lock + DST-exempt-is-deferred-bug + never-ignore-flakes) + Otto-323 (dependency symbiosis); pre-install structurally bash+PowerShell forever (no-runtime constraint); post-install migrates to TypeScript opportunistically; Python proposals AI/ML-test-gated; closes with Aaron's "Good job on everything" validation of the substrate-cluster Otto-354/355/356/357/358/359 + PR #26.
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: memory/MEMORY.md is meant to be a terse, one-line-per-file index (per memory/README.md), but this entry has grown into a very long sentence with many clauses. Please shorten it (keep only the minimal label + key tags) and leave the detailed clarifications in the linked memory file so the index stays scannable and less likely to hit the ~200-line/truncation constraints.

Suggested change
- [Install-script language strategy — pre-install bash + PowerShell (where users are with nothing installed) / post-install TypeScript (declarative state, type-safe) / Python only for AI-ML eventually; Aaron 2026-04-27 confirms after PR #26 INSTALLED.md Python row update validation; `../scratch` is future-declarative-state hint surface; `.mise.toml` is canonical pin source-of-truth; Aaron 2026-04-27 fifth clarification: port-with-DST discipline (NOT replicate the no-DST bad-behavior from `../scratch`/`../SQLSharp`); Aaron 2026-04-27 sixth clarification: AceHack-LFG diff-minimization invariant (0-diff or rigorously-accounted-for + few)](project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md) — 2026-04-27: composes Otto-215 (bun-TS migration) + Otto-235 (4-shell bash compat for pre-install) + Otto-247 (version currency) + Otto-272/273/281/248 (port-with-DST: DST-everywhere + seed-lock + DST-exempt-is-deferred-bug + never-ignore-flakes) + Otto-323 (dependency symbiosis); pre-install structurally bash+PowerShell forever (no-runtime constraint); post-install migrates to TypeScript opportunistically; Python proposals AI/ML-test-gated; closes with Aaron's "Good job on everything" validation of the substrate-cluster Otto-354/355/356/357/358/359 + PR #26.
- [Install-script language strategy — bash / PowerShell / TypeScript / Python-for-AI-ML; DST; `.mise.toml`](project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md) — 2026-04-27.

Copilot uses AI. Check for mistakes.
AceHack added a commit that referenced this pull request Apr 27, 2026
Per Aaron 2026-04-27: 'no reason we don't change that nightly
job for slim to just trigger on every merge to main, it's free
for open source projects.'

The ubuntu-slim leg moved off per-PR gate (PR #43 / earlier
moved it to nightly) because it's ~7x slower than the regular
ubuntu-24.04 leg and times out at the 15-min runner-class cap
during PR review cycles.

But for post-merge to main, the elapsed time doesn't bottleneck
anything — main has already landed; the slim run is a drift
detector. Free for public repos (Otto-249 + Otto-210), so
running on every merge gives faster drift detection than
purely-nightly without cost.

New trigger surface:
  1. push to main (every merge) — primary drift detection
  2. daily 06:00 UTC schedule — backstop for weekend drift
  3. workflow_dispatch — manual ad-hoc verification

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main
Co-Authored-By: Otto <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…44)

Per Aaron 2026-04-27: 'no reason we don't change that nightly
job for slim to just trigger on every merge to main, it's free
for open source projects.'

The ubuntu-slim leg moved off per-PR gate (PR #43 / earlier
moved it to nightly) because it's ~7x slower than the regular
ubuntu-24.04 leg and times out at the 15-min runner-class cap
during PR review cycles.

But for post-merge to main, the elapsed time doesn't bottleneck
anything — main has already landed; the slim run is a drift
detector. Free for public repos (Otto-249 + Otto-210), so
running on every merge gives faster drift detection than
purely-nightly without cost.

New trigger surface:
  1. push to main (every merge) — primary drift detection
  2. daily 06:00 UTC schedule — backstop for weekend drift
  3. workflow_dispatch — manual ad-hoc verification

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main

Co-authored-by: Otto <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…ucent-Financial-Group#644 reviews (#47)

LFG Lucent-Financial-Group#644 (the AceHack #43+#44 sibling sync) accumulated three review
findings that improved low-memory.yml beyond what landed via #45:

1. Codex P2 + Copilot P1 — concurrency: constant \`group: low-memory\`
   + cancel-in-progress: false silently REPLACES older pending runs
   on burst pushes (GitHub keeps at most 1 running + 1 pending per
   group). Defeats the "every merge gets checked" goal.
   Fix: \`group: low-memory-\${{ github.sha }}\` — per-commit
   concurrency, parallel execution, no replacement.

2. Copilot P1 — timeout-minutes: 30 conflicts with the 15-min
   runner-class hard cap; raising timeout-minutes can't actually
   exceed the platform limit and misleads readers.
   Fix: timeout-minutes: 14 — one minute under the cap so the job
   fails gracefully with a proper Actions log before the platform
   kills it. Update the safe-pattern-compliance comment to match.

Both improvements were applied on the LFG Lucent-Financial-Group#644 branch in response
to the review threads. Backporting them to AceHack now keeps the
0-diff invariant from #43 — next AceHack→LFG sync round should
have zero workflow-file drift.

Standard runners are free for public repos (Otto-249), so the
parallel-runs cost is zero.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…nts (#48)

* ci(low-memory): close 0-diff drift on "What this workflow does" comment block

LFG main has comment improvements in low-memory.yml that didn't make
it back to AceHack via #47 (which only backported the concurrency +
timeout fixes). Close the residual drift:

- Add push-to-main bullet at the top of "What this workflow does"
- Add backstop parenthetical to schedule bullet
- Add ubuntu-slim-was-removed-from-gate.yml note explaining the no-
  duplicate-run guarantee

Per #43's diff-minimization invariant: AceHack and LFG should match
on main with any drift rigorously accounted for. After this lands,
\`git diff acehack/main..origin/main -- .github/workflows/low-memory.yml\`
should return zero.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(low-memory): match precise push-to-main wording in "What this workflow does" bullet (Copilot P2)

Copilot flagged the bullet's "every merge (primary trigger)" as
technically imprecise — the trigger is push.branches:[main] which
includes direct/force pushes if ever allowed. Match the more
precise wording used in the header (line 4-6) per the suggestion.

Now the bullet reads:
  push to main: runs on every push to main (in practice every
  merge; primary trigger).

Same imprecise wording is on LFG main (came in via LFG Lucent-Financial-Group#644). Will
forward-sync this fix to LFG via the next sibling sync to keep
0-diff.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…026-04-27) (#49)

Aaron 2026-04-27 conversation produced two paired substrate landings:

1. **0-diff is start line, until then we're hobbling** — AceHack-LFG
   content-divergence (53 files / 6065 lines) isn't polish; it's the
   gate to factory operational status. #43's diff-minimization
   invariant DEFINES "started." Reverse-sync work is high-priority,
   not optional cleanup.

2. **LFG=master, AceHack=0-divergence fork, double-hop** — strategic
   topology reframe replacing Option C's parallel-SHA-history-accepted
   model:
   - LFG is master/canonical/published source of truth.
   - AceHack is a pure fork: 0 commits ahead AND 0 commits behind LFG
     after every paired-sync round.
   - Double-hop workflow: work lands on AceHack first → forward-sync
     to LFG → hard-reset AceHack main = LFG main (AceHack absorbs
     LFG's squash-SHA).
   - Force-push to AceHack main is part of the protocol; force-push
     to LFG main is forbidden.
   - Done criterion: \`git diff acehack/main..origin/main\` empty AND
     \`git rev-list --count\` returns 0 both directions.

Both memory files cross-reference each other: the first frames the
"start" gate, the second describes the topology that operationalizes
it.

This composes with task Lucent-Financial-Group#284 (Option C now superseded), task Lucent-Financial-Group#302
(UPSTREAM-RHYTHM bidirectional drift now resolved by the new model),
Otto-340 (substrate-IS-identity — LFG IS the canonical identity),
Otto-238 (force-push to AceHack is retractable; force-push to LFG
forbidden).

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants