3.4 KiB
Architecture
flowchart TD
UI[Aphrody shell] --> SDK[Bun Tauri v3 / CEF]
UI --> Backend[Bun backend]
Product[Standalone product API] --> Workspace
Backend --> Workspace[Native library orchestration]
Workspace --> Sources[Pinned library submodules]
Backend --> Video[Typed video adapter]
Video --> Headless[Native video CLI]
Video --> NativeVideo[Bun.Video when available]
Sources --> Rust[Existing Rust engines and headless CLIs]
Sources --> Shared[Shared libraries and fonts]
Workspace --> Factory[App build factory]
Factory --> Artifacts[Verified manifests and embedded engines]
Artifacts --> Apps[Independent Bun apps]
Apps --> Assets[Shared R2 content keys]
Infra[Aphrody Infra] --> Apps
Infra --> Control[Rust deployment controller]
Forge[Git forge and runner] --> Factory
Infra --> Forge
Forge --> Portal[source.aphrody.app]
Sources --> Crates[Flat pinned crates / root Cargo workspace]
apps/desktop: Aphrody shell, built and served by Bun.packages/bun-workspace: app identity, config, provenance, source coverage, native execution, asset manifests and shared process ownership.packages/workspace: OS CLI and adapters consuming that shared owner.packages/bun-app-host: product server, common authenticated API transport, standalone compilation and executable qualification.packages/bun-video-project: exact JSON, bounded native operations and runtime availability.packages/bun-artifacts: target manifests, standalone compilation and verified native payload extraction.libraries/*: pinned source forks awaiting complete crate ownership migration.toolchains/bun: pinned SDK and runtime types.
Imported libraries retain their history and licenses. The root Cargo workspace owns the migrated flat crate submodules and common dependencies. Remaining nested Cargo workspaces are migrated in qualified batches.
The shell exposes capabilities and headless inspection. Library sources do not define product branding. GUI binaries are not launch targets.
Native builds use a host mutex and one Cargo job. The mutex is released before headless execution. Compiled sidecars resolve a verified external Bun CLI for native commands. Runtime and SDK source revisions are declared separately.
The desktop shell discovers its checkout or uses APHRODY_ROOT. Independent
app binaries embed their native engines and required resources. They run from
verified manifests without Git, Cargo or source discovery.
One workspace owner supplies app IDs, hashes, runtime provenance, source coverage and child lifetimes. Adapters preserve native domain errors and protocols. One shared R2 manifest references licensed assets by SHA-256. Provider credentials, sessions, datasets and model weights remain isolated.
Aphrody Infra owns host, service, route and activation policy. Komodo actuates
deployment; Gitea and its runner host Git and execute the same Bun factory.
The root bun-os CLI routes server commands to the same app-host CLI owner.
Just coordinates setup, shared quality, Cargo, apps, product server and vendor
without implementing another build pipeline. The root owns node_modules,
target, build and install.
Source, artifact, CI and public service qualification are recorded separately. The complete 239-repository Labs inventory and resumable mirror admission live in Aphrody Infra. The embedded product catalog is a pinned distribution snapshot, not a claim that every mirror or native application is qualified.