@mrciphersmith/keryx 0.3.21 → 0.3.22

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/dist/cli.js CHANGED
@@ -18118,7 +18118,7 @@ var package_default;
18118
18118
  var init_package = __esm(() => {
18119
18119
  package_default = {
18120
18120
  name: "@mrciphersmith/keryx",
18121
- version: "0.3.21",
18121
+ version: "0.3.22",
18122
18122
  description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
18123
18123
  private: false,
18124
18124
  publishConfig: {
@@ -151131,6 +151131,15 @@ function reinsertMainQueueItem(items, at, item) {
151131
151131
  next.splice(insertAt, 0, item);
151132
151132
  return next;
151133
151133
  }
151134
+ function drainIdleMainQueue(items, options) {
151135
+ if (!options.isIdle())
151136
+ return false;
151137
+ const next = options.takeForced() ?? items.shift();
151138
+ if (next === undefined)
151139
+ return false;
151140
+ options.dispatch(next);
151141
+ return true;
151142
+ }
151134
151143
 
151135
151144
  // src/tui/queue-nav.ts
151136
151145
  var QUEUE_NAV_ACTIONS = ["force", "edit", "delete"];
@@ -160027,6 +160036,14 @@ Staying in the current session.
160027
160036
  const id = `mq${mainQueueSeq++}`;
160028
160037
  mainQueue.push({ id, question: line, displayQuestion: displayLine });
160029
160038
  paintMainQueue();
160039
+ drainIdleMainQueue(mainQueue, {
160040
+ isIdle: () => !destroyed && !chrome.isBusy() && !foregroundOperation.isActive && !forceHandoff.isAwaitingSettlement && leaseView()?.held() !== true,
160041
+ takeForced: () => forceHandoff.takeNext(),
160042
+ dispatch: (next) => {
160043
+ paintMainQueue();
160044
+ runLine(next.question);
160045
+ }
160046
+ });
160030
160047
  } else {
160031
160048
  appendUserEcho(otui, r, transcript, {
160032
160049
  id: `side-q${uid++}`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.3.21",
3
+ "version": "0.3.22",
4
4
  "description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -1587,10 +1587,12 @@ Fix: <concrete>
1587
1587
  - <what was checked> — <how>
1588
1588
 
1589
1589
  ### How this review was run
1590
- - **Run by:** @<gh-login> with `review-orchestrator`
1590
+ - **Workflow:** `review-orchestrator`
1591
1591
  - **Scope:** `<base>..<head>`, round N, PR #N
1592
- - **Orchestrator:** `review-orchestrator`
1593
- - **<actual model name>:** <reviewers on that model>
1592
+ - **Models:** <actual models and reviewers, or not recorded>
1593
+ - **Tools:** <tools actually invoked, or not recorded>
1594
+ - **Skills:** <skills actually used, or not recorded>
1595
+ - **Subagents:** <dispatched reviewers and models, or none when confirmed; otherwise not recorded>
1594
1596
  - **Not run:** <reviewer — reason>
1595
1597
  - **Verification:** <mode>; confirmed N, refuted N, unverifiable N, unverified N
1596
1598
  ```
@@ -1663,17 +1665,15 @@ Automation values, names unchanged:
1663
1665
 
1664
1666
  Default is do not publish. No resolvable PR number means skip and say so.
1665
1667
 
1666
- The comment is the report rendered from `templates/review-report.md`, English, with the domain file chosen above (`templates/pr-comment-frontend.md` / `templates/pr-comment-backend.md`) — never a summary written freehand. It does not use a tool heading, a finding table, or a meta table. It does not carry a co-author line, a `Generated with` trailer, or any sentence that names a vendor or a product as the author. Say who ran the orchestrator and which reviewers ran; do not sign the comment as them.
1668
+ The comment is the report rendered from `templates/review-report.md`, English, with the domain file chosen above (`templates/pr-comment-frontend.md` / `templates/pr-comment-backend.md`) — never a summary written freehand. It does not use a tool heading, a finding table, or a meta table. It does not carry a co-author line, a `Generated with` trailer, or any sentence that names a vendor or a product as the author. Name the workflow and reviewers that actually ran, with models, tools, skills and subagents. Never identify the operator from `gh auth status`, git config or a credential; do not sign the comment as a person, reviewer or model.
1667
1669
 
1668
1670
  The follow-up file path and the metadata rules (real model names, Run vs Not run, no `adaptive` in the model slot) live in that same template. Write the body to a temp file and post with `gh pr comment <n> --body-file <file>`.
1669
1671
 
1670
1672
  **No GitHub write without an approved draft.** Before ANY write — the comment, a thread reply, `keryx review comments reply`, a review — show the user the rendered body and wait for explicit approval of that body.
1671
1673
  Picking A or B above chooses *whether* to publish, not *what*; a comment is public and cannot be unsent. With no user to answer (a dispatched run), do not write: hand the rendered body back to the caller.
1672
1674
 
1673
- Re-read head and the thread immediately before posting. If head moved, re-check
1674
- the findings against the new head and name the commits that were not reviewed.
1675
- Do not post a finding another reviewer already filed on this head; if yours
1676
- extends theirs, cite theirs.
1675
+ Re-read head and thread before posting. If head moved, re-check findings
1676
+ and name unchecked commits. Do not duplicate findings; cite extended ones.
1677
1677
 
1678
1678
  ## Job Context Awareness
1679
1679
 
@@ -95,14 +95,19 @@ Do not list a checklist item that was not checked. Do not praise.
95
95
 
96
96
  ## How this review was run
97
97
 
98
- A list, not a meta table. Keep every fact the old Meta table carried.
98
+ A factual run inventory, not an author or account signature. List only steps
99
+ confirmed by the run record; never infer an operator identity from `gh auth`,
100
+ git config, a credential or a PR author. Use `not recorded` when evidence for
101
+ a tool, skill or model is unavailable; use `none` only when the run proves none.
99
102
 
100
103
  ```markdown
101
104
  ### How this review was run
102
- - **Run by:** @<gh-login> with `review-orchestrator`. Severity and lanes per the repository review rules, else the canonical rubric in this skill.
105
+ - **Workflow:** `review-orchestrator`; severity and lanes per the repository review rules, else the canonical rubric in this skill.
103
106
  - **Scope:** `<base>..<head>`, round N, PR #N. Unchecked commits: <list or none>.
104
- - **Orchestrator:** `review-orchestrator`
105
- - **<actual model name>:** <reviewers dispatched on it, comma-separated>
107
+ - **Models:** <actual model names and the reviewers that ran on each; or not recorded>.
108
+ - **Tools:** <tools actually invoked for this review and their roles; or not recorded>.
109
+ - **Skills:** <skills actually loaded or executed and their roles; or not recorded>.
110
+ - **Subagents:** <dispatched subagents, their reviewer roles and actual models; or none when confirmed, otherwise not recorded>.
106
111
  - **Fallback:** <reviewer> via `general-purpose` because <native agent type unavailable | no bundled agent>. Or `none`.
107
112
  - **Not run:** <reviewer> — <short reason>. Or `none`.
108
113
  - **Selection:** <auto-detected scope | explicit flags | optional groups the user picked>
@@ -118,8 +123,8 @@ Model rules, unchanged from the old metadata table:
118
123
  - Name the model that actually ran. Never write `adaptive`, `inherit`,
119
124
  `unsupported`, or `current-session` in the model slot.
120
125
  - Group reviewers under the model they ran on. One bullet per model.
121
- - `Model strategy` (`ask` or `adaptive`) goes on the Run by line or under
122
- Selection, not in place of a model name.
126
+ - `Model strategy` (`ask` or `adaptive`) goes under Selection, never in
127
+ place of an actual model name.
123
128
  - Keep **Run** complete. If Not run is long, group it with counts and notable
124
129
  names; the full list belongs in the follow-up file.
125
130