Implement Phase 3 of v1.3.0 tags feature per microformats-tags-design.md: Routes (starpunk/routes/public.py): - Add /tag/<tag> archive route with normalization and 404 handling - Pre-load tags in index route for all notes - Pre-load tags in note route for individual notes Admin (starpunk/routes/admin.py): - Parse comma-separated tag input in create route - Parse tag input in update route - Pre-load tags when displaying edit form - Empty tag field removes all tags Templates: - Add tag input field to templates/admin/edit.html - Add tag input field to templates/admin/new.html - Use Jinja2 map filter to display existing tags Implementation details: - Tag URL parameter normalized to lowercase before lookup - Tags pre-loaded using object.__setattr__ pattern (like media) - parse_tag_input() handles trim, dedupe, normalization - All existing tests pass (micropub categories, admin routes) Per architect design: - No pagination on tag archives (acceptable for v1.3.0) - No autocomplete in admin (out of scope) - Follows existing media loading patterns Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
98 lines
2.2 KiB
Markdown
98 lines
2.2 KiB
Markdown
# StarPunk Backlog
|
|
|
|
**Last Updated**: 2025-12-10
|
|
|
|
## Priority Levels
|
|
|
|
- **Critical** - Items that break existing functionality
|
|
- **High** - Important features or fixes
|
|
- **Medium** - Planned features
|
|
- **Low** - Nice-to-have, deferred indefinitely
|
|
|
|
---
|
|
|
|
## Critical
|
|
|
|
*No critical items*
|
|
|
|
---
|
|
|
|
## High
|
|
|
|
### Strict Microformats2 Compliance
|
|
- Complete h-entry properties (p-name, p-summary, p-author)
|
|
- Author h-card implementation
|
|
- h-feed wrapper for index pages
|
|
- Full IndieWeb parser compatibility
|
|
- Microformats2 validation suite
|
|
- See: ADR-040
|
|
|
|
### Enhanced Feed Media Support
|
|
- Multiple image sizes/thumbnails (150px, 320px, 640px, 1280px)
|
|
- Full Media RSS implementation (media:group, all attributes)
|
|
- Enhanced JSON Feed attachments
|
|
- ATOM enclosure links for all media
|
|
- See: ADR-059
|
|
|
|
### Tag/Category System
|
|
- Database schema for tags
|
|
- Tag-based filtering
|
|
- Tag clouds
|
|
- Category RSS/ATOM/JSON feeds
|
|
- p-category microformats2 support
|
|
|
|
---
|
|
|
|
## Medium
|
|
|
|
### Webmentions
|
|
- Receive endpoint
|
|
- Send on publish
|
|
- Display received mentions
|
|
- Moderation interface
|
|
|
|
### Reply Contexts
|
|
- In-reply-to support
|
|
- Like/repost posts
|
|
- Bookmark posts
|
|
|
|
### Media Uploads Enhancements
|
|
- File management interface
|
|
- Thumbnail generation
|
|
- CDN integration (optional)
|
|
|
|
### Photo Posts
|
|
- Instagram-like photo notes
|
|
- Gallery views
|
|
- EXIF data preservation
|
|
|
|
### Audio/Podcast Support
|
|
- Podcast RSS with iTunes namespace
|
|
- Audio duration extraction
|
|
- Episode metadata support
|
|
- Apple/Google podcast compatibility
|
|
- See: ADR-059
|
|
|
|
### Video Support
|
|
- Video upload handling
|
|
- Poster image generation
|
|
- Video in Media RSS feeds
|
|
- HTML5 video embedding
|
|
|
|
---
|
|
|
|
## Low
|
|
|
|
### Flaky Migration Race Condition Tests
|
|
- Improve `test_migration_race_condition.py::TestGraduatedLogging::test_debug_level_for_early_retries`
|
|
- Test expects DEBUG retry messages but passes when migration succeeds without retries
|
|
- May need to mock or force retry conditions for reliable testing
|
|
|
|
### Deferred Indefinitely
|
|
- Static Site Generation - Conflicts with dynamic Micropub
|
|
- Multi-language UI - Low priority for single-user system
|
|
- Advanced Analytics - Privacy concerns, use external tools
|
|
- Comments System - Use Webmentions instead
|
|
- WYSIWYG Editor - Markdown is sufficient
|
|
- Mobile App - Web interface is mobile-friendly
|