================================================================================
PRISM NOTES - SESSION LOG
Project history, decisions, and architectural milestones
================================================================================

[2026-01-14 15:15] MONICA SESSION: Audit & Standards Enforcement Setup
- Action: Established formal audit process and standards compliance tracking
- Created logs/AUDIT_CHECKLIST.txt with 44 systematic compliance checks
- Created logs/DEVIATIONS.txt for quick-reference of non-standard but accepted deviations
- Updated git.instructions with:
  * RULE 8: User-controlled commits and syncs (no unprompted operations)
  * AUDIT PROCESS section: Mandatory at project start and before commits
  * COMPONENT-FIRST ARCHITECTURE: Evaluates new features for standalone component status
- Audit Result: 40 passes, 2 failures (both documented), 1 warning
- Findings:
  * package-lock.json present (npm violation of Bun-exclusive standard) — REMOVED
  * Vanilla JS frontend (documented deviation) — ACCEPTED
  * Tailwind CDN (documented deviation) — ACCEPTED
- Status: STANDARDS COMPLIANT after removal of npm lock file

[2026-01-11 TODO] Screen Capture Window Visibility Issue - INVESTIGATE LATER
- Issue: Prism Notes window still appears in getDisplayMedia() dialog options 
  even though visibility is hidden before dialog opens
- Attempted Fix: Used visibility:hidden on app elements before getDisplayMedia()
- Result: Not working - window still shows in screen selector
- Root Cause: Unclear - may be timing issue or browser caching of window list
- Workaround: User can manually select other screen/window instead
- Investigation Needed:
  * Try alternative hiding methods (display:none, opacity:0, positioning off-screen)
  * Check if timing delay needed before getDisplayMedia()
  * Verify with different browsers (Chrome vs Edge vs Firefox)
  * Consider if OS-level window management interferes
- Impact: Minor UX issue - doesn't prevent functionality, just less elegant
- Priority: LOW - defer until screen capture feature stabilized otherwise

[2026-01-10 20:10] MONICA SESSION: Fixed Container Injection Bug
- Issue: Refactor commit (cee9157) had CONTAINERS + initializeContainers() code
  but ALSO kept all old HTML in DOM, creating duplicates and preventing injection
- Root Cause: During refactor, old HTML wasn't removed before injection system added
- Fix Applied:
  * Removed all duplicate HTML container elements from DOM (login, notesList, 
    noteDetail, noteForm)
  * Restored CONTAINERS object with all 6 templates (login, notesList, noteDetail, 
    noteForm, conversationForm, conversationsList)
  * Restored initializeContainers() function to inject templates on page load
  * Called initializeContainers() BEFORE updateAuthUI() to ensure DOM ready
  * Added conversation feature support (was added in refactor, now working)
- Result: Page now dynamically injects all containers from template literals
- Status: Fixed and committed (c733930)
- Next: Verify rendering works correctly when accessing page

[2026-01-10 14:00] Container Refactoring: Template Literals (Option 1)
- Decision: Extracted all container HTML to template literals in index.html
- Reasoning: Allows independent container updates without touching markup
  Each container is now self-contained and versioned separately
- Implementation: 
  * Created CONTAINERS object with keys: login, notesList, noteDetail, noteForm, 
    conversationForm, conversationsList
  * Added initializeContainers() function that injects all templates on page load
  * Containers maintained in-file for simplicity during active development
- Future Intent: Migrate to Option 2 (separate files in containers/) when project 
  becomes more established and needs full file separation
- Status: Functional and ready for independent container updates

================================================================================
