- Convert roadmap to YAML: - Add data structure: id, priority, title, goal, tags, milestone - Add `details` field (supports list or block string); populated initial content - Quote scalars and use explicit nulls to avoid YAML parse edge cases - Update `updated` date to 2025-08-22 - Flask blueprint + loader: - New /roadmap view with section switching (roadmap | backlog | open_questions) - Filters: q (search), tag (multi, AND), min_priority, milestone - Dataclasses: RoadmapData/RoadmapItem; include `details` - `_normalize_details()` to accept string or list, normalize to list[str] - Configurable path via `ROADMAP_FILE` (env or defaults) - Remove cache layer for simplicity - UI (Tailwind): - `templates/roadmap.html` with responsive cards, tag chips, and filter form - Details modal (larger max width, scrollable body) showing ID/goal/priority/tags/milestone - Safe JSON payload to modal via `|tojson|forceescape` - JS: - DOM-ready, event-delegated handler for `data-item` buttons - Populate modal fields and render multi-paragraph details - Fixes & polish: - Resolved YAML `ScannerError` by quoting strings with `:` and `#` - Ensured `details` is passed through route to template and included in button payload - Minor styling tweaks for consistency with Tailwind setup Usage: - Set `ROADMAP_FILE` if not using default path - Visit /roadmap and filter via q/tag/min_priority/milestone
2.1 KiB
Changelog
All notable changes to this project will be documented in this file.
This project follows Semantic Versioning.
[Unreleased]
✨ Features
- Nothing yet — add upcoming features here.
🛠️ Refactors
- Nothing yet — add upcoming refactors here.
🐛 Fixes
- Nothing yet — add upcoming fixes here.
[v0.2] – 2025-08-22
✨ Features
-
UI Modernization
Migrated the entire front-end to Tailwind CSS (compiled) with Flowbite JS components for better responsiveness, consistency, and developer productivity.
Introduced a new navbar and layout system, improving navigation and making future expansion easier.
Added Docker-based CSS build to keep builds reproducible and lightweight. -
Reusable CSS Components
Added custom utility classes (badge,badge-ok,badge-warn,badge-danger,chip,card, etc.) to replace long Tailwind strings.
This reduces repetition and ensures a consistent look across the app.
🛠️ Refactors
- Template Includes
Extracted shared UI sections (headers, footers, layout chunks) into separate Jinja includes, improving maintainability and readability of templates.
🐛 Fixes
-
Table Rendering
Locked table column widths and fixed snippet scaling issues to prevent column misalignment and content reflow.
This ensures analysis results (like script and form findings) remain readable and properly aligned. -
Rules Engine State
Fixed a bug where the rules engine was not being pulled correctly from the application state after the previous refactor.
This restores proper detection of suspicious scripts/forms and ensures rule definitions (withnameanddescription) are honored.
[v0.1] – Initial Work
- Implemented initial Flask-based web UI for URL submission and analysis.
- Added domain & IP enrichment (WHOIS, GeoIP, ASN/ISP lookups).
- Built first version of the Suspicious Rules Engine for script and form detection.
- Basic Docker setup for sandboxed deployment.