mirror of
https://github.com/glittercowboy/get-shit-done
synced 2026-04-25 17:25:23 +02:00
* fix(detect-custom-files): exclude skills and command dirs not wiped by installer (closes #2505) GSD_MANAGED_DIRS included 'skills' and 'command' directories, but the installer never wipes those paths. Users with third-party skills installed (40+ files, none in GSD's manifest) had every skill flagged as a "custom file" requiring backup, producing noisy false-positive reports on every /gsd-update run. Removes 'skills' and 'command' from both gsd-tools.cjs and the SDK's detect-custom-files.ts. Adds two regression tests confirming neither directory is scanned. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(settings): warn that model profiles are no-ops on non-Claude runtimes (closes #2506) settings.md presented Quality/Balanced/Budget model profiles without any indication that these tiers map to Claude models (Opus/Sonnet/Haiku) and have no effect on non-Claude runtimes (Codex, Gemini CLI, OpenRouter). Users on Codex saw the profile chooser as if it would meaningfully select models, but all agents silently used the runtime default regardless. Adds a non-Claude runtime note before the profile question (shown in TEXT_MODE, the path all non-Claude runtimes take) explaining the profiles are no-ops and directing users to either choose Inherit or configure model_overrides manually. Also updates the Inherit option description to explicitly name the runtimes where it is the correct choice. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
56 lines
2.1 KiB
JavaScript
56 lines
2.1 KiB
JavaScript
/**
|
|
* Regression test for bug #2506
|
|
*
|
|
* /gsd-settings presents Quality/Balanced/Budget model profiles without any
|
|
* warning that on non-Claude runtimes (Codex, Gemini CLI, etc.) these profiles
|
|
* select Claude model tiers and have no effect on actual agent model selection.
|
|
*
|
|
* Fix: settings.md must include a non-Claude runtime note instructing users to
|
|
* use "Inherit" or configure model_overrides manually, and the Inherit option
|
|
* description must explicitly call out non-Claude runtimes.
|
|
*
|
|
* Closes: #2506
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const { describe, test, before } = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const SETTINGS_PATH = path.join(__dirname, '..', 'get-shit-done', 'workflows', 'settings.md');
|
|
|
|
describe('bug #2506: settings.md non-Claude runtime warning for model profiles', () => {
|
|
let content;
|
|
|
|
before(() => {
|
|
content = fs.readFileSync(SETTINGS_PATH, 'utf-8');
|
|
});
|
|
|
|
test('settings.md contains a non-Claude runtime note for model profiles', () => {
|
|
assert.ok(
|
|
content.includes('non-Claude runtime') || content.includes('non-Claude runtimes'),
|
|
'settings.md must include a note about non-Claude runtimes and model profiles'
|
|
);
|
|
});
|
|
|
|
test('non-Claude note explains profiles are no-ops without model_overrides', () => {
|
|
assert.ok(
|
|
content.includes('model_overrides') || content.includes('no effect'),
|
|
'note must explain profiles have no effect on non-Claude runtimes without model_overrides'
|
|
);
|
|
});
|
|
|
|
test('Inherit option description explicitly mentions non-Claude runtimes', () => {
|
|
// The Inherit option in AskUserQuestion must call out non-Claude runtimes
|
|
const inheritOptionMatch = content.match(/label:\s*"Inherit"[^}]*description:\s*"([^"]+)"/s);
|
|
assert.ok(inheritOptionMatch, 'Inherit option with label/description must exist in settings.md');
|
|
const desc = inheritOptionMatch[1];
|
|
assert.ok(
|
|
desc.includes('non-Claude') || desc.includes('Codex') || desc.includes('Gemini'),
|
|
`Inherit option description must mention non-Claude runtimes; got: "${desc}"`
|
|
);
|
|
});
|
|
});
|