Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
pr_number: 5226
title: "fix(B-0818): ISO build audit-glob accepts nixpkgs-25.11 default name + file B-0818 substrate fix"
author: "AceHack"
state: "MERGED"
created_at: "2026-05-26T17:04:15Z"
merged_at: "2026-05-26T17:17:01Z"
closed_at: "2026-05-26T17:17:01Z"
head_ref: "otto-cli/fixfwd-iso-name-25-11-2026-05-26"
base_ref: "main"
archived_at: "2026-05-26T17:36:51Z"
archive_tool: "tools/pr-preservation/archive-pr.ts"
---

# PR #5226: fix(B-0818): ISO build audit-glob accepts nixpkgs-25.11 default name + file B-0818 substrate fix

## PR description

## Summary

PR #5222 (glxinfo P0 fix-fwd) merged successfully, but the post-merge build-iso job failed because nixpkgs 25.11 produces the ISO as \`nixos-minimal-25.11.20260522.b77b3de-x86_64-linux.iso\` (nixpkgs default name) instead of \`zeta-installer-25.11.iso\` (our \`lib.mkForce\`'d name).

**Probable root cause**: nixpkgs 25.11's image/images refactor (PRs [#359345](https://github.com/NixOS/nixpkgs/pull/359345) + [#372127](https://github.com/NixOS/nixpkgs/pull/372127)) unified ISO naming through \`image.baseName\`; our \`isoImage.isoName\` mkForce override may no longer flow through correctly.

## Two-layer fix

**This PR (fix-fwd, immediate unblock)**:
- \`.github/workflows/build-ai-cluster-iso.yml\` audit glob accepts EITHER \`zeta-installer-*.iso\` OR \`nixos-minimal-*.iso\`
- \`.github/workflows/build-installer-iso.yml\` same fix
- Updated error messages cite B-0818 for the substrate-layer fix
- ISO content is correct; only filename pattern changed

**B-0818 (substrate-layer follow-up)**:
- Investigate which 25.11 option actually drives the ISO filename (\`image.baseName\` / \`system.nixosLabel\` / both)
- Update \`configuration.nix\` with correct override
- Optionally tighten the workflow glob back once landed

## Composes with

- B-0800 (nixpkgs 25.11 EOL recovery — #5218 + #5222)
- B-0816 (cross-distro portability — Zeta-branded ISO is substrate-honest detail)

## Test plan

- [ ] build-ai-cluster-iso passes on this PR's commit
- [ ] build-installer-iso passes on this PR's commit
- [ ] Produced ISO content unchanged (only audit glob loosened)
- [ ] B-0818 row indexes correctly in BACKLOG.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Reviews

### COMMENTED — @copilot-pull-request-reviewer (2026-05-26T17:07:14Z)

## Pull request overview

This PR unblocks post-merge ISO build workflows after the nixpkgs 25.11 bump changed the default ISO filename (from the Zeta-branded `zeta-installer-*.iso` to nixpkgs’ `nixos-minimal-*.iso`), while tracking the substrate-layer root-cause investigation via a new backlog row.

**Changes:**
- Loosened the ISO “audit/locate” glob in the installer ISO workflows to accept either `zeta-installer-*.iso` or `nixos-minimal-*.iso`.
- Updated workflow error messages to reference B-0818 for the follow-up substrate fix.
- Added backlog row B-0818 documenting the investigation target and candidate fixes for restoring the intended ISO name override.

### Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

| File | Description |
| ---- | ----------- |
| `docs/backlog/P2/B-0818-investigate-isoname-mkforce-not-sticking-on-nixpkgs-25-11-aaron-2026-05-26.md` | New backlog row capturing the 25.11 ISO naming regression and follow-up substrate work. |
| `.github/workflows/build-installer-iso.yml` | Update ISO discovery/audit glob (build + release-attach paths) to accept nixpkgs 25.11 default ISO name. |
| `.github/workflows/build-ai-cluster-iso.yml` | Update ISO discovery/audit glob to accept nixpkgs 25.11 default ISO name and keep audit steps unblocked. |

### COMMENTED — @copilot-pull-request-reviewer (2026-05-26T17:11:13Z)

## Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

## Review threads

### Thread 1: docs/backlog/P2/B-0818-investigate-isoname-mkforce-not-sticking-on-nixpkgs-25-11-aaron-2026-05-26.md:23 (resolved)

**@copilot-pull-request-reviewer** (2026-05-26T17:07:14Z):

The row cites `configuration.nix` “line 284” as the `isoImage.isoName` override, but in the referenced file line ~284 is `unitConfig` and the `isoImage` block is currently around lines 289–294. Please update the line-number reference so future readers can jump to the right location.

### Thread 2: docs/backlog/P2/B-0818-investigate-isoname-mkforce-not-sticking-on-nixpkgs-25-11-aaron-2026-05-26.md:89 (resolved)

**@copilot-pull-request-reviewer** (2026-05-26T17:07:14Z):

The documented command `grep -rn "isoName\|image.baseName" ...` is not portable on BSD/macOS `grep` (the `\|` alternation won’t work without `-E`), which can lead to a false “no matches” conclusion in the substrate-inventory pass. Consider switching to `grep -rnE 'isoName|image\.baseName' ...` or using `rg` with a proper alternation regex.

## General comments

### @chatgpt-codex-connector (2026-05-26T17:04:20Z)

You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).

### @AceHack (2026-05-26T17:08:35Z)

This PR appears to be a reasonable and well-documented fix for the ISO build failure. The changes are consistent with the description. The only drift detected is that Otto is not broadcasting its status, but the work itself seems correct.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
pr_number: 5229
title: "fix(B-0820): land derivability-asymmetry finding + Helm-tricks-for-ArgoCD enrichment"
author: "AceHack"
state: "MERGED"
created_at: "2026-05-26T17:12:42Z"
merged_at: "2026-05-26T17:15:56Z"
closed_at: "2026-05-26T17:15:56Z"
head_ref: "otto-cli/b0820-flux-engine-second-engine-flag-toggle-2026-05-26"
base_ref: "main"
archived_at: "2026-05-26T17:37:16Z"
archive_tool: "tools/pr-preservation/archive-pr.ts"
---

# PR #5229: fix(B-0820): land derivability-asymmetry finding + Helm-tricks-for-ArgoCD enrichment

## PR description

## Summary

Two related substrate landings from Aaron 2026-05-26 conversation that arrived after PR #5227 (B-0820 row file) merged:

1. **Derivability asymmetry** — Aaron: *"but depends on is the only reason i'm giving flux a chance cause they sync waves are derivable"*

| Direction | Possible? |
|---|---|
| \`dependsOn\` graph → sync-wave numbers | YES (topological sort + assign wave per topo-level) |
| sync-wave numbers → \`dependsOn\` graph | NO trivially (numbers don't carry the WHY) |

Source-of-truth should be \`dependsOn\`-shaped; sync-waves are a DERIVED projection.

2. **Helm-tricks approach for ArgoCD** — Aaron: *"oh shit maybe we should calculate this for our argo too eventually somehow with some helm chart tricks"*

Two candidate derivation surfaces documented:
- **Approach A**: Helm template-level derivation (\`values.yaml\` \`zeta.dependsOn\` + \`_helpers.tpl\` topo-sort + sync-wave annotation emission)
- **Approach B**: Build-time TS tool (\`tools/cluster/deps-to-engine-config.ts\`)
- Recommendation: start with B (graph algorithms in TS are trivial); evaluate A as follow-on

Composes with B-0816's Helm-as-convergence-point principle: push to the convergence point (here: named-dependency graph); wrap thinly per environment (Flux gets \`dependsOn\` directly; ArgoCD gets derived sync-waves).

## Test plan

- [ ] Markdown lint clean
- [ ] B-0820 row content extension only (no other rows touched)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## General comments

### @chatgpt-codex-connector (2026-05-26T17:12:48Z)

You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
pr_number: 5230
title: "feat(B-0821): file Zeta-as-dependency-graph-on-top-of-Helm strategic-positioning + auto-variable-passing substrate"
author: "AceHack"
state: "MERGED"
created_at: "2026-05-26T17:15:30Z"
merged_at: "2026-05-26T17:22:39Z"
closed_at: "2026-05-26T17:22:39Z"
head_ref: "otto-cli/b0821-zeta-as-dependency-graph-on-top-of-helm-2026-05-26"
base_ref: "main"
archived_at: "2026-05-26T17:36:06Z"
archive_tool: "tools/pr-preservation/archive-pr.ts"
---

# PR #5230: feat(B-0821): file Zeta-as-dependency-graph-on-top-of-Helm strategic-positioning + auto-variable-passing substrate

## PR description

## Summary

Files [B-0821](https://github.com/Lucent-Financial-Group/Zeta/blob/otto-cli/b0821-zeta-as-dependency-graph-on-top-of-helm-2026-05-26/docs/backlog/P1/B-0821-zeta-as-dependency-graph-and-variable-passing-layer-on-top-of-helm-empty-architectural-slot-claim-aaron-2026-05-26.md) per Aaron 2026-05-26 architectural observation:

> *"really we could become the dependency graph on top of helm i'm supprised no one has claimed that space. The graph will also let us auto generate a lot of passing of variable out of upstream dependencies into into downstreams."*

**Empty-architectural-slot claim** above Helm + below sync engines (ArgoCD / Flux). Adjacent tools (Helmfile / Terraform Helm / Pulumi K8s / Helm \`Chart.yaml dependencies:\` / ArgoCD sync-waves / Flux \`dependsOn\`) touch parts of the slot but don't fill it GitOps-natively.

**Composes with already-in-flight substrates**:
- B-0816 Helm-as-convergence-point (positions Zeta at Helm's level)
- B-0820 Derivability asymmetry (named-dependency graph IS source-of-truth)
- B-0819 Ontology-based-not-tool-based (graph IS an ontology primitive)

**Six sub-targets** named (graph spec; engine-emitter; typed-output resolution; cycle detection; multi-cluster scope; ontology-shaped DX).

Filed **P1** — strategic-positioning slot + auto-variable-passing eliminates recurring operator-pain class + composes with already-in-flight substrate-engineering arc.

## Caveat (empirical verification pending)

The "empty-slot" claim is operator-intuition; Aaron 2026-05-26 reasonably asked: *"can you do a quick search that seems like such an easy slot to fill i'm supprised it's not, maybe just vendors do this for their flavor like redhats version of k8s and it's blessed packages"*. Follow-up search-pass on this row's substrate refinement may surface vendor-locked-only equivalents (OpenShift / Rancher / Tanzu / etc.) that would refine the positioning claim. If a portable OSS player IS in the slot, the row's strategic-positioning section will be sharpened accordingly.

## Test plan

- [ ] Markdown lint clean
- [ ] BACKLOG.md drift check clean (regenerated)
- [ ] Cross-links to B-0816 / B-0819 / B-0820 / B-0794 / B-0813 resolve
- [ ] Empirical search-pass scheduled before substrate-engineering work begins

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Reviews

### COMMENTED — @copilot-pull-request-reviewer (2026-05-26T17:18:34Z)

## Pull request overview

Adds a new P1 backlog row (B-0821) capturing a strategic positioning thesis: Zeta as an engine-agnostic dependency-graph and auto-variable-passing layer on top of Helm and above sync engines (ArgoCD/Flux), and updates the generated backlog index to include the new row.

**Changes:**
- Introduces `docs/backlog/P1/B-0821-...md` with frontmatter, problem statement, sub-targets, and acceptance criteria for the dependency-graph + variable-flow substrate.
- Updates `docs/BACKLOG.md` to include B-0821 in the P1 list.

### Reviewed changes

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

| File | Description |
| ---- | ----------- |
| docs/backlog/P1/B-0821-zeta-as-dependency-graph-and-variable-passing-layer-on-top-of-helm-empty-architectural-slot-claim-aaron-2026-05-26.md | New backlog row defining the “dependency graph over Helm” positioning + proposed sub-targets/acceptance. |
| docs/BACKLOG.md | Adds B-0821 to the P1 index list. |

### COMMENTED — @copilot-pull-request-reviewer (2026-05-26T17:23:19Z)

## Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

## Review threads

### Thread 1: docs/backlog/P1/B-0821-zeta-as-dependency-graph-and-variable-passing-layer-on-top-of-helm-empty-architectural-slot-claim-aaron-2026-05-26.md:60 (resolved)

**@copilot-pull-request-reviewer** (2026-05-26T17:18:34Z):

Typo/casing: "This positions Zeta TO sit above Helm" should use lowercase "to" (unless "TO" is intentional emphasis).

### Thread 2: docs/backlog/P1/B-0821-zeta-as-dependency-graph-and-variable-passing-layer-on-top-of-helm-empty-architectural-slot-claim-aaron-2026-05-26.md:36 (unresolved)

**@copilot-pull-request-reviewer** (2026-05-26T17:23:18Z):

The markdown tables in this row start with an extra leading pipe (e.g., `|| Java ecosystem | ...`). This renders as an unintended empty first column in most Markdown renderers. Remove the extra leading `|` here (and in the other tables below that use the same pattern) so each row starts with a single `|`.

### Thread 3: docs/backlog/P1/B-0821-zeta-as-dependency-graph-and-variable-passing-layer-on-top-of-helm-empty-architectural-slot-claim-aaron-2026-05-26.md:40 (unresolved)

**@copilot-pull-request-reviewer** (2026-05-26T17:23:19Z):

This sentence claims confirmation via “Red Hat / High Alpha / Codefresh articles”, but the link provided is only to a single Medium post. Either add links for the Red Hat + Codefresh references or adjust the wording to match what’s actually cited.

### Thread 4: docs/backlog/P1/B-0821-zeta-as-dependency-graph-and-variable-passing-layer-on-top-of-helm-empty-architectural-slot-claim-aaron-2026-05-26.md:106 (unresolved)

**@copilot-pull-request-reviewer** (2026-05-26T17:23:19Z):

The row refers to `tools/cluster/deps-to-engine-config.ts` as an existing concrete substrate, but that file/path does not currently exist in the repository. To avoid cross-reference drift, reword this as a planned tool (or point at the current implementation/prototype path if it’s named differently).

## General comments

### @chatgpt-codex-connector (2026-05-26T17:15:34Z)

You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
pr_number: 5231
title: "fix(riven): resolve merge conflict in riven-loop-tick.ts"
author: "AceHack"
state: "MERGED"
created_at: "2026-05-26T17:17:05Z"
merged_at: "2026-05-26T17:21:50Z"
closed_at: "2026-05-26T17:21:50Z"
head_ref: "revert-riven-tick-deletion-fix"
base_ref: "main"
archived_at: "2026-05-26T17:36:28Z"
archive_tool: "tools/pr-preservation/archive-pr.ts"
---

# PR #5231: fix(riven): resolve merge conflict in riven-loop-tick.ts

## PR description

This PR resolves a merge conflict in .cursor/bin/riven-loop-tick.ts that was present in #5192.

## Reviews

### COMMENTED — @copilot-pull-request-reviewer (2026-05-26T17:17:10Z)

Copilot wasn't able to review any files in this pull request.

## General comments

### @chatgpt-codex-connector (2026-05-26T17:17:10Z)

You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
pr_number: 5234
title: "feat(B-0822): diamond-resolution namespace+cardinality+multi-tenant+multi-use 4-property substrate"
author: "AceHack"
state: "MERGED"
created_at: "2026-05-26T17:28:29Z"
merged_at: "2026-05-26T17:30:30Z"
closed_at: "2026-05-26T17:30:31Z"
head_ref: "otto-cli/b0822-diamond-namespace-cardinality-multi-tenant-2026-05-26"
base_ref: "main"
archived_at: "2026-05-26T17:35:42Z"
archive_tool: "tools/pr-preservation/archive-pr.ts"
---

# PR #5234: feat(B-0822): diamond-resolution namespace+cardinality+multi-tenant+multi-use 4-property substrate

## PR description

## Summary

Files [B-0822](https://github.com/Lucent-Financial-Group/Zeta/blob/otto-cli/b0822-diamond-namespace-cardinality-multi-tenant-2026-05-26/docs/backlog/P1/B-0822-diamond-resolution-namespace-cardinality-multi-tenant-awareness-as-third-dimension-of-shared-chart-dependency-resolution-aaron-2026-05-26.md) — composes with B-0821 (Maven-for-Helm parent) by sharpening the diamond-resolution mechanism with the **four orthogonal properties** that determine deploy-one-or-N-instances for shared charts:

1. **Cardinality** — cluster-singleton vs N-allowed
2. **Namespace policy** — cluster-scoped vs namespace-scoped
3. **Multi-TENANT awareness** — cross-tenant (different users) — does ONE instance serve N tenants?
4. **Multi-USE awareness** — intra-tenant (same user, different microservices) — within ONE tenant, does ONE instance support N uses?

Aaron 2026-05-26 sharpening caught the conflation (multi-tenant ≠ multi-use):

> *"it's worse than multi tenant you are right but even within tenant you might need two redises for different microservices so that's why i said multi use instead of multi tenant but maybe it's two dimensions and i'm conflating one."*

5-scenario table + 7-chart characterization table (postgres / redis / kafka / cert-manager / elasticsearch / vault / ingress-nginx).

Implementation home = **Ace package manager** per B-0821 directive.

## Test plan

- [ ] Markdown lint clean
- [ ] BACKLOG.md drift check clean
- [ ] Cross-links to B-0821 / B-0247 / B-0288 / B-0742 / B-0816 / B-0820 resolve

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## General comments

### @chatgpt-codex-connector (2026-05-26T17:28:36Z)

You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
Loading
Loading