Santhosh Janardhanan 90c15c70b7 feat(actuals): implement full Cartesian grid with filters and pagination
Backend:
- Add ActualController with Cartesian product query (all projects × members)
- Add ActualsService for variance calculations (∞% when actual>0, allocated=0)
- Add ActualResource for API response formatting
- Add migration for notes column on actuals table
- Add global config for inactive project logging (ALLOW_ACTUALS_ON_INACTIVE_PROJECTS)
- Implement filters: project_ids[], team_member_ids[], include_inactive, search
- Add pagination support (25 per page default)
- Register /api/actuals routes

Frontend:
- Create MultiSelect component with portal rendering (z-index fix for sidebar)
  - Compact trigger mode to prevent badge overflow
  - SSR-safe with browser guards
  - Keyboard navigation and accessibility
- Create Pagination component with smart ellipsis
- Rebuild actuals page with:
  - Full Cartesian matrix (shows all projects × members, not just allocations)
  - Filter section with project/member multi-select
  - Active filters display area with badge wrapping
  - URL persistence for all filter state
  - Month navigation with arrows
  - Variance display (GREEN ≤5%, YELLOW 5-20%, RED >20%, ∞% for zero allocation)
  - Read-only cells for inactive projects
  - Modal for incremental hours logging with notes
- Add actualsService with unwrap:false to preserve pagination meta
- Add comprehensive TypeScript types for grid items and pagination

OpenSpec:
- Update actuals-tracking spec with clarified requirements
- Mark Capability 6: Actuals Tracking as complete in tasks.md
- Update test count: 157 backend tests passing

Fixes:
- SSR error: Add browser guards to portal rendering
- Z-index: Use portal to escape stacking context (sidebar z-30)
- Filter overlap: Separate badge display from dropdown triggers
- Member filter: Derive visible members from API response data
- Pagination meta: Disable auto-unwrap to preserve response structure
2026-03-08 22:19:57 -04:00
2026-02-17 10:42:32 -05:00
2026-02-17 10:42:32 -05:00
2026-02-17 10:42:32 -05:00

Headroom Documentation

This directory contains comprehensive documentation for the Headroom project.

Documents

Core Documentation

  1. headroom-project-charter.md

    • Complete project charter and specifications
    • Problem statement, solution overview, requirements
    • Data validation rules, RBAC matrix
    • Deferred features and out-of-scope items
    • Success criteria
  2. headroom-architecture.md

    • Technical architecture with Mermaid diagrams
    • System component diagram
    • Data model (ER diagram)
    • API architecture
    • Authentication flow
    • Deployment architecture
    • Testing strategy
  3. headroom-decision-log.md

    • Complete conversation archive
    • All decisions made and rationale
    • Considerations and trade-offs
    • Deferred features with reasoning
    • Rejected options
    • Timeline of discussions
  4. headroom-executive-summary.md

    • Condensed overview suitable for printing
    • Executive summary
    • Core features
    • Quality standards
    • Timeline and phases
    • Success metrics

Converting to Word Format

If you have Pandoc installed:

# Install Pandoc (if not already installed)
# macOS: brew install pandoc
# Windows: choco install pandoc
# Linux: sudo apt-get install pandoc

# Convert individual files
pandoc headroom-project-charter.md -o headroom-project-charter.docx
pandoc headroom-architecture.md -o headroom-architecture.docx
pandoc headroom-decision-log.md -o headroom-decision-log.docx
pandoc headroom-executive-summary.md -o headroom-executive-summary.docx

# Or convert all at once
for file in headroom-*.md; do
  pandoc "$file" -o "${file%.md}.docx"
done

Option 2: Using Online Converters

If Pandoc is not available:

  1. Visit https://cloudconvert.com/md-to-docx
  2. Upload the .md file
  3. Download the .docx file

Alternatively:

Option 3: Copy-Paste Method

  1. Open the .md file in any Markdown viewer (VSCode, Typora, MacDown)
  2. Copy the rendered content
  3. Paste into Microsoft Word
  4. Format as needed

Mermaid Diagrams

The architecture document contains Mermaid diagrams. To render them:

In Markdown Viewers

  • VSCode: Install "Markdown Preview Mermaid Support" extension
  • Typora: Built-in Mermaid support
  • MacDown: May require plugin

For Word Conversion

Mermaid diagrams don't convert directly to Word. Options:

  1. Render to images first:

    # Using mermaid-cli
    npm install -g @mermaid-js/mermaid-cli
    mmdc -i architecture.md -o architecture.docx
    
  2. Use online renderer:

  3. Keep as code blocks:

    • Diagrams will appear as text in Word
    • Acceptable for technical documentation

For Project Owner (You)

  1. Start with headroom-executive-summary.md (overview)
  2. Read headroom-decision-log.md (verify all decisions captured)
  3. Review headroom-project-charter.md (detailed requirements)
  4. Study headroom-architecture.md (technical deep-dive)

For Associate

  1. headroom-executive-summary.md (context)
  2. headroom-architecture.md (technical implementation)
  3. headroom-project-charter.md (detailed requirements as needed)

For Hardcopy/Reference

  • headroom-executive-summary.md → Print for quick reference
  • headroom-architecture.md → Print for technical diagrams

Document Maintenance

When to Update

Project Charter:

  • When requirements change
  • When new features are added to scope
  • When success metrics are revised

Architecture:

  • When tech stack changes
  • When new integrations are added
  • When deployment approach changes

Decision Log:

  • Add entries for major decisions
  • Update when deferrals are implemented
  • Record new trade-offs

Executive Summary:

  • Update timeline when phases shift
  • Revise success metrics based on learnings
  • Update when project scope changes significantly

Version Control

All documents are in git. To track changes:

# View history of a document
git log -p docs/headroom-project-charter.md

# Compare versions
git diff HEAD~1 docs/headroom-architecture.md

# Tag major versions
git tag -a v1.0-docs -m "Initial documentation complete"

Quick Reference: Key Decisions

Decision Document Section
Why SvelteKit? Decision Log Technical Stack Decisions → Frontend
Why Redis from day 1? Decision Log Architecture Decisions → Caching
What's deferred to Phase 2? Project Charter Deferred Features
What's the data model? Architecture Data Model
What are the success metrics? Executive Summary Success Metrics
What's the testing strategy? Architecture Quality Standards
UI Layout approach? Decision Log UI Layout Decisions
Sidebar + TopBar pattern? Architecture Frontend Layout Architecture

Questions or Updates?

Contact: Santhosh J (Project Owner)


Last Updated: February 18, 2026
Documentation Version: 1.1

Description
No description provided
Readme 60 MiB
Languages
Markdown 100%