feat(ms-ai-architect): erstatt per-felt-cap med totalbudsjett og aapne det frosne filsettet [skip-docs]
To maalte defekter i lastesiden for brukerkontekst (underlag: designnotatets paragraf 3.1-3.3, maalt ved aa kjoere den ekte mekanismen): 1. DEFAULT_MAX_VALUE_LEN = 160 kappet hvert felt uavhengig av hvor mye av budsjettet som sto ubrukt. Maalt: et 300-tegns svar tapte 47 prosent, et 2000-tegns svar 92 prosent - ogsaa free-context.md, gjennom sin egen kodevei. Erstattet av DEFAULT_MAX_TOTAL_LEN = 4000: et totalbudsjett fordelt max-min-rettferdig over feltene som overlever linje-cappen. Hvorfor 4000: det er noeyaktig hva den gamle formen alt tillot i verste fall (cap 25 linjer x 160 tegn), saa endringen er kostnadsnoeytral mot dagens tak og strengt bedre under det. Fordi budsjettet deles kun over de hoeyst 25 feltene som faktisk skrives ut, faar intet felt mindre enn 4000/25 = 160: den gamle cappen er blitt gulvet. Begrunnelsen staar der konstanten defineres. Per-felt-cap var feil FORM, ikke bare feil tall: den kan ikke uttrykke at ett langt, viktig svar overlever fordi fem korte ikke trengte sin andel. 2. readOrgFiles itererte den frosne ORG_FILES-lista uten readdir, saa en fil brukeren la til i org/ naadde aldri modellen. Begge sider er endret - hooken leser katalogen, og buildOrgSummary ignorerer ikke lenger filnavn utenfor ORG_FILES - ellers ville endringen vaert en no-op som ser ut som en fiks. Bare de fem kanoniske teller fortsatt mot onboarding-fullfoerthet. Ny ren, delt hjelper orderOrgFiles(names) gir begge sider samme deterministiske rekkefoelge: ORG_FILES foerst, saa oevrige .md sortert, free-context sist. Verifisert paa den ekte hooken mot en fixture-org-katalog, med kontrollmaaling mot HEAD: den syvende fila var usynlig foer og gir 43 tegn naa; en 1198-tegns fri kontekst ble kappet til 160 foer og overlever hel naa. TDD: 10 nye tester i tests/kb-update/test-user-data.test.mjs, alle roede foerst (7 assertion-feil mot gammel kode, 3 paa manglende eksport). Suite 1062/1062. [skip-docs]: ren intern mekanikk - ingen ny kommando, agent, skill eller hook, og ingen endring i utoverrettet flate.
This commit is contained in:
parent
e4f16422bf
commit
a7098e0fdf
3 changed files with 216 additions and 33 deletions
|
|
@ -19,6 +19,7 @@ import {
|
|||
ORG_FILES,
|
||||
FREE_CONTEXT_FILE,
|
||||
buildOrgSummary,
|
||||
orderOrgFiles,
|
||||
} from '../../scripts/kb-update/lib/user-data.mjs';
|
||||
import { loadAiActDeadlines } from '../../scripts/kb-update/lib/ai-act-deadlines.mjs';
|
||||
|
||||
|
|
@ -116,15 +117,22 @@ function readOrgFiles(dir) {
|
|||
const files = {};
|
||||
let count = 0;
|
||||
if (existsSync(dir)) {
|
||||
for (const f of ORG_FILES) {
|
||||
const p = join(dir, f);
|
||||
if (existsSync(p)) {
|
||||
try {
|
||||
files[f] = readFileSync(p, 'utf8');
|
||||
count++;
|
||||
} catch {
|
||||
// Unreadable file — skip; advisory only
|
||||
}
|
||||
let entries = [];
|
||||
try {
|
||||
entries = readdirSync(dir);
|
||||
} catch {
|
||||
// Unreadable dir — skip; advisory only
|
||||
}
|
||||
// orderOrgFiles, not the frozen ORG_FILES list: this loop used to iterate
|
||||
// the five canonical names, so a sixth structured file added to org/ (the
|
||||
// seventh file there) never reached the summary — nor any consumer relying on it. Only the
|
||||
// canonical five count towards onboarding completeness.
|
||||
for (const f of orderOrgFiles(entries)) {
|
||||
try {
|
||||
files[f] = readFileSync(join(dir, f), 'utf8');
|
||||
if (ORG_FILES.includes(f)) count++;
|
||||
} catch {
|
||||
// Unreadable file — skip; advisory only
|
||||
}
|
||||
}
|
||||
// Optional free-prose context (C2.2): read it for the ambient summary, but
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue