id: PX-RESEARCH-153B1161
type: research
title: Automation Architecture History
Scope
This records the legacy Mise task architecture and distinguishes its durable decisions from verified current configuration.
Historical claims describe the migration-era architecture only.
Verified current claims derive from root mise.toml, extensions/the-system/mise.toml, test/playwright.base.ts, and .ci/ci.kdl.
Historical decisions
The root task surface was narrowed to repository lifecycle, shared tools, release work, and aggregate workflows.
Extension-local mise.toml files became the owner of extension-specific benchmarks and browser suites.
Mise monorepo discovery replaced custom dispatch scripts with qualified extension task paths.
Unit and integration testing stayed centralized because one shared suite already discovered repository coverage efficiently.
Benchmarks became opt-in and serial because concurrent measurements contaminate results.
Browser coverage targeted real page startup, one essential interaction, and any browser-to-server round trip rather than duplicating unit tests or relying on pixel regression.
Browser suites were promoted into the release gate only after coverage reached every interactive surface known at that time.
The legacy external-model smoke check was retired because credentials, timing, and remote model behavior made it nondeterministic.
Verified current behavior
Root mise.toml declares monorepo discovery for extensions/* and owns shared tool versions.
Root test owns the centralized JavaScript test invocation.
Root bench dispatches discovered extension benchmark tasks with one job, keeping benchmark execution serial.
Root e2e installs Chromium and Firefox, then dispatches discovered extension E2E tasks through the qualified wildcard.
The current release gate groups static check and lint before test, then runs E2E last.
The System owns local bench, profile, benchstat, fmt, lint, test, check, and e2e tasks in extensions/the-system/mise.toml.
The System browser suite inherits a shared Playwright base configured for headless Chromium and Firefox.
Luci uses a pinned Playwright image and delegates CI to the root Mise release gate, preserving one authoritative workflow definition.
Lasting lessons
Task ownership follows the smallest component that can run a concern independently, while aggregation belongs at repository scope.
Qualified task discovery scales better than root aliases because adding or removing an extension does not expand the root command API.
Shared test infrastructure and local browser ownership are complementary boundaries rather than competing test frameworks.
Real browser smoke tests protect browser-server contracts that isolated unit tests cannot prove.
A release gate should compose existing root workflows instead of copying their commands into CI configuration.
Manual benchmarks remain useful evidence but should not turn timing variance into a release dependency.
Historical extension lists and runner details are intentionally omitted because current discovery, not a legacy inventory, defines participation.
Historical sources
Original bytes remain recoverable from Git commit 88660125c313dd5eff4f8c4dee431caa8e0ddd22.
---
id: PX-RESEARCH-153B1161
type: research
title: Automation Architecture History
---
## Scope
This records the legacy Mise task architecture and distinguishes its durable decisions from verified current configuration.
Historical claims describe the migration-era architecture only.
Verified current claims derive from root `mise.toml`, `extensions/the-system/mise.toml`, `test/playwright.base.ts`, and `.ci/ci.kdl`.
## Historical decisions
The root task surface was narrowed to repository lifecycle, shared tools, release work, and aggregate workflows.
Extension-local `mise.toml` files became the owner of extension-specific benchmarks and browser suites.
Mise monorepo discovery replaced custom dispatch scripts with qualified extension task paths.
Unit and integration testing stayed centralized because one shared suite already discovered repository coverage efficiently.
Benchmarks became opt-in and serial because concurrent measurements contaminate results.
Browser coverage targeted real page startup, one essential interaction, and any browser-to-server round trip rather than duplicating unit tests or relying on pixel regression.
Browser suites were promoted into the release gate only after coverage reached every interactive surface known at that time.
The legacy external-model smoke check was retired because credentials, timing, and remote model behavior made it nondeterministic.
## Verified current behavior
Root `mise.toml` declares monorepo discovery for `extensions/*` and owns shared tool versions.
Root `test` owns the centralized JavaScript test invocation.
Root `bench` dispatches discovered extension benchmark tasks with one job, keeping benchmark execution serial.
Root `e2e` installs Chromium and Firefox, then dispatches discovered extension E2E tasks through the qualified wildcard.
The current release gate groups static check and lint before test, then runs E2E last.
The System owns local `bench`, `profile`, `benchstat`, `fmt`, `lint`, `test`, `check`, and `e2e` tasks in `extensions/the-system/mise.toml`.
The System browser suite inherits a shared Playwright base configured for headless Chromium and Firefox.
Luci uses a pinned Playwright image and delegates CI to the root Mise release gate, preserving one authoritative workflow definition.
## Lasting lessons
Task ownership follows the smallest component that can run a concern independently, while aggregation belongs at repository scope.
Qualified task discovery scales better than root aliases because adding or removing an extension does not expand the root command API.
Shared test infrastructure and local browser ownership are complementary boundaries rather than competing test frameworks.
Real browser smoke tests protect browser-server contracts that isolated unit tests cannot prove.
A release gate should compose existing root workflows instead of copying their commands into CI configuration.
Manual benchmarks remain useful evidence but should not turn timing variance into a release dependency.
Historical extension lists and runner details are intentionally omitted because current discovery, not a legacy inventory, defines participation.
## Historical sources
Original bytes remain recoverable from Git commit `88660125c313dd5eff4f8c4dee431caa8e0ddd22`.
- `docs/super/specs/2026-07-12-mise-task-architecture-design.md`
- `docs/super/roadmaps/2026-07-12-mise-task-architecture-roadmap.md`
- `docs/super/plans/2026-07-12-mise-task-architecture-phase-1-monorepo-foundation-and-benchmarks.md`
- `docs/super/plans/2026-07-12-mise-task-architecture-phase-3-mockup-e2e.md`
- `docs/super/plans/2026-07-12-mise-task-architecture-phase-4-tune-e2e-ci.md`