You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deferred findings from the neutral review of PR #952 (hyp query grep, LLP 0265 T5), triaged non-blocking at head b25c9cf4fdd46b5db3c749a02a067a6eb8a98918. Each was re-verified against the code before deferral, including the server side via the hypaware-server repo.
1. MEDIUM: --remote can still forge a silent zero-hit for a malformed --from/--to
dayBound (src/core/search/grep_verb.js:184, applied at :109-110) guards only the local path: runVerbCommand never calls operation when --remote is set (src/core/cli/verb_command.js:100-127), so params travel verbatim. Verified server-side that the gap is real, not hypothetical: the server's MCP grep_search operation passes from/to through with only a typeof check (hypaware-server src/daemon.js:1213) into a lexicographic day comparison (src/search/grep-search.js:84-92), while the HTTP /v1/search route DOES validate (src/http/routes-search.js:64-68, isValidPartitionDate, 400 invalid_date). So hyp query grep needle --from 2026-8-1 --remote <target> returns exit 0, zero rows, empty stderr.
Why deferred, per review round 2 finding 4: every clean client-side fix leaves this verb. Options, in rough order of leverage:
hypaware-server: mirror the /v1/search route's isValidPartitionDate check inside the MCP grep_search operation (src/daemon.js:1213). Cheapest, and fixes every MCP caller, not just this CLI. The asymmetry between the route and the tool is a server defect that predates PR hyp query grep: the verb that makes grep a surface (LLP 0265 T5) #952.
Kernel: add a pattern keyword (plus a human-readable noun for error text) to VerbInputProperty so argvToParams rejects shape errors before dispatch. This is a published-contract change (hypaware-plugin-kernel-types.d.ts, "a deliberately small JSON-Schema subset") and wants an LLP first. It would also ride into the MCP tool schema for free (verb_codec.js:282 strips only greedy).
Kernel alternative: a verb-level pre-dispatch validate hook that runs on both local and remote paths.
2. LOW: --remote prints two overlapping truncation notices, one SQL-shaped
serverCapNotices (src/core/mcp/remote_verb.js:162) fires on any structured.truncated and reads rows/row_count/server_cap.rows, which a grep result does not carry (it has hits), so it degrades to the bare "remote: result truncated - narrow the query, or read the Iceberg archive directly for bulk" beside the verb's own line. Both lines describe the server cap (LLP 0033 #two-truncations intends server cap vs client display budget), and bulk Iceberg reads are not grep's escape hatch (query_sql is). Fix edits shared remote machinery and changes the stderr contract for every verb, so it is an LLP 0033 question. Flagged for T7 (#954).
3. LOW, cosmetic: the 518-character summary is also the hyp query --help subcommand row
renderGroupHelp writes child.summary verbatim with no wrap or truncation (src/core/cli/group_help.js:103), so grep renders as one 518-character line next to ~40-70 character neighbours. Alignment survives (per-row padding); ugly, not broken. The verbatim coverage clause is required by LLP 0264 #verb for the MCP surface, so the fix belongs in the CLI group-help renderer (truncate long summaries in the table; full text stays one hyp query grep --help away). Flagged for T7 (#954).
4. Release-note item: server displacement of the kernel grep_search twin (LLP 0264 collision)
hypaware-server #364 (LLP 0178, "The server's grep_search outranks a kernel-shipped twin") is verified MERGED (2026-08-19), so the displacement half exists. Residual risk is deployment ordering only: a server host running a pre-#364 server build with a kernel containing PR #952 would silently serve local-cache grep under the server's tool name. Record in the release notes of the first kernel release containing this verb that server hosts must be on a #364-or-later server build first.
Backlink: PR #952 (triaged at b25c9cf4). Review records: rounds 1 and 2 on the PR thread.
Deferred findings from the neutral review of PR #952 (
hyp query grep, LLP 0265 T5), triaged non-blocking at headb25c9cf4fdd46b5db3c749a02a067a6eb8a98918. Each was re-verified against the code before deferral, including the server side via the hypaware-server repo.1. MEDIUM:
--remotecan still forge a silent zero-hit for a malformed--from/--todayBound(src/core/search/grep_verb.js:184, applied at:109-110) guards only the local path:runVerbCommandnever callsoperationwhen--remoteis set (src/core/cli/verb_command.js:100-127), so params travel verbatim. Verified server-side that the gap is real, not hypothetical: the server's MCPgrep_searchoperation passesfrom/tothrough with only a typeof check (hypaware-serversrc/daemon.js:1213) into a lexicographic day comparison (src/search/grep-search.js:84-92), while the HTTP/v1/searchroute DOES validate (src/http/routes-search.js:64-68,isValidPartitionDate, 400invalid_date). Sohyp query grep needle --from 2026-8-1 --remote <target>returns exit 0, zero rows, empty stderr.Why deferred, per review round 2 finding 4: every clean client-side fix leaves this verb. Options, in rough order of leverage:
/v1/searchroute'sisValidPartitionDatecheck inside the MCPgrep_searchoperation (src/daemon.js:1213). Cheapest, and fixes every MCP caller, not just this CLI. The asymmetry between the route and the tool is a server defect that predates PR hyp query grep: the verb that makes grep a surface (LLP 0265 T5) #952.patternkeyword (plus a human-readable noun for error text) toVerbInputPropertysoargvToParamsrejects shape errors before dispatch. This is a published-contract change (hypaware-plugin-kernel-types.d.ts, "a deliberately small JSON-Schema subset") and wants an LLP first. It would also ride into the MCP tool schema for free (verb_codec.js:282strips onlygreedy).2. LOW:
--remoteprints two overlapping truncation notices, one SQL-shapedserverCapNotices(src/core/mcp/remote_verb.js:162) fires on anystructured.truncatedand readsrows/row_count/server_cap.rows, which a grep result does not carry (it hashits), so it degrades to the bare "remote: result truncated - narrow the query, or read the Iceberg archive directly for bulk" beside the verb's own line. Both lines describe the server cap (LLP 0033 #two-truncations intends server cap vs client display budget), and bulk Iceberg reads are not grep's escape hatch (query_sqlis). Fix edits shared remote machinery and changes the stderr contract for every verb, so it is an LLP 0033 question. Flagged for T7 (#954).3. LOW, cosmetic: the 518-character summary is also the
hyp query --helpsubcommand rowrenderGroupHelpwriteschild.summaryverbatim with no wrap or truncation (src/core/cli/group_help.js:103), sogreprenders as one 518-character line next to ~40-70 character neighbours. Alignment survives (per-row padding); ugly, not broken. The verbatim coverage clause is required by LLP 0264 #verb for the MCP surface, so the fix belongs in the CLI group-help renderer (truncate long summaries in the table; full text stays onehyp query grep --helpaway). Flagged for T7 (#954).4. Release-note item: server displacement of the kernel
grep_searchtwin (LLP 0264 collision)hypaware-server #364 (LLP 0178, "The server's grep_search outranks a kernel-shipped twin") is verified MERGED (2026-08-19), so the displacement half exists. Residual risk is deployment ordering only: a server host running a pre-#364 server build with a kernel containing PR #952 would silently serve local-cache grep under the server's tool name. Record in the release notes of the first kernel release containing this verb that server hosts must be on a #364-or-later server build first.
Backlink: PR #952 (triaged at
b25c9cf4). Review records: rounds 1 and 2 on the PR thread.