-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Overview
The narrativeMemory.js manages long-term narrative memory including hourly summaries, daily summaries, timeline lore, and storyline tracking. With 42.42% coverage, significant narrative memory functionality is untested.
Current Coverage
- Statements: 42.42%
- Branches: 52.19%
- Functions: 27.27%
- Lines: 42.42%
- Target: 100% coverage
Uncovered Areas
Major untested sections:
- Memory initialization and loading
- Hourly narrative generation
- Daily narrative generation
- Timeline lore management
- Storyline tracking
- Memory persistence
- Historical data retrieval
- Memory cleanup and archival
Key Functionality to Test
1. Memory Initialization
- Loading historical narratives
- Initializing storage structures
- Configuration handling
- Migration from old formats
2. Hourly Narratives
- Generating hourly summaries
- Topic aggregation
- Sample selection
- Diversity metrics
- Sliding window updates
3. Daily Narratives
- Generating daily summaries
- Aggregating hourly data
- Long-term pattern identification
- Narrative coherence
- Summary formatting
4. Timeline Lore
- Creating lore entries
- Updating lore context
- Lore retrieval
- Lore filtering
- Lore expiration
5. Storyline Tracking
- Tracking ongoing storylines
- Storyline progression
- Storyline completion
- Cross-referencing events
Testing Strategy
describe('NarrativeMemory', () => {
describe('Initialization', () => {
test('initializes with historical data');
test('handles missing data gracefully');
test('migrates old formats');
test('sets up storage structures');
});
describe('Hourly Narratives', () => {
test('generates hourly summaries');
test('aggregates topics correctly');
test('selects representative samples');
test('calculates diversity metrics');
test('updates sliding window');
});
describe('Daily Narratives', () => {
test('generates daily summaries');
test('aggregates hourly narratives');
test('identifies long-term patterns');
test('maintains narrative coherence');
test('formats summaries properly');
});
describe('Timeline Lore', () => {
test('creates lore entries');
test('updates lore context');
test('retrieves relevant lore');
test('filters by criteria');
test('handles lore expiration');
});
describe('Storyline Tracking', () => {
test('tracks ongoing storylines');
test('updates storyline progress');
test('marks storylines complete');
test('cross-references events');
});
describe('Memory Persistence', () => {
test('saves narratives to storage');
test('loads narratives from storage');
test('handles storage errors');
test('manages storage limits');
});
describe('Integration', () => {
test('integrates with context accumulator');
test('provides data to context provider');
test('supports evolution tracking');
});
});Test Fixtures Needed
- Historical narrative data
- Topic time-series data
- Lore entry examples
- Storyline scenarios
- Configuration variations
Acceptance Criteria
- Initialization fully tested
- Hourly narrative generation verified
- Daily narrative generation covered
- Timeline lore management tested
- Storyline tracking verified
- Memory persistence tested
- Overall coverage 100%
Related
- Parent: Increase plugin-nostr test coverage to 100% #39 - Increase plugin-nostr test coverage to 100%
- Related:
lib/contextAccumulator.js- Provides data - Related:
lib/narrativeContextProvider.js- Consumes data - See:
test/narrativeMemory.*.test.js,TOPIC_ANALYSIS_AND_NARRATIVE.md
Priority
🟡 MEDIUM - Critical for maintaining agent's long-term memory and narrative coherence.
Copilot