chorus-codes 0.8.40 → 0.8.41
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +2 -2
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new.html +1 -1
- package/.next/server/app/new.rsc +1 -1
- package/.next/server/app/new.segments/_full.segment.rsc +1 -1
- package/.next/server/app/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/new.segments/_index.segment.rsc +1 -1
- package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/new.segments/new.segment.rsc +1 -1
- package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +1 -1
- package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas.html +1 -1
- package/.next/server/app/personas.rsc +1 -1
- package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +1 -1
- package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/.next/server/app/templates.html +1 -1
- package/.next/server/app/templates.rsc +1 -1
- package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +2 -2
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/trace +20 -20
- package/.next/trace-build +1 -1
- package/dist/daemon/runner/verdict.js +35 -10
- package/dist/daemon/runner/verdict.js.map +1 -1
- package/package.json +1 -1
- /package/.next/static/{Hi6eefqGYOZt5vMhn8uxn → hNDhJ2gNUy75Ma2IxRu3j}/_buildManifest.js +0 -0
- /package/.next/static/{Hi6eefqGYOZt5vMhn8uxn → hNDhJ2gNUy75Ma2IxRu3j}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-webpack","duration":
|
|
1
|
+
[{"name":"run-webpack","duration":10925511,"timestamp":7691415813440,"id":14,"parentId":1,"tags":{},"startTime":1779082786239,"traceId":"847ee5841caa0bf6"},{"name":"run-typescript","duration":5869924,"timestamp":7691426742054,"id":2118,"parentId":1,"tags":{},"startTime":1779082797168,"traceId":"847ee5841caa0bf6"},{"name":"static-check","duration":398874,"timestamp":7691432660346,"id":2121,"parentId":1,"tags":{},"startTime":1779082803086,"traceId":"847ee5841caa0bf6"},{"name":"static-generation","duration":1233892,"timestamp":7691433265920,"id":2161,"parentId":1,"tags":{},"startTime":1779082803692,"traceId":"847ee5841caa0bf6"},{"name":"collect-build-traces","duration":6179439,"timestamp":7691433059635,"id":2158,"parentId":1,"tags":{},"startTime":1779082803486,"traceId":"847ee5841caa0bf6"},{"name":"telemetry-flush","duration":34,"timestamp":7691439241163,"id":2170,"parentId":1,"tags":{},"startTime":1779082809667,"traceId":"847ee5841caa0bf6"},{"name":"next-build","duration":23548297,"timestamp":7691415692910,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779082786119,"traceId":"847ee5841caa0bf6"}]
|
|
@@ -25,21 +25,46 @@ function verdictFromReviewerText(content) {
|
|
|
25
25
|
// `do not approve` / `cannot approve`. Both spellings are common in real
|
|
26
26
|
// reviews. The optional `['’]?t` segment catches both straight (') and
|
|
27
27
|
// typographic (’) apostrophes — LLMs emit the latter often.
|
|
28
|
-
|
|
28
|
+
//
|
|
29
|
+
// Issue #52 expansions (the original list missed real-world rejections
|
|
30
|
+
// that happened to end with a polite "I'd approve once …" kicker):
|
|
31
|
+
// - request(?:s|ed|ing)? changes — covers requests/requested/requesting
|
|
32
|
+
// - not (?:approved|ready|merging|ok|acceptable|good to (?:merge|ship))
|
|
33
|
+
// - approve (?:after|once|when|conditional(?:ly)?|if|provided|assuming)
|
|
34
|
+
// - conditional(?:ly)? approve
|
|
35
|
+
// — both forms reframe conditional approvals as negative, since
|
|
36
|
+
// the reviewer is explicitly NOT approving the current diff.
|
|
37
|
+
// - would(?:\s+not|n['’]?t) approve
|
|
38
|
+
//
|
|
39
|
+
// Round-1 self-review (3 convergent dissenters) flagged candidate
|
|
40
|
+
// patterns `changes (?:are )?(?:needed|required|requested)` and
|
|
41
|
+
// `needs (?:work|changes|fixes)` as too ambiguous — both match in
|
|
42
|
+
// clean-approval contexts like "no changes needed, LGTM" or "the
|
|
43
|
+
// changes requested by the reviewer are fine". They're dropped from
|
|
44
|
+
// the negatives list; the remaining patterns still catch all three
|
|
45
|
+
// concrete leak cases in brianmarr's report (case 2a is caught by
|
|
46
|
+
// `approve after`, case 2 family by `not ready`).
|
|
47
|
+
const negatives = /\b(request(?:s|ed|ing)? changes|not (?:approved|ready|merging|ok|acceptable|good to (?:merge|ship))|approve (?:after|once|when|conditional(?:ly)?|if|provided|assuming)|conditional(?:ly)? approve|would(?:\s+not|n['’]?t) approve|disagree|reject(?:ed|ing)?|blocker|(?:do not|don['’]?t) (?:approve|merge)|(?:cannot|can['’]?t) (?:approve|merge)|nack)\b/;
|
|
29
48
|
const positives = /\b(approve(?:d|s)?|lgtm|looks good to me|no concerns|ship it|ack)\b/;
|
|
30
|
-
|
|
31
|
-
// "approve ## DONE" (15 chars after sentinel strip) is unambiguous and
|
|
32
|
-
// shouldn't be filtered out by the length floor. Tail wins over whole
|
|
33
|
-
// so an analytical review mentioning "good practice" mid-paragraph
|
|
34
|
-
// doesn't get auto-approved without an explicit verdict at the end.
|
|
49
|
+
const whole = stripped.toLowerCase();
|
|
35
50
|
const tail = stripped.slice(-400).toLowerCase();
|
|
36
|
-
|
|
51
|
+
// Negatives win globally. Issue #52: previously the function returned
|
|
52
|
+
// TRUE when the tail contained a positive token even if the body of
|
|
53
|
+
// the answer carried an explicit rejection. Real reviewers routinely
|
|
54
|
+
// write "Request changes. … [substantive critique] … Happy to approve
|
|
55
|
+
// once these are addressed." — that's a rejection, not an approval.
|
|
56
|
+
// Scan the entire stripped answer for negatives first; only fall
|
|
57
|
+
// through to positives once we've confirmed there's no rejection
|
|
58
|
+
// anywhere in the text.
|
|
59
|
+
if (negatives.test(whole))
|
|
37
60
|
return false;
|
|
61
|
+
// Positives prefer the tail so an analytical review mentioning
|
|
62
|
+
// "good practice" mid-paragraph doesn't get auto-approved without an
|
|
63
|
+
// explicit verdict at the end. Whole-text fallback catches the case
|
|
64
|
+
// where the verdict lives mid-body and the tail is padded with
|
|
65
|
+
// closing matter (test: "falls back to whole-text scan").
|
|
38
66
|
if (positives.test(tail))
|
|
39
67
|
return true;
|
|
40
|
-
const whole = stripped.toLowerCase();
|
|
41
|
-
if (negatives.test(whole))
|
|
42
|
-
return false;
|
|
43
68
|
if (positives.test(whole))
|
|
44
69
|
return true;
|
|
45
70
|
// No verdict keyword anywhere — return null (ambiguous). The 20-char
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verdict.js","sourceRoot":"","sources":["../../../src/daemon/runner/verdict.ts"],"names":[],"mappings":";;AAiBA,
|
|
1
|
+
{"version":3,"file":"verdict.js","sourceRoot":"","sources":["../../../src/daemon/runner/verdict.ts"],"names":[],"mappings":";;AAiBA,0DA0DC;AA3ED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9D,oEAAoE;IACpE,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,4DAA4D;IAC5D,EAAE;IACF,uEAAuE;IACvE,mEAAmE;IACnE,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,iCAAiC;IACjC,oEAAoE;IACpE,mEAAmE;IACnE,sCAAsC;IACtC,EAAE;IACF,kEAAkE;IAClE,gEAAgE;IAChE,kEAAkE;IAClE,iEAAiE;IACjE,oEAAoE;IACpE,mEAAmE;IACnE,kEAAkE;IAClE,kDAAkD;IAClD,MAAM,SAAS,GACb,6VAA6V,CAAC;IAChW,MAAM,SAAS,GACb,qEAAqE,CAAC;IAExE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAEhD,sEAAsE;IACtE,oEAAoE;IACpE,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,iEAAiE;IACjE,iEAAiE;IACjE,wBAAwB;IACxB,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,+DAA+D;IAC/D,qEAAqE;IACrE,oEAAoE;IACpE,+DAA+D;IAC/D,0DAA0D;IAC1D,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,qEAAqE;IACrE,qEAAqE;IACrE,uEAAuE;IACvE,wDAAwD;IACxD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chorus-codes",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.41",
|
|
4
4
|
"description": "Driver-agnostic multi-LLM peer review for code decisions. Bring your own CLI; Chorus convenes 2-4 other LLMs to review the work before you ship.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "99x Agency",
|
|
File without changes
|
|
File without changes
|