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
2 changes: 2 additions & 0 deletions .ai-run/guides/usage/project-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@ codemie-kimi --profile kimi # uses global kimi profile + local project f
codemie-claude --profile anthropic # uses global anthropic profile + local project fields
```

> **URL precondition.** Project-context preservation (`codeMieProject`, `codeMieIntegration`, `codeMieUrl`) applies only when the selected global profile and the local team profile target the same `codeMieUrl` (compared after stripping trailing slashes and lower-casing). When the URLs differ, the user is switching CodeMie environments and the team's project/integration IDs would reference the wrong env's records — so the local project context is dropped and the selected global profile supplies everything. This is enforced in `ConfigLoader.load()` and `ConfigLoader.loadWithSources()`.

### CI/CD overrides

```bash
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"ts":"2026-06-29T13:50:00Z","gate_id":"code-review.final","mode":"hitl","verdict":{"decision":"approve","rationale":"User approved via HITL prompt: clean gates, 30/30 tests, 4 conformant commits, gate logic + tests + doc note match the plan.","follow_ups":[],"confidence":"high","source":"hitl"},"escalated":false,"prior_context":{"question":"Code-review verdict for fix/cross-env-project-fields-leak?","options":["Approve","Request changes","Abort"],"phase":5,"risk_flags":[],"artifact_refs":["docs/superpowers/tasks/2026-06-29-cross-env-project-fields-leak/plan.md","git diff main...HEAD"]}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"schema":1,"ts":"2026-06-29T13:50:00Z","event":"decision.recorded","run_id":"cross-env-project-fields-leak","phase":5,"actor":"decision-router","summary":"Decision recorded for code-review.final: approve","artifacts":["decisions.jsonl"],"data":{"gate_id":"code-review.final","mode":"hitl","decision":"approve","source":"hitl","escalated":false}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"schema": 1,
"runner": "npm",
"source": "guide",
"guide_path": ".ai-run/guides/quality-gates.md",
"gates": [
{ "id": "license-check", "command": "npm run license-check", "available": true },
{ "id": "lint", "command": "npm run lint", "available": true },
{ "id": "typecheck", "command": "npm run typecheck", "available": true },
{ "id": "build", "command": "npm run build", "available": true },
{ "id": "unit", "command": "npm run test:unit", "available": true },
{ "id": "integration", "command": "npm run test:integration", "available": true },
{ "id": "commitlint", "command": "npm run commitlint:last", "available": true },
{ "id": "ui", "command": "(n/a — no UI surface)", "available": false }
],
"ui_globs": ["\\.(tsx|jsx|css|html|vue|svelte)$", "src/(ui|frontend|components)/"],
"detected_at": "2026-06-29T13:55:00Z"
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# QA Gate Report — cross-env-project-fields-leak

**Branch**: fix/cross-env-project-fields-leak
**Runner**: npm (guide-first via `.ai-run/guides/quality-gates.md`)
**Started**: 2026-06-29T13:55:00Z
**Status**: PASSED

## Gates

| Gate | Status | Duration | Command | Notes |
|--------------|--------|----------|------------------------------------|-------|
| license-check | PASS | ~5s | `npm run license-check` | No missing/stale headers reported. Output is dependency license summary. |
| lint | PASS | ~6s | `npm run lint` | ESLint 9.x, `--max-warnings=0`, zero warnings. |
| typecheck | PASS | ~6s | `npm run typecheck` | `tsc --noEmit`, no diagnostics. |
| build | PASS | ~8s | `npm run build` | `tsc && tsc-alias && npm run copy-plugin` all clean. |
| unit | PASS | 10.28s | `npm run test:unit` | 2162 pass / 1 skipped / 142 files. New tests: 13 added in `src/utils/__tests__/config-project-override.test.ts`. |
| integration | PASS | 24.27s | `npm run test:integration` | 220 pass / 1 skipped / 27 files. |
| commitlint | PASS | <1s | `npm run commitlint:last` + `npx commitlint --from main --to HEAD` | All 4 commits on the branch conform to Conventional Commits. |
| ui | SKIPPED | — | (n/a) | No UI surface changed — diff is ConfigLoader internals + tests + one markdown line. `feature-verification` not required. |

## Failure detail

None.

## Drift signal

no — implementation, tests, and plan all describe the same private helper signature `shouldPreserveProjectContext(localUrl, globalUrl): boolean`, the same gate behavior at both call sites, and the same six PROJECT_FIELDS / `preserveProjectContext` shape. No type, signature, or method-name drift.
Loading
Loading