factory

module
v0.0.0-...-d1c3493 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2026 License: Apache-2.0

README

Factory

Factory is a Linux-first desktop application and Go workflow engine with a shared Lit frontend for the native Tauri host and Soda Forge/Fountain.

This repository imports the implementation in progress from SodaOS. It is not a completed or released desktop product. Connected GitHub sign-in, account/repository binding and human issue/PR reads and writes have recorded qualification. Real Muse task checks have scoped evidence; full automated intake/delivery and installed distribution remain unqualified. The dependency-ordered backlog is in the implementation plan.

The Go engine lives in public pkg/ packages under github.com/levitateos/factory. The native backend does not depend on the SodaOS module, an appliance, Fountain or its SDK. Existing versions and lockfiles are imported as working source, without claiming a fresh release baseline.

Development

Use Go, Bun and Rust. Native Tauri builds also need the usual Linux GTK/WebKit development dependencies. Keep temporary files and build output under /home.

export TMPDIR=/home/USER/tmp
mkdir -p "$TMPDIR"
bun install --frozen-lockfile
bun run build:server
bun run build:factory-ui
bun run build:desktop-ui
bun run typecheck
bun run check:boundaries
bun run build:storybook
cargo check --locked --workspace

The shared browser module is .artifacts/factory-ui/factory-app.js, with its CSS, fonts, portraits and notices alongside it. The defining source lives in frontend/factory/, and Storybook uses those production components directly. Forge imports this source through the standard @factory/product Bun link; its local component and Storybook copies have been removed. From the Forge checkout, run bash scripts/setup-factory-ui.sh ../factory to use this editable checkout. Both source builds then read the same files, and Forge's browser watcher includes the linked component/design tree. CI can omit the checkout argument to fetch the published Factory commit selected by Forge's go.mod.

To stage the native development app, supply a native PostgreSQL payload as described in the runtime guide:

bun run build:desktop --postgres /absolute/postgresql-payload --out /home/USER/factory-stage
/home/USER/factory-stage/soda-desktop

The production stage includes a per-user app installer. With the required GTK/WebKit runtime libraries available, run:

/home/USER/factory-stage/install.sh
# Optional custom location:
/home/USER/factory-stage/install.sh --prefix /home/USER/apps

The default prefix is $HOME/.local; launch $HOME/.local/bin/factory or its application-menu entry. Existing app/launcher/menu/icon files cause refusal; upgrades remain unfinished. Profiles and credentials stay outside installation. The separate privileged execution-service setup is described in the desktop guide. This is an installable development bundle, not a qualified release. A fresh distribution baseline, complete dependency notices and installed journeys remain required. The desktop shell supports GitHub device sign-in, verification, native encrypted credential storage and saved-account removal. Click Sign in to GitHub, open the verification page in your browser and enter the displayed code. Choose a saved account and repository to connect the shared application. Signing in alone does not authorize execution: local resource and workspace consent, policy, funding and run admission are separate requirements. Native fixture execution is not proof of real provider inference. The desktop guide describes lifecycle, credential custody and opt-in native acceptance checks.

Source and integration history

Source provenance records the original revisions and SHA-256 hashes of imported product files. The initial extraction snapshots remain in Git history. The recovery patches and inactive coordinator-test archive have been retired from the working tree. The Forge Go consumer cutover is committed as a1cd0499. Forge now uses the pinned public Factory Go module and the shared UI source package (UI consumer commit 5e695dfb). Unrelated staged work remains preserved in the original checkout. Forge's native consumer cutover is 6bb9b60d: its retained native consumers use this repository's pinned Git crates, and its duplicate desktop/runtime/workbench/transport owners are removed. Connected product journeys, SDK distribution and installed parity remain unfinished. Fountain server implementation belongs to Fountain, and appliance composition belongs to SodaOS.

Original SodaOS work remains Apache-2.0. Existing third-party and inherited notices remain applicable; see LICENSE, NOTICE, and the licenses alongside the retained source and assets.

Directories

Path Synopsis
cmd
pkg
application
Package application defines admitted application references and administration records.
Package application defines admitted application references and administration records.
collaboration
Package collaboration owns provider-neutral collaboration records.
Package collaboration owns provider-neutral collaboration records.
factory
Issue acceptance records bind exact native requirements to the maintainer who approved them: the objective title/body revision, selected question/answer/resolution comments, and every direct prerequisite edge with its required outcome.
Issue acceptance records bind exact native requirements to the maintainer who approved them: the objective title/body revision, selected question/answer/resolution comments, and every direct prerequisite edge with its required outcome.
factory/access
Package access owns Factory application admission contracts.
Package access owns Factory application admission contracts.
factory/client
Package client connects Forge to the independently supervised Factory service.
Package client connects Forge to the independently supervised Factory service.
factory/control
Package control supervises recorded factory runs: status reads recorded state, dispatch starts bounded recorded assignments, and reconcile settles outstanding runs against host and broker truth.
Package control supervises recorded factory runs: status reads recorded state, dispatch starts bounded recorded assignments, and reconcile settles outstanding runs against host and broker truth.
factory/execution
Package execution owns provider-neutral run evidence.
Package execution owns provider-neutral run evidence.
factory/httpapi
Package httpapi owns Factory HTTP transport boundaries.
Package httpapi owns Factory HTTP transport boundaries.
factory/mcpserver
Package mcpserver serves the role-filtered Factory worker MCP protocol using explicit application and runtime ports.
Package mcpserver serves the role-filtered Factory worker MCP protocol using explicit application and runtime ports.
factory/mcpwire
Package mcpwire owns Factory worker tool descriptions, SDK schemas and strict payload contracts.
Package mcpwire owns Factory worker tool descriptions, SDK schemas and strict payload contracts.
factory/service
Package service owns Factory application workflows over the canonical ledger.
Package service owns Factory application workflows over the canonical ledger.
filelock
Package filelock acquires native advisory locks without trapping a cancelled command in a blocking flock syscall.
Package filelock acquires native advisory locks without trapping a cancelled command in a blocking flock syscall.
identity
Package identity owns subscription connection, grant and execution contracts.
Package identity owns subscription connection, grant and execution contracts.
project
Fixed supervised factory-run identities and wire records.
Fixed supervised factory-run identities and wire records.
store
Package store owns Factory's PostgreSQL schema and retained appliance row operations.
Package store owns Factory's PostgreSQL schema and retained appliance row operations.
strictjson
Package strictjson decodes bounded, single-object JSON request bodies.
Package strictjson decodes bounded, single-object JSON request bodies.
tools
native-checks command
A disposable Go-to-Rust native callback check.
A disposable Go-to-Rust native callback check.
unitban command
Command unitban is a go vet analyzer that bans unit tests.
Command unitban is a go vet analyzer that bans unit tests.
unitban/testfixtures
Package testfixtures carries the unitban analyzer's self-test fixture: a unit test the analyzer must flag.
Package testfixtures carries the unitban analyzer's self-test fixture: a unit test the analyzer must flag.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL