Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Glint

Glint is Shipfox's visual regression platform. The repository architecture and delivery plan live in docs/system-design.md.

The approved MVP providers, runtime, local substitutes, cost envelope, and safety limits are in docs/decisions and docs/deployment/reference-topology.md.

Local bootstrap

Install mise, then prepare and verify a fresh checkout:

mise install
mise run bootstrap
mise run verify

The individual build, check, type, type:emit, test, and depcruise tasks are also available through mise run <task>. Package scripts remain independently runnable through pnpm as packages land.

See CONTRIBUTING.md for the required pull-request checks, the migration database gate, and worker-image validation.

Local stack

One command builds the four composition roots, starts PostgreSQL and Garage, creates the private local bucket, runs migrations once, and runs the API, worker, and web together in the foreground:

mise run local:start

No cloud credentials are required. The local defaults are web 3000, API 3001, worker health 3002, PostgreSQL 5432, and Garage S3 3900. In Conductor, the command uses CONDUCTOR_PORT through CONDUCTOR_PORT+4, so multiple workspaces can run concurrently. Garage's internal RPC and admin ports receive ephemeral host bindings. The API and worker construct PostgreSQL, S3-compatible object-store, in-memory queue, configuration, and observability adapters at their entrypoints. No domain behavior lives in an app. Because E0 has no job producers or consumers, the local queue intentionally stays in-process. Add a shared local backend with the first cross-process job and an end-to-end delivery test.

Use the lifecycle commands to exercise or clean up the environment:

mise run local:test   # migrations plus API, worker, and web health/readiness
mise run local:stop   # stop dependency containers, preserving their volumes
mise run local:reset  # stop containers and delete local volumes

Stop the foreground apps with Ctrl-C or Conductor's Stop button, then use local:stop when the dependency containers are no longer needed. Override individual ports with GLINT_WEB_PORT, GLINT_API_PORT, GLINT_WORKER_PORT, GLINT_POSTGRES_PORT, and GLINT_GARAGE_S3_PORT when needed.

The root compose.yml also remains usable for dependency-only development. With PostgreSQL running, mise run database:test exercises the real transaction, migration, outbox, accounts persistence, and RLS contracts.

Package architecture

Start a real package from one of the eight shapes in templates/packages. The templates encode package type and runtime metadata, root-only development/default exports, internal #* aliases, and a package-local depcruise task. They are excluded from the workspace so future features are not scaffolded before they own behavior.

mise run depcruise checks both the workspace manifest graph and every package-local source graph. The shared policy rejects the ten forbidden dependency directions documented in the system design, deep imports that bypass package exports, and cycles. mise run verify also runs the architecture fixture tests.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages