pi-orchestrator-config 4.15.0 → 4.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,7 +22,7 @@ Single extension that provides:
22
22
  | **Python/pip enforcement** | Auto-fixes `python`/`python3` → `uv run python`; blocks `pip`/`pip3` — requires `uv` |
23
23
  | **Git protection** | Blocks commits/pushes to main/master, merged branches, `--no-verify`, `git add .` |
24
24
  | **Remote script exec block** | Blocks `curl \| bash`, `eval $(curl)`, etc. Allows safe `VAR=$(curl ...)` variable assignments |
25
- | **Dangerous command gate** | Confirms `rm -rf`, `sudo`, `mkfs`, etc. |
25
+ | **Dangerous command gate** | Confirms `rm -rf`, `sudo`, `mkfs`, etc. "Always allow this exact command" stores a pattern in the `dangerous_command_allowlist` setting (wildcards supported) — see [Safety Enforcements](docs/safety-enforcements.md#pre-approve-a-recurring-dangerous-command) |
26
26
  | **Rule injection** | Injects orchestrator routing rules into system prompt |
27
27
  | **Git status** | Live git status in status line with colored icons — updates after every tool call. Shows clickable `#N` when the branch has an open PR. Last-activity clock `⏱ HH:MM (Xm/Xh ago)` shows time since last response |
28
28
  | **Desktop notifications** | Notifies via `notify-send` on task completion, waiting for input, and action required |
@@ -807,8 +807,9 @@ PI_PIDIFF_ENABLE=false pi
807
807
  | `myk-pi-tools pr claude-md` | Fetch `CLAUDE.md` and `AGENTS.md` content for a PR's repository |
808
808
  | `myk-pi-tools release create` | Create a GitHub release with changelog |
809
809
  | `myk-pi-tools db` | Review database query commands |
810
- | `myk-pi-tools reviews` | Review handling commands (fetch, poll, address, post, store) |
810
+ | `myk-pi-tools reviews` | Review handling commands (fetch, poll, address, post, store, store-session) |
811
811
  | `myk-pi-tools reviews address` | Apply replies/statuses to a fetched reviews JSON, then post and store it (see below) |
812
+ | `myk-pi-tools reviews store-session` | Store Qodo pr-review-session findings JSON into the reviews DB (idempotent; run at loop convergence) |
812
813
  | `myk-pi-tools memory` | Project memory commands — persistent per-repo learning |
813
814
  | `myk-pi-tools ai-cli` | AI CLI commands (cursor, claude, gemini) |
814
815
  | `myk-pi-tools coderabbit` | CodeRabbit commands (check, trigger, retry) |
@@ -821,13 +822,21 @@ myk-pi-tools reviews address [--json <reviews.json>] [--replies <mapping.txt>] [
821
822
  ```
822
823
 
823
824
  - `--json`: reviews JSON to process (default: newest `pr-*-reviews.json` in `.pi/tmp`)
824
- - `--replies`: mapping file, one rule per line — `<path>:<line>|<reply>` or `*|<reply>` (matches all pending findings);
825
- `#` comments and blank lines ignored
825
+ - `--replies`: mapping file, one rule per line — full syntax:
826
+ - `<path>:<line>|<reply>` — matches the finding's full `[line, end_line]` span
827
+ - `<path>:<line>~<fragment>|<reply>` — discriminator: additionally requires the
828
+ case-insensitive `fragment` in the finding's body (targets one of two findings
829
+ whose spans overlap at the same line)
830
+ - `<path>:*|<reply>` — every finding in that file gets the reply (per-file wildcard)
831
+ - `*|<reply>` — matches all pending findings
832
+ - A finding whose span contains another finding's span (nested findings) matches
833
+ only its own reported line; `#` comments and blank lines ignored
826
834
  - `--set`: target status for matched findings — `addressed` (default), `skipped`, `not_addressed`, or `failed`
827
835
  - Without `--replies`, pending findings that already carry a reply only get their status flipped (status-only mode)
828
836
  - Exit code `0` = replies posted and stored; non-zero = nothing matched, validation failed, or posting failed
829
837
  (the JSON is kept for retry — re-running with the same or a corrected mapping resumes unposted entries)
830
- - Validation failures change nothing: a rule matching several distinct findings at one location, or a status `post`
838
+ - Validation failures change nothing: a rule matching several distinct findings (overlapping
839
+ spans — disambiguate with `<path>:<line>~<fragment>`), or a status `post`
831
840
  rejects for Qodo sticky findings (`not_addressed`/`failed`; `skipped` only with an issue-spec-update reply),
832
841
  exits non-zero before the JSON is saved
833
842