From 93d500888b3f956215530c6c716536be48b2d798 Mon Sep 17 00:00:00 2001 From: aphrody-dev Date: Tue, 13 Oct 2026 20:17:57 +0200 Subject: [PATCH] distribution: align Material source ownership --- MEMORY.md | 14 ++++++++++++++ PLAN.md | 9 +++++++++ docs/SESSION-REPORT-2026-10-13.md | 29 +++++++++++++++++++---------- sources.lock.json | 24 +++++++++++++++++++----- src/distribution.ts | 14 ++++++++++++-- 5 files changed, 73 insertions(+), 17 deletions(-) diff --git a/MEMORY.md b/MEMORY.md index 3b7904a4..2756d8fb 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -1,5 +1,19 @@ # Project decisions and session evidence +## Material source and checkout alignment — 2026-10-13 + +- Advanced Bun OS's Material export pin from `1e65a503` to the current owner + revision `e858361d`. The canonical M3 package is `393d3970`; both its nested + and top-level theme references resolve to the same `aphrody-m3-os-themes` + commit `27b36bd3`. The source lock now records 84 mounts, 77 unique + repository/revision pairs and 75 gitlinks. +- `runtimeCheckout()` now prefers the workspace path when a stale configured + alias resolves to that same physical checkout; a distinct explicit checkout + still wins. The full Windows plan resolves `C:\src\bun` and Material at + `e858361d`. +- The distribution plan validated all 84 source entries. Native Bun typecheck + passed on 91 files, lint and format passed. No tests or builds were run. + ## Shared quality owner, 2026-10-13 - Bun Libraries commit 89731c4 aligns its check/lint/format runner with the diff --git a/PLAN.md b/PLAN.md index fa58b838..793e7b32 100644 --- a/PLAN.md +++ b/PLAN.md @@ -12,6 +12,15 @@ - [x] Configure shared Cargo build and install destinations and ignore rules. - [x] Preserve first-party attribution and imported licenses/notices. +## Material source ownership follow-up — 2026-10-13 + +- [x] Advance the exported Material pin to the current `os` owner revision and + synchronize both M3 references to the single `aphrody-m3-os-themes` owner. +- [x] Resolve equivalent stale machine aliases to the selected workspace Bun + checkout while preserving explicit per-build checkout configuration. +- [x] Validate the source graph through the distribution plan and run native + Bun typecheck, lint and format gates. + ## Integrated Craft fonts and shared quality — 2026-10-13 - [x] Integrate `craft-fonts` and its licensed assets into the Bun OS Cargo workspace; preserve the source repository and publish its `os` integration commit `f1bfd5fd75f24619cad085230c7290f17ee7821e`. diff --git a/docs/SESSION-REPORT-2026-10-13.md b/docs/SESSION-REPORT-2026-10-13.md index 2212ec8b..689a7699 100644 --- a/docs/SESSION-REPORT-2026-10-13.md +++ b/docs/SESSION-REPORT-2026-10-13.md @@ -25,15 +25,15 @@ libm3 and WASM adapter; it retains its web package submodules. Linux, WSL, WSLg, the WSL kernel, COSMIC and official APT remain distinct sources with their own histories and licenses. -The final source lock contains **83 mounts, 77 repository/revision pairs and -74 gitlinks across nine roots**. The original four-root audit had 78 mounts -and 71 pairs. Different revisions of libcosmic/iced/icons remain separate -mounts; deduplication does not collapse version-specific topology. +The source lock now contains **84 mounts, 77 repository/revision pairs and +75 gitlinks across nine roots**. The initial consolidated lock had 83 mounts, +77 pairs and 74 gitlinks. Different revisions of libcosmic/iced/icons remain +separate mounts; deduplication does not collapse version-specific topology. | Root | Locked revision | | --- | --- | | Bun | c209b95eb0dcc964745f4684f127abb83cbe2697 | -| Material/os | 1e65a503420e4a8962b8ceaa18819eedbc280454 | +| Material/os | e858361dfd2597b067eea56d471ff4caab7442f8 | | COSMIC epoch | cfa498958dc8aeac73aa911cbd318c01e47ac957 | | libcosmic/os | 7f715bc5d2d383a070fd8c760aa52c5627df96b6 | | Linux aphrody-bun | 47f637c546bf4bb274c7149815ed66d748e4f325 | @@ -42,6 +42,14 @@ mounts; deduplication does not collapse version-specific topology. | WSL kernel aphrody-wsl-6.18 | e5043002ed6f0b0eb17a0fb9efafa794045853ed | | APT main | 745fc126218c7cb3df48b22bbc7c7098fa2f7966 | +The follow-up pin advances Material to its current owner revision. Its M3 +package is `393d397037dace7a13eb2bee29e43a3a67d176f8`; the top-level and nested +M3 theme references both resolve to `aphrody-labs/aphrody-m3-os-themes` at +`27b36bd34253da5010ec2855403852ba6e97d6e6`. The Bun OS plan validates all 84 +locked mounts. Its Windows runtime build path now resolves through the selected +workspace checkout (`C:\\src\\bun`) when the machine alias points to the same +physical repository; explicit per-build checkout configuration remains first. + The APT GitHub mirror used initially was archived. The owner fork was then fast-forwarded from official live Salsa main, normally pushed and checked by remote ref. That Git source is distinct from Ubuntu's authenticated apt 3.2.0 @@ -89,9 +97,10 @@ References: [source lock](../sources.lock.json), 4.62 s. The independent no_std libm3 gate passed in 0.47 s. Complete metadata resolves 217 packages and one local token 1.4.4 owner; the earlier filtered graph had 197 packages. No unit tests or displayed GUI were run. -7. Final Material/os consolidation **1e65a503420e4a8962b8ceaa18819eedbc280454** - was normally pushed and independently verified by remote ref. The OS lock - now pins it. It contains the 79-source-hash native consolidation receipt. +7. Material/os consolidation **1e65a503420e4a8962b8ceaa18819eedbc280454** + was normally pushed and independently verified by remote ref. It contains + the 79-source-hash native consolidation receipt. The source lock has since + advanced to `e858361dfd2597b067eea56d471ff4caab7442f8`. The public scalar WASM remains the exact earlier ce47e503 artifact; no fresh scalar artifact from 1e65a503 is claimed. 8. Three unqualified Aphrody consumer manifest changes were reverted exactly. @@ -214,8 +223,8 @@ Gzip and bounded Zstandard use runtime APIs. XZ/bzip2 require an explicitly selected native 7-Zip executable, including the actual APT .tar.xz inspection. That external decoder remains part of the source-inspection dependency contract. -The final build uses the current 1e65a503 Material source lock and app catalog; -its native version, source/DLL conversions and WinGet validation passed. +The qualified APT build used the then-current 1e65a503 Material source lock and +app catalog; its native version, source/DLL conversions and WinGet validation passed. It supersedes the earlier 994dd5f2 artifact. Conditional R2 publication created one content-addressed object. Public HTTPS retrieval returned HTTP 200, 171469824 bytes and the exact SHA256, with an immutable one-year cache policy. diff --git a/sources.lock.json b/sources.lock.json index 3d301c06..0270b77f 100644 --- a/sources.lock.json +++ b/sources.lock.json @@ -83,7 +83,7 @@ { "id": "material", "repository": "aphrody-labs/material", - "revision": "1e65a503420e4a8962b8ceaa18819eedbc280454", + "revision": "e858361dfd2597b067eea56d471ff4caab7442f8", "mount": "sources/material", "gitlinks": [ { @@ -114,7 +114,7 @@ { "path": "packages/m3", "repository": "aphrody-labs/aphrody-m3", - "revision": "b6e01a8df4da20314757c5505b224f553c68483d" + "revision": "393d397037dace7a13eb2bee29e43a3a67d176f8" }, { "path": "packages/m3-ai", @@ -204,7 +204,7 @@ { "path": "packages/m3-os-themes", "repository": "aphrody-labs/aphrody-m3-os-themes", - "revision": "a218bd6db5327603e503d46ebe1ee6804959c351" + "revision": "27b36bd34253da5010ec2855403852ba6e97d6e6" }, { "path": "packages/m3-primitives", @@ -272,7 +272,7 @@ { "id": "material/packages/m3", "repository": "aphrody-labs/aphrody-m3", - "revision": "b6e01a8df4da20314757c5505b224f553c68483d", + "revision": "393d397037dace7a13eb2bee29e43a3a67d176f8", "mount": "sources/material/packages/m3", "parent": "material", "submodulePath": "packages/m3", @@ -296,9 +296,23 @@ "path": "forks/material-web", "repository": "aphrody-labs/material-web", "revision": "a06811ee5dad1a670d99e5faf14cdf7082a70a10" + }, + { + "path": "packages/m3-os-themes", + "repository": "aphrody-labs/aphrody-m3-os-themes", + "revision": "27b36bd34253da5010ec2855403852ba6e97d6e6" } ] }, + { + "id": "material/packages/m3/packages/m3-os-themes", + "repository": "aphrody-labs/aphrody-m3-os-themes", + "revision": "27b36bd34253da5010ec2855403852ba6e97d6e6", + "mount": "sources/material/packages/m3/packages/m3-os-themes", + "parent": "material/packages/m3", + "submodulePath": "packages/m3-os-themes", + "gitlinks": [] + }, { "id": "material/packages/m3/forks/fonts", "repository": "aphrody-labs/fonts", @@ -491,7 +505,7 @@ { "id": "material/packages/m3-os-themes", "repository": "aphrody-labs/aphrody-m3-os-themes", - "revision": "a218bd6db5327603e503d46ebe1ee6804959c351", + "revision": "27b36bd34253da5010ec2855403852ba6e97d6e6", "mount": "sources/material/packages/m3-os-themes", "parent": "material", "submodulePath": "packages/m3-os-themes", diff --git a/src/distribution.ts b/src/distribution.ts index 0517a5b1..62fc8de8 100644 --- a/src/distribution.ts +++ b/src/distribution.ts @@ -2,7 +2,7 @@ import { exportPinnedSources, type SourceExportOptions } from "../factory/source import { hashStream } from "@aphrody/bun-workspace/hash"; import { runProcess } from "@aphrody/bun-workspace/process"; import { mkdir, lstat, copyFile, open, unlink, cp } from "node:fs/promises"; -import { existsSync } from "node:fs"; +import { existsSync, realpathSync } from "node:fs"; import { dirname, join, resolve, relative, isAbsolute } from "node:path"; import { sourceIntegrity } from "../container/source-integrity.ts"; import { inspectLinuxABI } from "./elf.ts"; @@ -18,13 +18,23 @@ export function materialCheckout(config: Config = {}): string { return checkout; } export function runtimeCheckout(config: Config = {}): string { - const configured = config.checkouts?.bun ?? Bun.env.APHRODY_BUN_CHECKOUT; + const explicitCheckout = config.checkouts?.bun; + const configured = explicitCheckout ?? Bun.env.APHRODY_BUN_CHECKOUT; + const workspaceCheckout = resolve(packageRoot, "../bun"); if (configured) { const root = resolve(configured); if (!existsSync(join(root, "scripts/build.ts"))) throw new Error("Configured Bun checkout has no native build owner"); + if (!explicitCheckout && existsSync(join(workspaceCheckout, "scripts/build.ts"))) { + try { + if (realpathSync.native(root) === realpathSync.native(workspaceCheckout)) return workspaceCheckout; + } catch { + // Keep the explicit checkout when its physical path cannot be resolved. + } + } return root; } + if (existsSync(join(workspaceCheckout, "scripts/build.ts"))) return workspaceCheckout; let root = dirname(process.execPath); for (let depth = 0; depth < 8; depth++) { if (existsSync(join(root, "scripts/build.ts")) && existsSync(join(root, "src/runtime/Cargo.toml"))) return root;