loomrail 0.1.0-alpha.3 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +68 -27
  2. package/apps/cli/dist/assets/{internal-sEVQ7RK4.js → internal-OdVh956X.js} +2043 -940
  3. package/apps/cli/dist/assets/process-tree-CBAUysF7.js +187 -0
  4. package/apps/cli/dist/index.js +35965 -8938
  5. package/apps/cli/dist/proxy.js +1 -1
  6. package/apps/cli/dist/supervisor.js +38 -95
  7. package/apps/cli/dist/verification-supervisor.js +504 -0
  8. package/apps/cli/migrations/0020_agent_runs.sql +174 -0
  9. package/apps/cli/migrations/0021_independent_review.sql +189 -0
  10. package/apps/cli/migrations/0022_browser_qa_evidence.sql +265 -0
  11. package/apps/cli/migrations/0023_measured_qa_artifact_provenance.sql +48 -0
  12. package/apps/cli/migrations/0024_qa_attachment_retention.sql +18 -0
  13. package/apps/cli/migrations/0025_qa_correction_lineage.sql +632 -0
  14. package/apps/cli/migrations/0026_evidence_authority_lineage.sql +294 -0
  15. package/apps/cli/migrations/0027_qa_defect_waiver_event.sql +68 -0
  16. package/apps/cli/migrations/0028_qa_correction_events.sql +70 -0
  17. package/apps/cli/migrations/0029_qa_defect_resolution_provenance.sql +30 -0
  18. package/apps/cli/migrations/0030_role_playbook_recipes.sql +56 -0
  19. package/apps/cli/migrations/0031_agent_run_policy_snapshots.sql +33 -0
  20. package/apps/cli/migrations/0032_provider_usage_reports.sql +51 -0
  21. package/apps/cli/migrations/0033_budget_model_tier_override.sql +3 -0
  22. package/apps/cli/migrations/0034_budget_agent_run_override.sql +3 -0
  23. package/apps/cli/migrations/0035_repeatable_recovery_reports.sql +48 -0
  24. package/apps/cli/migrations/0036_provider_allowance_snapshots.sql +83 -0
  25. package/apps/cli/migrations/0037_project_verification_plans.sql +110 -0
  26. package/apps/cli/migrations/0038_verification_runs.sql +150 -0
  27. package/apps/cli/migrations/0039_acceptance_verification_evidence.sql +7 -0
  28. package/apps/cli/migrations/0040_verification_failures.sql +164 -0
  29. package/apps/cli/migrations/0041_verification_output_retention.sql +8 -0
  30. package/apps/cli/migrations/0042_verification_correction_lineage.sql +442 -0
  31. package/apps/cli/migrations/0043_verification_correction_started_event.sql +76 -0
  32. package/apps/cli/migrations/0044_verification_correction_passed_event.sql +77 -0
  33. package/apps/cli/migrations/0045_verification_correction_loop_events.sql +78 -0
  34. package/apps/cli/migrations/0046_correction_budget_ledger.sql +131 -0
  35. package/apps/cli/migrations/0047_verification_qa_handoff.sql +124 -0
  36. package/apps/cli/migrations/0048_stale_verification_correction.sql +44 -0
  37. package/apps/cli/migrations/0049_interrupted_verification_correction.sql +48 -0
  38. package/apps/cli/migrations/0050_verification_plan_disabled_event.sql +78 -0
  39. package/apps/cli/migrations/0051_verification_cancellation_intent.sql +255 -0
  40. package/apps/cli/migrations/0052_readiness_catalog_v2.sql +82 -0
  41. package/apps/cli/migrations/0053_shared_workspace_strategy.sql +103 -0
  42. package/apps/cli/migrations/0054_remove_active_mock_provider.sql +5 -0
  43. package/apps/cli/migrations/0055_workspace_tool_calls.sql +161 -0
  44. package/apps/cli/migrations/0056_work_item_dependencies.sql +100 -0
  45. package/apps/cli/migrations/0057_workspace_tool_exact_edit.sql +102 -0
  46. package/apps/cli/migrations/0058_launch_measurements.sql +157 -0
  47. package/apps/cli/migrations/0059_launch_releases.sql +145 -0
  48. package/apps/cli/migrations/0060_guided_deployments.sql +179 -0
  49. package/apps/cli/migrations/0061_environment_bound_deployments.sql +103 -0
  50. package/apps/web/dist/assets/index-DvHDlEtu.js +13 -0
  51. package/apps/web/dist/assets/index-DvHDlEtu.js.map +1 -0
  52. package/apps/web/dist/assets/index-Ev7mo9dU.css +1 -0
  53. package/apps/web/dist/assets/radix-vendor-CRdHXIPR.js.map +1 -1
  54. package/apps/web/dist/assets/tanstack-vendor-Do8jh46X.js +2 -0
  55. package/apps/web/dist/assets/tanstack-vendor-Do8jh46X.js.map +1 -0
  56. package/apps/web/dist/assets/validation-vendor-BkeqxOpa.js +51 -0
  57. package/apps/web/dist/assets/validation-vendor-BkeqxOpa.js.map +1 -0
  58. package/apps/web/dist/index.html +4 -4
  59. package/fixtures/projects/api-service-b/README.md +14 -2
  60. package/fixtures/projects/api-service-b/SAMPLE-WORKFLOWS.md +52 -0
  61. package/fixtures/projects/api-service-b/package.json +9 -0
  62. package/fixtures/projects/api-service-b/src/issues.mjs +16 -0
  63. package/fixtures/projects/api-service-b/test/issues.test.mjs +26 -0
  64. package/fixtures/projects/web-app-a/README.md +22 -2
  65. package/fixtures/projects/web-app-a/SAMPLE-WORKFLOWS.md +52 -0
  66. package/fixtures/projects/web-app-a/package.json +10 -0
  67. package/fixtures/projects/web-app-a/src/server.mjs +28 -0
  68. package/fixtures/projects/web-app-a/src/tasks.mjs +38 -0
  69. package/fixtures/projects/web-app-a/test/server.test.mjs +19 -0
  70. package/fixtures/projects/web-app-a/test/tasks.test.mjs +27 -0
  71. package/package.json +8 -3
  72. package/apps/web/dist/assets/index-BkBTdK6p.css +0 -1
  73. package/apps/web/dist/assets/index-C74NW4gx.js +0 -8
  74. package/apps/web/dist/assets/index-C74NW4gx.js.map +0 -1
  75. package/apps/web/dist/assets/tanstack-vendor-ec08LVZ_.js +0 -2
  76. package/apps/web/dist/assets/tanstack-vendor-ec08LVZ_.js.map +0 -1
  77. package/apps/web/dist/assets/validation-vendor-Bbm-tCDI.js +0 -65
  78. package/apps/web/dist/assets/validation-vendor-Bbm-tCDI.js.map +0 -1
package/README.md CHANGED
@@ -5,12 +5,13 @@
5
5
  <a href="https://loomrail.github.io/loomrail/">Website</a> ·
6
6
  <a href="docs/guides/GETTING-STARTED.md">Quick start</a> ·
7
7
  <a href="docs/guides/GETTING-STARTED.ru.md">Быстрый старт</a> ·
8
- <a href="docs/README.md">Documentation</a>
8
+ <a href="docs/README.md">Documentation</a> ·
9
+ <a href="ROADMAP.md">Roadmap</a>
9
10
  </p>
10
11
  <p>
11
12
  <a href="https://github.com/loomrail/loomrail/actions/workflows/ci.yml"><img src="https://github.com/loomrail/loomrail/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
12
13
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-6173ff" alt="Apache 2.0 license" /></a>
13
- <img src="https://img.shields.io/badge/status-pre--alpha-c58b20" alt="Pre-alpha status" />
14
+ <img src="https://img.shields.io/badge/status-public%20beta-4d63c7" alt="Public Beta status" />
14
15
  <img src="https://img.shields.io/badge/Node.js-24.19-43853d" alt="Node.js 24.19" />
15
16
  </p>
16
17
  </div>
@@ -26,66 +27,95 @@ the source of truth.
26
27
  </picture>
27
28
 
28
29
  > [!IMPORTANT]
29
- > Loomrail is public pre-alpha software. New projects use **Auto**: an installed, authenticated Codex or Claude Code
30
- > CLI can be selected for new sessions and spend provider quota. To guarantee a zero-quota first run, choose **Mock**
31
- > in **Settings AI provider** before starting the workflow. Loomrail never installs or signs into a provider,
30
+ > Loomrail is Public Beta software for macOS on Apple Silicon. New projects use **Auto**, which selects only a
31
+ > compatible, signed-in local
32
+ > Codex CLI or Claude Code CLI. Loomrail does not ask for provider API keys or use separate API billing; a missing,
33
+ > incompatible, or signed-out CLI blocks startup instead of falling back. Loomrail never creates provider credentials,
32
34
  > enables permission-bypass flags, commits, pushes, merges, or deploys for you. A task worktree is not an
33
- > operating-system sandbox.
35
+ > operating-system sandbox. Windows and Linux live-provider execution is not supported by this Beta and fails closed;
36
+ > Windows remains covered by source, browser and clean-install CI while its real local-CLI evidence is pending.
34
37
 
35
38
  ## Install and run safely
36
39
 
37
- Requirements: Node.js `>=24.19 <25`, macOS or Windows, and a browser on the same machine. Linux is best effort.
40
+ Requirements: Node.js `>=24.19 <25`, macOS on Apple Silicon, a browser on the same machine, the isolated Chromium build
41
+ managed by the installed Playwright package, and at least one official local agent CLI already signed in:
42
+
43
+ - Codex: install the official CLI and run `codex login` once; or
44
+ - Claude Code: install the official CLI and run `claude auth login` once.
45
+
46
+ That login remains owned by the provider CLI. Loomrail detects it read-only and never asks you to copy an API key.
47
+ Windows and Linux are not supported live-provider targets in this Beta.
38
48
 
39
49
  Start in a new empty directory, not inside a repository you care about:
40
50
 
51
+ <!-- loomrail-guided-activation-v1:start -->
52
+
41
53
  ```bash
42
54
  mkdir loomrail-evaluation
43
55
  cd loomrail-evaluation
44
- npm install loomrail@next
45
- npx loomrail
56
+ npm install --ignore-scripts loomrail@next
57
+ npx playwright install chromium
58
+ npx loomrail try
46
59
  ```
47
60
 
61
+ <!-- loomrail-guided-activation-v1:end -->
62
+
63
+ The Chromium download is an explicit one-time installation for deterministic Browser QA. Loomrail never reuses your
64
+ signed-in browser profile. `loomrail try` first checks the local CLI version and login read-only. If a required check
65
+ fails it writes nothing and tells you whether to install, update, or sign in to that CLI. When ready, it states the
66
+ local state/log side effects, starts the loopback daemon, and opens the guided route. Each later mutation remains a
67
+ visible owner action.
68
+
48
69
  The launcher binds to `127.0.0.1`, opens a one-time authenticated URL, and stores state in local SQLite. Keep the
49
70
  terminal open and stop Loomrail with `Ctrl+C`.
50
71
 
51
72
  If the browser must not open automatically:
52
73
 
53
74
  ```bash
54
- npx loomrail --no-open --port 4176
75
+ npx loomrail try --no-open --port 4176
55
76
  ```
56
77
 
57
78
  Open the printed URL on the same machine within 60 seconds. `--no-open` does not enable remote access.
58
79
 
59
- For a global launcher, use `npm install -g loomrail@next` and then `loomrail`. The project-local route above is
60
- recommended for evaluation because it keeps the selected pre-alpha channel visible.
80
+ For a global launcher, use `npm install -g --ignore-scripts loomrail@next`, run
81
+ `npx playwright install chromium`, and then `loomrail try`.
82
+ The project-local route above is recommended for evaluation because it keeps the selected Beta channel visible.
61
83
 
62
84
  ## First run
63
85
 
64
- 1. Choose **Initialize demo workspace**.
65
- 2. Open **Settings AI provider** and choose **Mock** for the zero-quota walkthrough.
66
- 3. Create a task with a concrete outcome and observable acceptance criteria.
67
- 4. Move it to **Ready** and start the workflow.
68
- 5. Answer the blocking Human Request and approve the explicit mock budget increase.
69
- 6. Inspect Review and QA evidence, then accept the delivery or return it to work as the owner.
86
+ 1. Choose **Prepare demo workspace**.
87
+ 2. Choose **Codex CLI** or **Claude Code CLI** for this project.
88
+ 3. Create the exact guided task and move it to **Ready**.
89
+ 4. Start the guided workflow with the displayed Loomrail budget and model tier.
90
+ 5. Open **Attention**, answer any blocking Human Request, and review every explicit budget change.
91
+ 6. When acceptance appears in **Attention**, open its exact task, inspect Review and QA evidence, then accept the
92
+ delivery or return it to work as the owner.
93
+
94
+ The bundled web demo needs no second server: its deterministic QA step measures Loomrail's own local readiness
95
+ endpoint on the selected port. Your repositories use an explicit `.loomrail/browser-qa.json` plan; see the
96
+ [Browser QA guide](docs/guides/BROWSER-QA.md).
70
97
 
71
98
  The task, request, budget, evidence, and decision survive page reloads and Loomrail restarts. The
72
99
  [quick start](docs/guides/GETTING-STARTED.md) walks through the route in detail.
73
100
 
74
- ## Your repository and live providers
101
+ ## Your repository and providers
75
102
 
76
- After the mock route works, the owner guide explains repository registration, Project Constitution review, task
77
- worktrees, change inspection, backup, and recovery:
103
+ The guides explain repository registration, Project Constitution review, task worktrees,
104
+ change inspection, backup, recovery, diagnostics, upgrade, and uninstall:
78
105
 
79
106
  - [Owner guide](docs/guides/USER-GUIDE.md)
80
107
  - [Руководство владельца](docs/guides/USER-GUIDE.ru.md)
108
+ - [Operations guide](docs/guides/OPERATIONS.md) · [Эксплуатация](docs/guides/OPERATIONS.ru.md)
109
+ - [Provider compatibility](docs/guides/PROVIDER-COMPATIBILITY.md) · [Совместимость провайдеров](docs/guides/PROVIDER-COMPATIBILITY.ru.md)
110
+ - [Bundled samples and roles](docs/guides/SAMPLES.md) · [Встроенные примеры и роли](docs/guides/SAMPLES.ru.md)
81
111
  - [Reproducible full-route example](docs/examples/full-route/README.md)
82
112
  - [Security and trust boundaries](docs/security/THREAT-MODEL.md)
83
113
 
84
- Install and authenticate the provider CLI yourself, then start Loomrail normally. In **Settings → AI provider**, keep
85
- **Auto** to use an available signed-in CLI or choose Codex, Claude Code, or Mock explicitly for that project. Use
86
- **Check again** after installing or signing in; no extra launch command is required. `LOOMRAIL_PROVIDER` remains an
87
- optional process-wide override for automation and troubleshooting. Read the owner guide and threat model before
88
- exposing a repository to either live CLI.
114
+ Install and sign in to an official provider CLI, then start Loomrail normally. In **Settings → AI provider**, use
115
+ **Check again** to refresh readiness. Auto considers only compatible and authenticated local runtimes. An explicit
116
+ unavailable provider remains visible and fails closed. `LOOMRAIL_PROVIDER` remains an optional process-wide override
117
+ for automation and troubleshooting, but it does not bypass version checks, login, stage support, permissions, or
118
+ budgets.
89
119
 
90
120
  Context7 is different from an AI provider: its exact-pinned MCP server ships with Loomrail. In **Settings → MCP
91
121
  connections**, choose **Review bundled Context7**; no global install or `npx` command is needed. Loomrail still requires
@@ -95,8 +125,17 @@ machine, so never include secrets, personal data, or proprietary code.
95
125
  ## Current boundary
96
126
 
97
127
  - Local browser UI, loopback daemon, and local SQLite state.
98
- - Auto-discovered or explicitly selected providers, plus a deterministic Mock route with no provider quota.
128
+ - Explicit selection between the locally installed Codex CLI and Claude Code CLI, with no API-key route or synthetic
129
+ runtime fallback.
130
+ - All six stages, including `IMPLEMENT` and `QA`, use the real selected local agent. Repository access goes only
131
+ through Loomrail's bounded workspace tools, and provider text alone is never treated as file or test evidence.
132
+ - Local CLI token usage is reconciled after a session. Loomrail enforces time, turn, tool and output limits during
133
+ execution and can block later work from the durable ledger, but cannot promise an exact stop at a token boundary
134
+ inside the current provider session.
135
+ - Up to three agent runs in parallel by default, with durable global, Project, provider, and workspace gates plus an
136
+ Agent Fleet view of active roles and exact queue reasons.
99
137
  - Project-scoped local MCP connections and a bundled, owner-approved Context7 preset.
138
+ - A global, restart-safe Attention Inbox for Human Requests and acceptance deep-links across every Project.
100
139
  - A typed read-only tool SDK at `loomrail/plugin-sdk`; local registration still uses explicit C1 consent and grant.
101
140
  - Existing-repository registration, readiness checks, per-task worktrees, change inspection, and owner-approved
102
141
  Project Constitution.
@@ -132,6 +171,8 @@ pnpm test:e2e
132
171
  See [CONTRIBUTING.md](CONTRIBUTING.md), the [architecture overview](docs/architecture/OVERVIEW.md), and the
133
172
  [release guide](docs/RELEASE.md). Plugin authors should start with the
134
173
  [Plugin SDK guide](docs/guides/PLUGIN-SDK.md) or its [Russian version](docs/guides/PLUGIN-SDK.ru.md).
174
+ Use the [structured issue chooser](https://github.com/loomrail/loomrail/issues/new/choose) for reproducible bugs or
175
+ bounded product proposals; suspected vulnerabilities belong in the [private security channel](SECURITY.md).
135
176
 
136
177
  ## License
137
178