feat(i18n): add response_language config for cross-phase language consistency (#1412)
* feat(i18n): add response_language config for cross-phase language consistency Adds `response_language` config key that propagates through all init outputs via withProjectRoot(). Workflows read this field and instruct agents to present user-facing questions in the configured language, solving the problem of language preference resetting at phase boundaries. Usage: gsd-tools config-set response_language "Portuguese" Closes #1399 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test(security): allowlist discuss-phase.md for size threshold discuss-phase.md legitimately exceeds 50K chars due to power mode and i18n directives — not prompt stuffing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -99,6 +99,18 @@ describe('loadConfig', () => {
|
||||
assert.strictEqual(config.model_overrides, null);
|
||||
});
|
||||
|
||||
test('reads response_language when set', () => {
|
||||
writeConfig({ response_language: 'Portuguese' });
|
||||
const config = loadConfig(tmpDir);
|
||||
assert.strictEqual(config.response_language, 'Portuguese');
|
||||
});
|
||||
|
||||
test('returns response_language as null when not set', () => {
|
||||
writeConfig({ model_profile: 'balanced' });
|
||||
const config = loadConfig(tmpDir);
|
||||
assert.strictEqual(config.response_language, null);
|
||||
});
|
||||
|
||||
test('returns defaults when config.json contains invalid JSON', () => {
|
||||
fs.writeFileSync(
|
||||
path.join(tmpDir, '.planning', 'config.json'),
|
||||
|
||||
Reference in New Issue
Block a user