fix(server): wrap the shared client-name alternation like claudewatcher does (#209) #214
Open
mathias
wants to merge 2 commits from
wt/client-pattern into main
pull from: wt/client-pattern
merge into: :main
:main
:wt/client-pattern
:wt/legacy-move
:wt/web-clip
:wt/watcher-write-safety
:wt/wing-layout
:wt/inbox-zero
:fix/pipeline-writes-158
:fix/edit-path-io-192
:fix/create-regular-188
:fix/guard-special-179
:fix/linkcheck-keeps-write-178
:fix/write-dir-redirect-173
:fix/tunnel-detect-174
:fix/pipeline-root-157
:w3/154-mcp-auth-wiring
:fix/tunnel-traversal
:test/in-brain-targets-171
:fix/brain-scan-root-157
:fix/graph-wiki-root-157
:fix/vectorstore-root-157
:fix/notes-root-157
:fix/search-root-157
:fix/brainwide-root-157
:fix/raw-symlinks-153
:feat/symlink-tripwire-157
:fix/rest-auth-149
:fix/123-brain-edit-envelope-check
:feat/106-page-aware-extraction
:fix/105-source-drift-on-main
:fix/104-surface-merge-conflicts-on-main
:agent/b1-compile-on-ingest
:agent/104-surface-merge-conflicts
:agent/105-source-drift
:agent/107-loud-unconfigured-alerting
:feat/brain-read-edit
:fix/capture-i1-refusal-names-target
:renovate/configure
:feat/consolidate-single-harness
:icebox/cmd-routing
:feat/brain-pending-promote
:fix/close-session-classification-refresh
:fix/capture-summarywriter
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
80f3fd3c5e |
fix(wing,server): client names are matched as whole Unicode words; unsafe lists are a startup error (review of #214)
- WrapNames bounds the bare name list with Unicode-aware edges instead of \b
(Go's \b is ASCII-only, so a name with a non-ASCII edge letter such as Åke,
Société, Ørsted would never have matched), and validates the list on its own:
it must compile, must not match the empty string, and cannot break out of its
group ('x)|.*(' compiles alone only if balanced)
- NewRouter refuses any pattern that matches text naming no client
- docs state the whole-word semantics and what is not matched
Mutation-checked. Open decision for Mathias: whole-word versus substring recall
for a confidentiality filter (plurals, CamelCase and digits glued on do not match).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
||
|
|
0582dfdf6b |
fix(server): wrap the shared client-name alternation like claudewatcher does (#209)
The deployment injects CLAUDE_INGEST_CLIENT_BLOCK as a bare alternation of client names; claudewatcher compiles it as (?i)\b(...)\b. The raw/ router used it raw, so a short client name would match inside ordinary words and park clips that have nothing to do with the client. INGEST_CLIENT_BLOCK stays a full regexp, used as is. Mutation-checked. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> |