mirror of
https://github.com/akitaonrails/ai-memory.git
synced 2026-10-02 03:24:46 +08:00
Review of #961 found the ported TypeScript matcher claimed more than it enforced. Both matchers now: - recognize OpenClaw's and Devin's `exec` shell tool, and the TS list gains the native aliases (`shell_command`, `terminal`, `execute_bash`, `execute_cmd`); - resolve relative arguments from a shell tool's `workdir` (OpenCode `bash`, OpenClaw `exec`, Codex `shell`) instead of the event cwd; - treat `dir/**` as covering `dir` itself when `dir` holds a glob, as the TS already did; Rust charges that match to its budget. TS `captureStartsWith` walks only the prefix instead of spreading both strings per pattern and argument, and `captureGlob` reuses `captureCharEq`. The shell drop/keep tables move into a `shell` section of the shared capture-policy fixture that both `shell_fixture_vectors` and the Node runtime evidence execute, with tool-alias, workdir, glob-directory and Windows vectors. The Linux CI test job installs Node 24 and runs the Node evidence with `--ignored`, which now fails instead of skipping when Node cannot strip types. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>