startDaemon accepts the daemon of another launch when its own child
exits 0. A 403 from the daemon marks daemon.json as stale: the wrapper
deletes it and starts a new daemon once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An exclusive daemon.lock (stale after 2 minutes) is held from before the
health check until the daemon listens; a launch that loses exits 0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The daemon passes `git ls-files --others --ignored --directory` as
escaped ignore globs to addCollection. QMD's YAML write-through drops
`ignore` and index.yml wins on every re-sync, so the list is also
written into index.yml and re-synced whenever it changes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
QMD 2.8.3 createStore unloads the models after 5 idle minutes, which
made the next search reload them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Removal reads the daemon PID before --stop and waits up to 10 s for it
to exit. A model file that cannot be deleted stays recorded in the state
for a retry instead of aborting removal, and a failing models block
restore only warns.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Auto now rolls back and reports "not suitable" when Node.js is too old,
npm or the model download fails. A failing GPU probe falls back to the
CPU in both Yes and Auto.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The plan and apply split left exists declared but unused in run_managed_sync
(SC2034), which failed the CI Bash lint.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Six tasks with hidden checks: ASP.NET validation and 404 handling, C#
cancellation, and TypeScript overlap, deep merge, and debounce fixes, checked
with dotnet run and node --test.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pin one model and reasoning effort per client for both arms, disable user and
plugin skills in the Codex baseline home, and record what each arm loads in
provenance.json; stop when the arms are not comparable.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Check that Codex keeps the V1 multi-agent implementation that honors
max_depth, and, with AI_CONFIG_LIVE_TESTS=1, that Claude withholds the Agent
tool from subagents, refuses subagents above the concurrency limit, and
blocks git reset --hard in every shell tool.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Plan each sync before writing, record the plan in .ai-config-transaction.json,
and roll an interrupted destination back from its backups on the next run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude offers Bash and PowerShell tools on Windows, but each package denied
git reset --hard, git clean, and recursive deletes only for its own shell. A
live test ran git reset --hard through Bash under the PowerShell package.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Build into a per-run sibling directory and replace generated/ only after
validation, with a lock around the swap, so a failed or parallel build never
leaves generated/ partial.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add the setup-no-search arm for Claude, generated filler modules, an optional
warm index outside the timing, and a searches count per run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Three tasks whose target code shares no vocabulary with the prompt, run in a
repository with generated distractor modules.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the restrictive retrieval paragraph with a short rule: rg for known
names, the semantic-search skill first for concept questions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Skip the semantic-search skill while semantic retrieval is disabled and remove
a setup-owned copy when it is turned off.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Expose the local Qwen search as a skill with an explicit trigger for concept
questions, the command for both shells, result handling, and its limits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add the semantic retrieval data directory to
sandbox_workspace_write.writable_roots so Codex can build and refresh the
index without an approval.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Codex sandbox on Windows denies the pipes that the daemon and worker
process use, so searches waited 120 seconds and then failed. Detect that and
run the search in-process.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Load both models in bfloat16 when a CUDA GPU supports it and keep float32 on
CPUs. Document the daemon versioning and the indexed file types.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop the trailing space after "Query:" as in the model card and include the
prompt in the query cache key.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Code after a top-level closing brace belonged to the preceding function, for
example shell loops labeled as quote_toml. Attribute it to the module.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add HTML, CSS, SCSS, XAML, SQL, XML, project, Razor, Kotlin, Gradle, and
module JavaScript files with SQL and Kotlin symbols, and rebuild the index.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Derive the daemon address and start lock from a hash of server.py, so an
updated server never reuses a daemon still running older code.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
os.execv does not quote arguments on Windows, so the hand-off to the virtual
environment split every multi-word --query and search always failed. Run the
runtime with subprocess on Windows instead.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Start-Process -WindowStyle is unavailable in PowerShell on Linux, which broke
the CI PowerShell job. Use ProcessStartInfo with CreateNoWindow instead.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run tasks with and without the installed setup and compare pass rate, rework,
duration, tokens, cost, tool calls, and workflow checks; exclude runs that end
with a client or API error.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ten small Python tasks, each failing on the fixture and passing with a
reference solution, including workflow expectations for a small change, a
bugfix, and a delegable change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Read Claude /context, /skill-doctor, and its init event, and Codex debug
prompt-input, to list categories, active plugins, and installed skills that
are missing or listed without description context.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Create <destination>/.ai-config.lock exclusively while syncing so parallel
installs or updates fail instead of interleaving writes. A lock left by an
exited process of the same shell on the same host is replaced.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Write config.toml, settings.json, the manifest, and every other managed file to
a temporary sibling and rename it over the target, so an interrupted run
cannot leave a partly written file. Previously only SKILL.md was replaced
this way.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Look for rule skills under skills/rules-*/ and fail when none exist, so a
layout change cannot silently skip their frontmatter validation.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The flat Claude layout moved rule skills to skills/rules-*/, which made the
prompt budget fail to find rules-security.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude discovers only skills/<name>/SKILL.md, so 84 nested skills, including
all rule skills, were invisible. Flatten the categorized catalog for Claude,
keep references, and fail the build on duplicate names or a name that differs
from its directory.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run scripts/tests/test-client-smoke.py in the client-smoke job with required
clients, Python, and Claude sandbox dependencies.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Read client output on a thread with a deadline so a silent or exited client
fails instead of hanging, and fail on a missing CLI when
AI_CONFIG_REQUIRE_CLIENTS=1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Set CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS=5 and
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 so Claude matches the Codex agent
limits and subagents cannot start further subagents.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>