Commit Graph
72 Commits
Author SHA1 Message Date
Julian lechner a81c67f070 feat(semantic-search): report search cost before retrieval
CI / CI configuration security checks (push) Successful in 4s
CI / Capabilities and shell quality (push) Successful in 15s
CI / Python tests and compilation (push) Successful in 18s
CI / Build and inspect generated packages (push) Successful in 19s
CI / PowerShell tests on Ubuntu (push) Successful in 1m6s
CI / Installed client configuration smoke tests (push) Successful in 38s
CI / Bash integration and installation guards (push) Successful in 1m10s
CI / Qwen retrieval integration (push) Successful in 14m24s
2026-10-01 15:50:29 +02:00
Julian lechnerandClaude Opus 5.5 9ff0330537 test(config): verify agent limits and permissions take effect
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>
2026-10-01 13:59:11 +02:00
Julian lechnerandClaude Opus 5.5 dec926fee3 feat(install): roll back interrupted syncs from a journal
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>
2026-10-01 13:59:10 +02:00
Julian lechnerandClaude Opus 5.5 cceb9e4839 fix(build): build privately and swap generated/ after validation
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>
2026-10-01 13:59:10 +02:00
Julian lechnerandClaude Opus 5.5 587c27c1cd feat(install): install semantic-search only with retrieval
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>
2026-10-01 13:27:55 +02:00
Julian lechnerandClaude Opus 5.5 9d922cd678 fix(retrieval): run in-process when pipes are forbidden
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>
2026-10-01 13:27:54 +02:00
Julian lechnerandClaude Opus 5.5 739d2f7801 perf(retrieval): use bfloat16 on supporting GPUs
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>
2026-10-01 13:13:07 +02:00
Julian lechnerandClaude Opus 5.5 f134c50d39 fix(retrieval): match the Qwen query prompt format
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>
2026-10-01 13:13:06 +02:00
Julian lechnerandClaude Opus 5.5 d60dd10c45 fix(retrieval): end brace-language symbols at top-level braces
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>
2026-10-01 13:13:05 +02:00
Julian lechnerandClaude Opus 5.5 e138c0277e feat(retrieval): index markup, style, SQL, and project files
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>
2026-10-01 13:13:04 +02:00
Julian lechnerandClaude Opus 5.5 2354ce2c2c fix(retrieval): version the daemon by code hash
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>
2026-10-01 13:13:03 +02:00
Julian lechnerandClaude Opus 5.5 4e4a10604d fix(retrieval): keep multi-word arguments on Windows
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>
2026-10-01 13:13:02 +02:00
Julian lechnerandClaude Opus 5.5 83e921301b fix(test): start exited process portably in lock test
CI / CI configuration security checks (push) Successful in 4s
CI / Capabilities and shell quality (push) Successful in 15s
CI / Python tests and compilation (push) Successful in 19s
CI / Build and inspect generated packages (push) Successful in 16s
CI / PowerShell tests on Ubuntu (push) Successful in 1m6s
CI / Installed client configuration smoke tests (push) Successful in 44s
CI / Bash integration and installation guards (push) Successful in 1m4s
CI / Qwen retrieval integration (push) Successful in 14m22s
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>
2026-10-01 12:49:04 +02:00
Julian lechnerandClaude Opus 5.5 96313f4056 feat(install): lock destinations during sync
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>
2026-10-01 12:45:39 +02:00
Julian lechnerandClaude Opus 5.5 d4143ae2ac fix(install): replace all managed files atomically
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>
2026-10-01 12:45:38 +02:00
Julian lechnerandClaude Opus 5.5 3203e4ed67 fix(build): generate flat Claude skill directories
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>
2026-10-01 11:02:07 +02:00
Julian lechnerandClaude Opus 5.5 82391bdfbf test(clients): add smoke test timeouts and required-client mode
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>
2026-10-01 11:02:05 +02:00
Julian lechnerandClaude Opus 5.5 a30440f55d feat(claude): limit concurrent subagents and spawn depth
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>
2026-10-01 11:01:45 +02:00
Julian lechnerandClaude Opus 5.5 cd2f4fa93e test(clients): add behavioral client smoke tests
Install a generated package into a temporary home with foreign settings, then
ask the real Claude and Codex CLIs which skills, agents, and hooks they
discover. No model request completes. The Claude skill check currently fails
because Claude does not discover nested package skills.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:23 +02:00
Julian lechnerandClaude Opus 5.5 e2394ca1d1 fix(install): keep foreign Claude hooks in mixed groups
Remove only setup-owned hook entries from a hook group and keep foreign
entries with their group options, such as matcher.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:23 +02:00
Julian lechnerandClaude Opus 5.5 857720bcfd fix(install): exchange install option content through UTF-8 files
Windows PowerShell pipes re-encode text by console code page: under code page
65001 a BOM broke the config.toml merge, and otherwise non-ASCII characters
became question marks. Pass managed and merged content through files, and
decode piped input as utf-8-sig.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:14 +02:00
Julian lechnerandClaude Opus 5.5 3067d82e1a feat(claude): allow Context7 domain in enabled sandbox
Where the Claude sandbox is enabled, permit network access to
mcp.context7.com only, and validate that exact shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:42 +02:00
Julian lechnerandClaude Opus 5.5 e237d07441 refactor(skills): remove workflows covered by Superpowers
Drop the debugging, implementation-planner, code-review, and
regression-verification skills so Superpowers owns these triggers without
competing descriptions. Focused domain skills remain.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:21:59 +02:00
Julian lechnerandClaude Opus 5.5 1a6cc4d46f fix(config): preserve unmanaged Codex TOML tables
Keep foreign tables such as mcp_servers and model_providers during config
synchronization instead of dropping them; only setup-owned keys are replaced.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:21:41 +02:00
Julian lechner f7eec43122 test(skills): verify reduced catalog handling 2026-09-30 17:10:08 +02:00
Julian lechner 05663197f7 feat(customizations): add removal commands 2026-09-30 17:08:59 +02:00
Julian lechner 29c0e98272 fix(retrieval): normalize vector result IDs 2026-09-30 17:08:22 +02:00
Julian lechner 9bc3f253c1 fix(retrieval): validate owned index data 2026-09-30 17:08:03 +02:00
Julian lechner 8e4aa0523e fix(install): keep skill backups undiscoverable 2026-09-30 17:07:33 +02:00
Julian lechner 6361e81915 fix(plugins): update installed QMD without reinstalling 2026-09-30 12:44:35 +02:00
Julian lechner 756b8fe59e fix(retrieval): accept generated Python bytecode cache
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 25s
CI / CI configuration security checks (push) Successful in 5s
CI / Build and inspect generated packages (push) Successful in 14s
CI / PowerShell tests on Ubuntu (push) Successful in 1m14s
CI / Bash integration and installation guards (push) Successful in 1m38s
CI / Installed client configuration smoke tests (push) Successful in 14s
CI / Qwen retrieval integration (push) Successful in 14m18s
2026-09-30 11:41:45 +02:00
Julian lechner 280292d72e fix(plugins): detect Context7 managed by MCPorter
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 13s
CI / PowerShell tests on Ubuntu (push) Successful in 1m10s
CI / Bash integration and installation guards (push) Successful in 1m38s
CI / Installed client configuration smoke tests (push) Successful in 13s
CI / Qwen retrieval integration (push) Successful in 14m24s
2026-09-30 11:32:27 +02:00
Julian lechner 728d72312f test(packages): count sandbox properties correctly
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 14s
CI / PowerShell tests on Ubuntu (push) Successful in 1m10s
CI / Bash integration and installation guards (push) Successful in 1m36s
CI / Installed client configuration smoke tests (push) Successful in 14s
CI / Qwen retrieval integration (push) Successful in 14m23s
2026-09-30 11:04:22 +02:00
Julian lechner 2d43055a9c test(packages): check Claude sandbox by platform
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 11s
CI / PowerShell tests on Ubuntu (push) Failing after 1m11s
CI / Bash integration and installation guards (push) Successful in 1m38s
CI / Installed client configuration smoke tests (push) Successful in 28s
CI / Qwen retrieval integration (push) Canceled after 5m19s
2026-09-30 10:56:02 +02:00
Julian lechner 6ab92ec30e fix(config): preserve TOML table indentation
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 13s
CI / PowerShell tests on Ubuntu (push) Failing after 55s
CI / Bash integration and installation guards (push) Failing after 16s
CI / Installed client configuration smoke tests (push) Successful in 14s
CI / Qwen retrieval integration (push) Canceled after 6m14s
2026-09-30 10:33:51 +02:00
Julian lechner 1b13bed418 test(retrieval): initialize temporary repositories
CI / Capabilities and shell quality (push) Successful in 13s
CI / Python tests and compilation (push) Successful in 48s
CI / CI configuration security checks (push) Successful in 3s
CI / Build and inspect generated packages (push) Successful in 13s
CI / PowerShell tests on Ubuntu (push) Failing after 55s
CI / Bash integration and installation guards (push) Failing after 17s
CI / Installed client configuration smoke tests (push) Successful in 35s
CI / Qwen retrieval integration (push) Canceled after 6m44s
2026-09-30 10:26:37 +02:00
Julian lechner a67c34f78d fix(retrieval): honor ignore rules and scale search
CI / Capabilities and shell quality (push) Successful in 23s
CI / PowerShell tests on Ubuntu (push) Successful in 12s
CI / Python tests and compilation (push) Failing after 35s
CI / Build and inspect generated packages (push) Skipped
CI / Bash integration and installation guards (push) Skipped
CI / Installed client configuration smoke tests (push) Skipped
CI / Qwen retrieval integration (push) Skipped
CI / CI configuration security checks (push) Successful in 3s
2026-09-30 09:56:57 +02:00
fraujulian 32154e6a89 test(prompt-budget): cover token thresholds 2026-09-25 19:11:28 +02:00
fraujulian 2b04fcf7fe test(packages): check current MCP routing rules 2026-09-25 18:16:00 +02:00
fraujulian 6a1730c6ec fix(ci): resolve Linux and summary checks
CI / Capabilities and shell quality (push) Successful in 13s
CI / Python tests and compilation (push) Successful in 14s
CI / PowerShell tests on Ubuntu (push) Failing after 17s
CI / CI configuration security checks (push) Successful in 3s
CI / Build and inspect generated packages (push) Failing after 9s
CI / Bash integration and installation guards (push) Skipped
CI / Installed client configuration smoke tests (push) Skipped
CI / Qwen retrieval integration (push) Successful in 14m48s
2026-09-25 07:10:26 +00:00
fraujulian ee19c64beb feat(install): configure custom status line 2026-09-24 22:58:56 +02:00
fraujulian ce54b34092 test(rules): verify nested rule packages 2026-09-24 21:42:57 +02:00
fraujulian aeec4d351c refactor(rules): move loading map to global instructions 2026-09-24 18:48:17 +02:00
fraujulian a50575dbec ci: split checks and fix gitea workflow
CI / Capabilities and shell quality (push) Failing after 12s
CI / Python tests and compilation (push) Failing after 7s
CI / Build and inspect generated packages (push) Skipped
CI / Bash integration and installation guards (push) Skipped
CI / Installed client configuration smoke tests (push) Skipped
CI / Qwen retrieval integration (push) Skipped
CI / PowerShell tests on Ubuntu (push) Failing after 18s
CI / CI configuration security checks (push) Successful in 4s
2026-09-24 17:32:31 +02:00
Julian lechner eeb437e234 fix(extensions): preserve existing global packages 2026-09-24 17:10:02 +02:00
Julian lechner f3c938910d fix(retrieval): keep active runtime after benchmark 2026-09-24 17:08:30 +02:00
Julian lechner 62513b6858 fix(manifest): preserve substituted file newlines 2026-09-24 17:08:30 +02:00
Julian lechner 68acfa5a6f docs(rules): allow explicitly selected native MCP 2026-09-24 17:08:29 +02:00
fraujulian 3676891292 test(customizations): cover credentials and overlays 2026-09-18 17:26:12 +02:00
fraujulian 027eaa158a fix(extensions): update managed mcporter 2026-09-18 16:56:39 +02:00