mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-15 09:25:28 +02:00
Merge origin/main (v1.64.1.0) into garrytan/time-attack-fork-review
The code-smell wave refactored the tunnel start into the staged startTunnel helper; the merge adopts that structure and threads this branch's truthful consent strings through its consent parameter (the receipt now names the isPairAgentEnabled gate at both call sites). The eng-review PTY warmup takes both improvements: main's resolveClaudeBinary fallback and this branch's resolveEvalModel kind. Resolver imports union; carve budgets take the larger of both waves' measured values (parity suite green on the merged tree); conflicted generated SKILL.md files regenerated from resolved sources. VERSION stays 1.65.0.0 over main's 1.64.1.0; CHANGELOG stacks 1.65.0.0 > 1.64.1.0 > 1.64.0.0.
This commit is contained in:
@@ -227,9 +227,14 @@ describe("gstack-decision-search --recent / --scope / datamark", () => {
|
||||
expect(out).toContain("alpha"); // NaN slice is a no-op → returns all
|
||||
});
|
||||
test("--scope filters by scope", () => {
|
||||
// Explicit branch on both sides: CI checks out a detached HEAD, where
|
||||
// gitBranch() returns undefined on log AND search, so an implicit
|
||||
// branch-scoped decision can never surface (filterByScope requires a
|
||||
// matching non-empty ctx.branch). The filter logic is what's under test,
|
||||
// not git branch detection.
|
||||
log('{"decision":"repo-call","scope":"repo","source":"user"}');
|
||||
log('{"decision":"branch-call","scope":"branch","source":"user"}');
|
||||
const out = search("--scope branch");
|
||||
log('{"decision":"branch-call","scope":"branch","branch":"feature-x","source":"user"}');
|
||||
const out = search("--scope branch --branch feature-x");
|
||||
expect(out).toContain("branch-call");
|
||||
expect(out).not.toContain("repo-call");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user