koala73/worldmonitor · error · Error
Library is full (max ${MAX_IMPORTED} imported frameworks).
Error message
Library is full (max ${MAX_IMPORTED} imported frameworks). What it means
Client-side limit in saveImportedFramework (analysis-framework-store): the number of imported analysis frameworks in localStorage already equals MAX_IMPORTED, so no more can be saved. Built-in frameworks are unaffected; the cap bounds localStorage usage.
Source
Thrown at src/services/analysis-framework-store.ts:119
3. Hidden assumptions audit: list 3–5 assumptions embedded in the consensus view that are treated as given but are actually contestable. For each, describe what would happen if the assumption is wrong.
4. Worst-case scenario (tail risk): describe the plausible worst-case outcome that the consensus view is systematically underweighting. What would need to be true for this to materialise?
5. Who benefits from the current narrative: identify actors who have incentives to promote the consensus framing. Does the prevalence of a narrative correlate with the interests of those spreading it?
6. Early warning signals: what observable data points would indicate the contrarian scenario is beginning to unfold? List 2–3 specific, trackable signals.
Close with: a one-sentence devil's advocate verdict — what is the most important thing the consensus is probably wrong about?`,
},
];
const _activeCache = new Map<AnalysisPanelId, AnalysisFramework | null>();
export function loadFrameworkLibrary(): AnalysisFramework[] {
const imported = loadFromStorage<AnalysisFramework[]>(LIBRARY_KEY, []);
return [...BUILT_IN_FRAMEWORKS, ...imported];
}
export function saveImportedFramework(fw: Omit<AnalysisFramework, 'isBuiltIn' | 'createdAt'>): void {
const imported = loadFromStorage<AnalysisFramework[]>(LIBRARY_KEY, []);
if (imported.length >= MAX_IMPORTED) {
throw new Error(`Library is full (max ${MAX_IMPORTED} imported frameworks).`);
}
if (fw.systemPromptAppend.length > MAX_INSTRUCTIONS_LEN) {
throw new Error(`Instructions exceed the ${MAX_INSTRUCTIONS_LEN}-character limit (${fw.systemPromptAppend.length} chars). Trim and retry.`);
}
const existing = loadFrameworkLibrary();
if (existing.some(f => f.name === fw.name)) {
throw new Error(`A framework named '${fw.name}' already exists. Rename the existing one first.`);
}
const newFw: AnalysisFramework = { ...fw, isBuiltIn: false, createdAt: Date.now() };
saveToStorage(LIBRARY_KEY, [...imported, newFw]);
_activeCache.clear();
}
export function deleteImportedFramework(id: string): void {
if (BUILT_IN_FRAMEWORKS.some(f => f.id === id)) return;
const imported = loadFromStorage<AnalysisFramework[]>(LIBRARY_KEY, []);
saveToStorage(LIBRARY_KEY, imported.filter(f => f.id !== id));
_activeCache.clear();View on GitHub (pinned to eeab0a219f)
Solutions
- Delete one or more existing imported frameworks to free a slot
- Consider exporting and then removing frameworks you rarely use
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/services/analysis-framework-store.ts:119 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of koala73/worldmonitor@eeab0a219f (2026-08-21).
Data as JSON: /api/errors/0bca5ee87075e76b.
Report an issue: GitHub.