Commit Graph
20 Commits
Author SHA1 Message Date
Nathan Castaldi 58566aba0b feat(reports): add multi-format rendering (html, pdf, docx)
- Add report_templates package (_renderer.py) with MD/HTML/PDF/DOCX
  support using lazy optional imports (markdown, weasyprint, python-docx)
- Apply Wheels brand colors (#003865/#0066cc) to HTML and DOCX output
- Extend save_report MCP tool with `format` param (default: "md");
  binary formats use write_bytes, text formats keep async writer
- Add [report] optional dep group to pyproject.toml for one-step install
- Fix ReportConfig.output_dir default: ./reports → ./output-reports
  to align config.py with the codified REPORT_OUTPUT_DIR env setting

Ref: session 2026-04-15 — exec-friendly report output track

BREAKING CHANGE: ReportConfig.output_dir default changed from
./reports to ./output-reports. Environments without REPORT_OUTPUT_DIR
set in .env will write to a different path after this change.
2026-04-15 18:33:54 -04:00
Nathan Castaldi fa366e8b72 Add AD User Detail Reports for Nathan Castaldi and Randy Novak
- Created detailed reports for users Nathan Castaldi and Randy Novak.
- Reports include user summaries, directory object information, and raw normalized identity fields.
- Both reports generated from Active Directory on 2026-04-15.
2026-04-15 18:28:27 -04:00
Nathan Castaldi f2557455b7 feat(reports): update output directory configuration and enhance path resolution logic 2026-04-15 18:28:08 -04:00
Nathan Castaldi e262e7f42e feat(reports): add save_report tool shard
- nexus-mcp/src/shards/reports.py: new async MCP tool that writes
  markdown to documentation/output-reports/ with UTC-timestamped
  filenames and a path-traversal safety guard
- nexus-mcp/src/main.py: register reports shard gated by ENABLE_REPORTS,
  consistent with existing shard loader pattern
- Keeps chat context lightweight for large identity/audit payloads
  expected during post-consent validation (ref: SESSION_SNAPSHOT_2026-04-15_2)
2026-04-15 18:07:38 -04:00
Nathan Castaldi e7d986a3c5 feat: add functionality to list disabled AD accounts and update related API 2026-04-15 17:52:37 -04:00
Nathan Castaldi 275d69cd31 refactor: generalize prompt builder for LLM optimization by replacing GPT-5 references with dynamic user input 2026-04-15 17:51:25 -04:00
Nathan Castaldi 4539653d79 feat: add AD user groups retrieval function to identity shard 2026-04-15 17:30:11 -04:00
Nathan Castaldi a4c09bd43d docs(history): add session snapshot for 2026-04-15 part 2" -m "- finalize CanonicalUser contract enforcement (extra=forbid)
- document production-correct AD dual-account and privileged OU handling
- record policy-aware identity confidence implementation status
- capture explainability improvements in identity output semantics
- note Entra admin-consent as external blocker with clean handoff next steps
2026-04-15 15:26:18 -04:00
Nathan Castaldi 7e74d19ba7 fix: refine CanonicalUser model by removing unnecessary newline and simplifying source_system field definition 2026-04-15 14:41:15 -04:00
Nathan Castaldi 88089d712c fix: change username field in CanonicalUser to required for better data integrity 2026-04-15 14:37:19 -04:00
Nathan Castaldi db3b49624c fix: update source_system fields to use Literal types for stricter validation 2026-04-15 14:36:17 -04:00
Nathan Castaldi a5ad2bca11 feat: add plan for repository naming normalization and phased rename strategy 2026-04-15 14:11:46 -04:00
Nathan Castaldi f6cfd17e30 docs(ops): add session snapshot for 2026-04-15
- Resolved 7 Pylance errors in identity shard (async/to_thread misuse, missing AD adapter methods)
- Remapped search_users, get_stale_accounts, get_disabled_accounts, get_user_by_email call sites
- Added structured logging to identity shard
- Verified 0 diagnostics and 19/19 unit tests passing
- Live mock validation: status reconciliation, disabled accounts, audit log queries
- Deferred: WIS-018 (get_groups backend method), field-name alignment audit
2026-04-15 10:57:08 -04:00
Nathan Castaldi 0d5c921a94 fix: update Active Directory adapter to use ActiveDirectoryIdentityBackend 2026-04-15 09:11:58 -04:00
Nathan Castaldi 7fb1231f29 fix: correct agent designation in code review prompt 2026-04-15 08:36:04 -04:00
Nathan Castaldi ce3fe0de6b docs: update title case in demo and setup guide 2026-04-15 08:25:32 -04:00
Nathan Castaldi de3a780ecf docs: update README to remove outdated status page and improve clarity 2026-04-15 08:25:05 -04:00
Nathan Castaldi c3754d9c8e docs: remove outdated tools reference section from README 2026-04-15 08:11:50 -04:00
Nathan Castaldi d6e93c976a Merge branch 'main' of https://github.com/Castn1_Wheels/mcp_servers 2026-04-14 17:12:31 -04:00
Nathan Castaldi 86187a8acd docs(ops): add session snapshot for 2026-04-14
- Document full repo restructure: DEMO_GUIDE, TOOL_INVENTORY promoted to root
- Capture README overhaul, reports/ folder consolidation, and work item register creation
- Record prompt model alignment to claude-sonnet-4.6 and enterprise .gitignore hardening
- Note outstanding: git pull required for dependabot.yml, .venv bash activation failure, unmerged resilience branches
2026-04-14 17:12:27 -04:00