Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion .github/agents/fixlab-autofix.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,15 @@ only for information that cannot be established safely from the repository.

## Bugfix loop

Before validation in a new isolated worktree, plan `fixlab onboard WORKTREE
--from SOURCE --runtime RUNTIME`. After scoped setup approval, add `--yes`.
The source profile declares non-sensitive configuration in `worktreeSetup.files`.
Never copy credentials or browser state. Missing configuration, authentication
or denied runtime access is a blocker; do not retry unchanged approvals or
grant blanket path access. Sign-in and MFA remain human-controlled.
In read-only modes, do not provision or alter configuration; report missing
prerequisites as blocked.

1. **Classify scope.** Identify the smallest component in the profile that owns
the behavior. Treat its source paths as the initial edit allowlist.
2. **Reproduce or measure.** Locate the affected code and establish a failing
Expand Down Expand Up @@ -92,9 +101,24 @@ pass, remove transient validation artifacts, review the effective diff, commit
and push that checkpoint, and create or update a draft pull request. Run
remaining independent builds and browser journeys while the draft is open,
push later reviewed checkpoints to the same branch, and never mark the PR ready
until every required gate passes or the developer explicitly accepts the
until every required local gate passes or the developer explicitly accepts the
recorded outcome.

After required local validation and approval gates pass or have an explicitly
accepted outcome, publish the authorized PR by marking it ready for review.
Do not wait for remote PR CI or build completion before publication; publication
can trigger those checks. Verify the PR is no longer draft before reporting the
PR stage passed. Report remote checks as pending, not passed, and leave merge
policies intact. Use `gh pr ready <number>` for GitHub or
`az repos pr update --id <id> --draft false` for Azure DevOps, then read back
`isDraft` from the provider to confirm it is false. If publication or state
verification fails, report the PR stage blocked or failed, not passed.

Prefix FixLab-created pull-request titles with `FLAB:` followed by a concise
description of the coding change. Use the repository's PR template and clear
Markdown sections for the problem, changes, validation and risks. Keep
validation checkboxes accurate; do not describe a pending gate as passed.

## Guardrails

- Handle one bug at a time; do not bundle unrelated fixes or refactors.
Expand Down
3 changes: 3 additions & 0 deletions .github/agents/fixlab.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,8 @@ review, local validation, live validation when configured, evidence, and pull
request outcome. Never report a skipped or timed-out gate as passed. Never stop
unrelated processes or expose credentials and private test data.

Prefix FixLab-created PR titles with `FLAB:` and format their descriptions with
the repository's PR template, clear validation evidence and remaining risks.

Run `npm run validate` for changes to FixLab itself and summarize exact evidence
and remaining risks.
10 changes: 10 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@ permissions:
contents: read

jobs:
windows-containment:
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version-file: .nvmrc
- run: npm ci
- run: node --test test\windows-executor.test.js test\dashboard-executor-lease.test.js

test:
runs-on: ubuntu-latest
outputs:
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@ All notable changes to FixLab are documented in this file.

## Unreleased

- Keep managed frontend input open so React-style development servers do not
stop on EOF; preserve one-shot helper behavior and owned process cleanup.

- Add approved, configuration-only worktree onboarding with `--from`, preserved
custom files, missing-browser-config preflight, and reviewed exact-directory
grants for linked dependencies; keep credentials and MFA human-controlled.
- Make chat detect incomplete profiles, open an explicit interactive setup
request, and verify Doctor before launching a new dashboard.

- Give Windows tooling descendants one inherited hidden console while retaining
captured input/output, Job Object containment, and termination proofs.
- Publish authorized pull requests after required local validation and approval,
verify draft status is cleared, and leave publication-triggered remote builds
pending rather than waiting for them before publication.

## 0.7.3 - 2026-10-05

- Wait for the native keep-awake inhibitor to become ready before reporting
Expand Down
25 changes: 24 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,19 @@ agency copilot
For direct mode, install and authenticate GitHub Copilot CLI, then use
`--runtime copilot` or set `FIXLAB_RUNTIME=copilot`.

Select a direct Copilot model with `--model <model>` or `FIXLAB_MODEL`.
For the account-dependent HydraFusion research preview:

```powershell
fixlab dashboard C:\path\to\application --runtime copilot --model hydrafusion --open
```

The Copilot dashboard also offers a per-job model selector. Leave it at
Copilot default to avoid an override. Model selection is not supported by the
Agency runtime; unavailable models produce runtime errors rather than silently
switching models. Preview models may buffer stage updates, and FixLab does not
guarantee lower token usage, charges, or elapsed time.

### 2. Install and initialize FixLab

```shell
Expand Down Expand Up @@ -81,6 +94,15 @@ For explicit plan-first onboarding without entering the interactive shell:
fixlab onboard C:\path\to\application
```

For a new worktree of an already configured repository, use
`fixlab onboard C:\path\to\worktree --from C:\path\to\application`.
Review the source profile and its `worktreeSetup.files` allowlist, then rerun
with `--yes` to provision only those non-sensitive files and run setup.
Onboarding also discovers external linked `node_modules` directories and
requires explicit approval before recording their exact runtime path grants.
Authentication and MFA remain interactive; credentials and browser state are
never copied. See [Repository onboarding](docs/repository-onboarding.md).

The first onboarding run creates the repository-owned profile and stops for
review. After configuring that profile, rerun to inspect the setup plan, then
approve dependency restoration, Playwright setup, browser authentication, and
Expand Down Expand Up @@ -187,7 +209,8 @@ visible risk. FixLab never reports a skipped or timed-out gate as successful.
authentication, application startup, and configurable doctor timeouts before
expensive work begins.
- **Early draft pull requests** that become visible after focused regression
checks while independent builds and browser validation continue.
checks while independent local builds and browser validation continue, then
publish after local validation and approval without waiting for remote CI.
- **Playwright evidence** including measurable assertions, screenshots,
videos, traces, failures, explicit data-source behavior, connect-and-retry
authentication, and reuse of an already started React frontend.
Expand Down
34 changes: 33 additions & 1 deletion agents/fixlab.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ instructions provide authoritative commands.

## Workflow

Before validation in a new isolated worktree, plan `fixlab onboard WORKTREE
--from SOURCE --runtime RUNTIME`. After scoped setup approval, add `--yes`.
The source profile declares non-sensitive configuration in `worktreeSetup.files`.
Never copy credentials or browser state. Missing configuration, authentication
or denied runtime access is a blocker; do not retry unchanged approvals or
grant blanket path access. Sign-in and MFA remain human-controlled.
In read-only modes, do not provision or alter configuration; report missing
prerequisites as blocked.

1. Read repository instructions and inspect the effective source state.
2. Identify the smallest affected component and relevant existing tests.
3. For code changes, use an isolated worktree when the current workspace is not
Expand Down Expand Up @@ -70,9 +79,24 @@ commit and push that checkpoint, and create or update a draft pull request.
Run remaining independent builds, application checks, and browser journeys
while the draft is open. Push later reviewed checkpoints to the same branch,
keep validation status and risks current in the PR, and never mark it ready for
review until every required gate passes or repository policy records an
review until every required local gate passes or repository policy records an
explicitly accepted outcome.

After required local validation and approval gates pass or have an explicitly
accepted outcome, publish the authorized PR by marking it ready for review.
Do not wait for remote PR CI or build completion before publication; publication
can trigger those checks. Verify the PR is no longer draft before reporting the
PR stage passed. Report remote checks as pending, not passed, and leave merge
policies intact. Use `gh pr ready <number>` for GitHub or
`az repos pr update --id <id> --draft false` for Azure DevOps, then read back
`isDraft` from the provider to confirm it is false. If publication or state
verification fails, report the PR stage blocked or failed, not passed.

Prefix FixLab-created pull-request titles with `FLAB:` followed by a concise
description of the coding change. Use the repository's PR template and clear
Markdown sections for the problem, changes, validation and risks. Keep
validation checkboxes accurate; do not describe a pending gate as passed.

Runtime-synthesized Playwright scenarios are transient validation artifacts by
default. Remove their source files and validation-only configuration edits
before review, commit, push, or pull-request creation. Do not add newly
Expand All @@ -92,6 +116,14 @@ behavior only rather than validation of the selected backend or its data.

## Safety boundaries

Keep execution economical without weakening evidence: reuse verified session
context instead of rediscovering unchanged repository facts, batch independent
reads, and keep command output compact. Handle bounded work directly; delegate
only independent tasks that justify separate context, not routine searches or
one continuous investigation. On retry, rerun the failed gate and any affected
prerequisites, not unrelated completed stages. Required checks still apply;
never omit them to claim token savings.

- Never select production automatically.
- Never expose, copy, or commit credentials, tokens, customer data, or private
test records.
Expand Down
Loading
Loading