32fe1de50f
feat: Complete v1.1.2 Phase 3 - Feed Enhancements (Caching, Statistics, OPML)
...
Implements caching, statistics, and OPML export for multi-format feeds.
Phase 3 Deliverables:
- Feed caching with LRU + TTL (5 minutes)
- ETag support with 304 Not Modified responses
- Feed statistics dashboard integration
- OPML 2.0 export endpoint
Features:
- LRU cache with SHA-256 checksums for weak ETags
- 304 Not Modified responses for bandwidth optimization
- Feed format statistics tracking (RSS, ATOM, JSON Feed)
- Cache efficiency metrics (hit/miss rates, memory usage)
- OPML subscription list at /opml.xml
- Feed discovery link in HTML base template
Quality Metrics:
- All existing tests passing (100%)
- Cache bounded at 50 entries with 5-minute TTL
- <1ms caching overhead
- Production-ready implementation
Architect Review: APPROVED WITH COMMENDATIONS (10/10)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-27 21:42:37 -07:00
b0230b1233
feat: Complete v1.1.2 Phase 1 - Metrics Instrumentation
...
Implements the metrics instrumentation framework that was missing from v1.1.1.
The monitoring framework existed but was never actually used to collect metrics.
Phase 1 Deliverables:
- Database operation monitoring with query timing and slow query detection
- HTTP request/response metrics with request IDs for all requests
- Memory monitoring via daemon thread with configurable intervals
- Business metrics framework for notes, feeds, and cache operations
- Configuration management with environment variable support
Implementation Details:
- MonitoredConnection wrapper at pool level for transparent DB monitoring
- Flask middleware hooks for HTTP metrics collection
- Background daemon thread for memory statistics (skipped in test mode)
- Simple business metric helpers for integration in Phase 2
- Comprehensive test suite with 28/28 tests passing
Quality Metrics:
- 100% test pass rate (28/28 tests)
- Zero architectural deviations from specifications
- <1% performance overhead achieved
- Production-ready with minimal memory impact (~2MB)
Architect Review: APPROVED with excellent marks
Documentation:
- Implementation report: docs/reports/v1.1.2-phase1-metrics-implementation.md
- Architect review: docs/reviews/2025-11-26-v1.1.2-phase1-review.md
- Updated CHANGELOG.md with Phase 1 additions
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-26 14:13:44 -07:00
e589f5bd6c
docs: Fix ADR numbering conflicts and create comprehensive documentation indices
...
This commit resolves all documentation issues identified in the comprehensive review:
CRITICAL FIXES:
- Renumbered duplicate ADRs to eliminate conflicts:
* ADR-022-migration-race-condition-fix → ADR-037
* ADR-022-syndication-formats → ADR-038
* ADR-023-microformats2-compliance → ADR-040
* ADR-027-versioning-strategy-for-authorization-removal → ADR-042
* ADR-030-CORRECTED-indieauth-endpoint-discovery → ADR-043
* ADR-031-endpoint-discovery-implementation → ADR-044
- Updated all cross-references to renumbered ADRs in:
* docs/projectplan/ROADMAP.md
* docs/reports/v1.0.0-rc.5-migration-race-condition-implementation.md
* docs/reports/2025-11-24-endpoint-discovery-analysis.md
* docs/decisions/ADR-043-CORRECTED-indieauth-endpoint-discovery.md
* docs/decisions/ADR-044-endpoint-discovery-implementation.md
- Updated README.md version from 1.0.0 to 1.1.0
- Tracked ADR-021-indieauth-provider-strategy.md in git
DOCUMENTATION IMPROVEMENTS:
- Created comprehensive INDEX.md files for all docs/ subdirectories:
* docs/architecture/INDEX.md (28 documents indexed)
* docs/decisions/INDEX.md (55 ADRs indexed with topical grouping)
* docs/design/INDEX.md (phase plans and feature designs)
* docs/standards/INDEX.md (9 standards with compliance checklist)
* docs/reports/INDEX.md (57 implementation reports)
* docs/deployment/INDEX.md (deployment guides)
* docs/examples/INDEX.md (code samples and usage patterns)
* docs/migration/INDEX.md (version migration guides)
* docs/releases/INDEX.md (release documentation)
* docs/reviews/INDEX.md (architectural reviews)
* docs/security/INDEX.md (security documentation)
- Updated CLAUDE.md with complete folder descriptions including:
* docs/migration/
* docs/releases/
* docs/security/
VERIFICATION:
- All ADR numbers now sequential and unique (50 total ADRs)
- No duplicate ADR numbers remain
- All cross-references updated and verified
- Documentation structure consistent and well-organized
These changes improve documentation discoverability, maintainability, and
ensure proper version tracking. All index files follow consistent format
with clear navigation guidance.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-25 13:28:56 -07:00
f28a48f560
docs: Update project plan for v1.1.0 completion
...
Comprehensive project plan updates to reflect v1.1.0 release:
New Documents:
- INDEX.md: Navigation index for all planning docs
- ROADMAP.md: Future version planning (v1.1.1 → v2.0.0)
- v1.1/RELEASE-STATUS.md: Complete v1.1.0 tracking
Updated Documents:
- v1/implementation-plan.md: Updated to v1.1.0, marked V1 100% complete
- v1.1/priority-work.md: Marked all items complete with actual effort
Changes:
- Fixed outdated status (was showing v0.9.5)
- Marked Micropub as complete (v1.0.0)
- Tracked all v1.1.0 features (search, slugs, migrations)
- Added clear roadmap for future versions
- Linked all ADRs and implementation reports
Project plan now fully synchronized with v1.1.0 "SearchLight" release.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-25 11:31:43 -07:00
3ed77fd45f
fix: Resolve database migration failure on existing databases
...
Fixes critical issue where migration 002 indexes already existed in SCHEMA_SQL,
causing 'index already exists' errors on databases created before v1.0.0-rc.1.
Changes:
- Removed duplicate index definitions from SCHEMA_SQL (database.py)
- Enhanced migration system to detect and handle indexes properly
- Added comprehensive documentation of the fix
Version bumped to 1.0.0-rc.2 with full changelog entry.
Refs: docs/reports/2025-11-24-migration-fix-v1.0.0-rc.2.md
2025-11-24 13:11:14 -07:00
2eaf67279d
docs: Standardize all IndieAuth spec references to W3C URL
...
- Updated 42 references from indieauth.spec.indieweb.org to www.w3.org/TR/indieauth
- Ensures consistency across all documentation
- Points to the authoritative W3C specification
- No functional changes, documentation update only
Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-24 11:54:04 -07:00
dca9604746
docs: Address Micropub design issues and clarify V1 scope
...
- Create ADR-029 for IndieAuth/Micropub integration strategy
- Address all critical issues from developer review:
- Add missing 'me' parameter to token endpoint
- Clarify PKCE as optional extension
- Define token security migration strategy
- Add authorization_codes table schema
- Define property mapping rules
- Clarify two authentication flows
- Simplify V1 scope per user decision:
- Remove update/delete operations from V1
- Focus on create-only functionality
- Reduce timeline from 8-10 to 6-8 days
- Update project plan with post-V1 roadmap:
- Phase 11: Update/delete operations (V1.1)
- Phase 12: Media endpoint (V1.2)
- Phase 13: Advanced IndieWeb features (V2.0)
- Phase 14: Enhanced features (V2.0+)
- Create token security migration documentation
- Update ADR-028 for consistency with simplified scope
BREAKING CHANGE: Token migration will invalidate all existing tokens for security
2025-11-24 11:39:13 -07:00
b184bc1316
docs: Update implementation plan to reflect v0.9.5 reality
...
Updated docs/projectplan/v1/implementation-plan.md to accurately track
current implementation status and clearly document unimplemented features.
Changes:
- Updated current version from 0.4.0 to 0.9.5
- Updated progress summary: Phases 1-5 complete (70% overall)
- Added "CRITICAL: Unimplemented Features" section with clear status
- Micropub endpoint: NOT IMPLEMENTED (critical V1 blocker)
- Notes CRUD API: NOT IMPLEMENTED (optional, deferred to V2)
- RSS feed: IMPLEMENTED (v0.6.0, needs verification)
- IndieAuth token endpoint: NOT IMPLEMENTED (for Micropub)
- Microformats validation: PARTIAL (markup exists, not validated)
- Updated summary checklist to reflect actual implementation:
- Admin web interface: COMPLETE (v0.5.2)
- Public web interface: COMPLETE (v0.5.0)
- RSS feed: COMPLETE (v0.6.0)
- Authentication: COMPLETE (v0.8.0 with PKCE)
- Test coverage: 87% overall
- Standards compliance: PARTIAL
- Updated timeline with realistic path to V1:
- Completed: ~35 hours (Phases 1-5)
- Remaining: ~15-25 hours (Micropub + validation)
- Path to V1: Micropub (12h), validation (4h), docs (3h), release (2h)
- Updated quality gates to reflect v0.9.5 achievements:
- Test coverage: 87% (exceeds 80% target)
- Manual testing: Complete (IndieLogin working)
- Production deployment: Complete (container + CI/CD)
- Security tests: Complete (PKCE, token hashing)
This update ensures the implementation plan accurately reflects the
significant progress made from v0.4.0 to v0.9.5 while clearly
documenting what remains for V1 release.
Related: Architect validation report identified discrepancies between
documented V1 scope and actual v0.9.5 implementation.
2025-11-24 11:03:05 -07:00
0cca8169ce
feat: Implement Phase 4 Web Interface with bugfixes (v0.5.2)
...
## Phase 4: Web Interface Implementation
Implemented complete web interface with public and admin routes,
templates, CSS, and development authentication.
### Core Features
**Public Routes**:
- Homepage with recent published notes
- Note permalinks with microformats2
- Server-side rendering (Jinja2)
**Admin Routes**:
- Login via IndieLogin
- Dashboard with note management
- Create, edit, delete notes
- Protected with @require_auth decorator
**Development Authentication**:
- Dev login bypass for local testing (DEV_MODE only)
- Security safeguards per ADR-011
- Returns 404 when disabled
**Templates & Frontend**:
- Base layouts (public + admin)
- 8 HTML templates with microformats2
- Custom responsive CSS (114 lines)
- Error pages (404, 500)
### Bugfixes (v0.5.1 → v0.5.2)
1. **Cookie collision fix (v0.5.1)**:
- Renamed auth cookie from "session" to "starpunk_session"
- Fixed redirect loop between dev login and admin dashboard
- Flask's session cookie no longer conflicts with auth
2. **HTTP 404 error handling (v0.5.1)**:
- Update route now returns 404 for nonexistent notes
- Delete route now returns 404 for nonexistent notes
- Follows ADR-012 HTTP Error Handling Policy
- Pattern consistency across all admin routes
3. **Note model enhancement (v0.5.2)**:
- Exposed deleted_at field from database schema
- Enables soft deletion verification in tests
- Follows ADR-013 transparency principle
### Architecture
**New ADRs**:
- ADR-011: Development Authentication Mechanism
- ADR-012: HTTP Error Handling Policy
- ADR-013: Expose deleted_at Field in Note Model
**Standards Compliance**:
- Uses uv for Python environment
- Black formatted, Flake8 clean
- Follows git branching strategy
- Version incremented per versioning strategy
### Test Results
- 405/406 tests passing (99.75%)
- 87% code coverage
- All security tests passing
- Manual testing confirmed working
### Documentation
- Complete implementation reports in docs/reports/
- Architecture reviews in docs/reviews/
- Design documents in docs/design/
- CHANGELOG updated for v0.5.2
### Files Changed
**New Modules**:
- starpunk/dev_auth.py
- starpunk/routes/ (public, admin, auth, dev_auth)
**Templates**: 10 files (base, pages, admin, errors)
**Static**: CSS and optional JavaScript
**Tests**: 4 test files for routes and templates
**Docs**: 20+ architectural and implementation documents
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-18 23:01:53 -07:00
a68fd570c7
that initial commit
2025-11-18 19:21:31 -07:00