Repository navigation
Closed
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)kind/bugSomething isn't working (prefixed form of the classic bug label)Something isn't working (prefixed form of the classic bug label)priority/normalOrdinary priority (the default)Ordinary priority (the default)source/pr-diff-reviewFiled by the pr-diff-review jobFiled by the pr-diff-review jobtask/pr-shepherdQueue packet kind: shepherd an open PR or PR set to mergeQueue packet kind: shepherd an open PR or PR set to merge
Description
Finding — consolidation set (one finding, two PRs)
Two open PRs rewrite the same two functions in the same file and overlap in at least one hunk. Landing them independently guarantees a conflict in exactly the code both are trying to fix; they should be shepherded as one set (land one, rebase the other onto it in the same pass — or combine into a single PR).
The set
- PR fix(id): reject malformed REPL flags #3092 — "fix(id): reject malformed REPL flags" (branch
queue/4318-2274-repl-flags, for id(repl): find/search/show/peek parsers silently swallow unknown and mistyped flags — a typo'd flag vanishes and its value becomes a query #2274). Changesparse_find_args/parse_peek_argsinpkgs/id/src/repl/runner.rsto returnResult, rejects unknown flags, missing values, invalid--format, and bare>; validates peek--linesnon-numeric values. Currently mergeable: CONFLICTING / mergeStateStatus: DIRTY against current main. - PR fix(id/repl): reject nonnumeric result limits #4072 — "fix(id/repl): reject nonnumeric result limits" (branch
queue/5075-2009-repl-numeric-flags, for id(repl): a non-numeric --first/--last/--lines value silently becomes a search query — 'find report --first two' searches for 'two' too, truncated to 1 #2009, opened 2026-11-01T23:29Z from a newer main). Same two functions, same file: rejects non-numeric--first/--lastin both parsers and non-numeric--lines/-nin peek — the--linesvalidation duplicates PR fix(id): reject malformed REPL flags #3092's peek change, and both PRs edit the same parser test module.
Evidence
- PR fix(id): reject malformed REPL flags #3092 diff:
parse_find_args/parse_peek_argssignature change toResult<...>(commit06fc15565), peek--linesbranch replaced withrequired_value+parse::<usize>()error. - PR fix(id/repl): reject nonnumeric result limits #4072 diff: based on main
957cf6625(which already carries a different partial parser evolution —format_errordeferred validation andvalidate_result_limitsfrom PR id(cli/repl): reject zero result limits at both boundaries (#3059) #3738), changes the--first/--last/--linesbranches of the same functions. - Current main (
d9636237) still does not reject unknown flags:parse_find_argsatpkgs/id/src/repl/runner.rs:655keeps the silent fall-through (only non--tokens become queries),--dir/--excludemissing values are still silent no-ops, and>still accepts an empty path — so id(repl): find/search/show/peek parsers silently swallow unknown and mistyped flags — a typo'd flag vanishes and its value becomes a query #2274 is not fixed on main and PR fix(id): reject malformed REPL flags #3092 is not superseded; it is stale-based and conflicting. - Dedupe: no existing issue names this pair (searched "3092 4072" and "consolidate repl parsers"); id(repl): find/search/show/peek parsers silently swallow unknown and mistyped flags — a typo'd flag vanishes and its value becomes a query #2274 and id(repl): a non-numeric --first/--last/--lines value silently becomes a search query — 'find report --first two' searches for 'two' too, truncated to 1 #2009 are sibling issues from the same probe family but neither tracks the PR overlap.
Why it matters
Whichever PR merges second will conflict in runner.rs's parser branches and tests, and a careless conflict resolution can silently drop one issue's validation (e.g. PR #4072's --first/--last rejection or PR #3092's unknown-flag rejection) while both issues auto-close. Handling them as one shepherd set keeps both acceptance sets intact.
Acceptance criteria
- One shepherd pass dispositions both PRs: either (a) one combined PR carrying both id(repl): find/search/show/peek parsers silently swallow unknown and mistyped flags — a typo'd flag vanishes and its value becomes a query #2274 and id(repl): a non-numeric --first/--last/--lines value silently becomes a search query — 'find report --first two' searches for 'two' too, truncated to 1 #2009 behavior, with the other PR closed as superseded by it, or (b) a documented merge order with the second PR rebased onto the merged first and its full test set re-run.
- After the set lands, on main: unknown/mistyped flags error, value-flags missing values error, invalid
--formaterrors, bare>errors, and non-numeric--first/--last/--linesvalues error — in bothparse_find_argsandparse_peek_args. - id(repl): find/search/show/peek parsers silently swallow unknown and mistyped flags — a typo'd flag vanishes and its value becomes a query #2274 and id(repl): a non-numeric --first/--last/--lines value silently becomes a search query — 'find report --first two' searches for 'two' too, truncated to 1 #2009 each close only when their own behavior is verified on main, not merely when one PR of the set merges.
Found by the pr-diff-review job reviewing PR #3092 (PR #4072 is the overlapping counterpart).
Metadata
Metadata
Assignees
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)kind/bugSomething isn't working (prefixed form of the classic bug label)Something isn't working (prefixed form of the classic bug label)priority/normalOrdinary priority (the default)Ordinary priority (the default)source/pr-diff-reviewFiled by the pr-diff-review jobFiled by the pr-diff-review jobtask/pr-shepherdQueue packet kind: shepherd an open PR or PR set to mergeQueue packet kind: shepherd an open PR or PR set to merge
Activity
dezren39 commentedon Nov 2, 2026
🤖 Agent note · filed
dezren39 commentedon Nov 2, 2026
🤖 Agent note · picked up
dezren39 commentedon Nov 2, 2026
🤖 Agent note · parked
71 remaining items
dezren39 commentedon Nov 2, 2026
🤖 Agent note · state: parked
>error, find -o/--output) and does not touch the fix(id/repl): reject nonnumeric result limits #4072 numeric --first/--last/--lines validation or the bare --lines default. Codex P2 (hyphen-prefixed --exclude patterns) dispositioned: replied on the thread (comment 4443106006) that both parsers route --exclude through required_pattern, which accepts-draft— asserted by both new tests — and resolved the thread; Codex summary on this head reports no unresolved findings.dezren39 commentedon Nov 2, 2026
🤖 Agent note · picked up
idworkflow run 41428718912 is still pending since 2026-11-02T10:25Z (CI runner backlog). Re-verifying diff + Codex disposition, then merging under the standing merge authority (PRs do not wait for CI) if verified.dezren39 commentedon Nov 2, 2026
🤖 Agent note · done
--excludepatterns) is fixed in the merged head and its thread is resolved; fix(id/repl): reject nonnumeric result limits #4072's numeric--first/--last/--linesvalidation confirmed intact on main (not overwritten by the fix(id): reject malformed REPL flags #3092 landing). Neither issue's validation was lost. Theidworkflow run 41428718912 sat pending since 2026-11-02T10:25Z in the CI runner backlog, so the merge proceeded under the standing merge authority (PRs do not wait for CI; targeted cargo test was also not runnable — laptop load ~147); the in-tree tests cover both parsers' new behavior and main'sidworkflow will confirm — a red run there is a fix-forward, per the same directive.