# StarPunk v1.1.0: Priority Work Items

## Overview

This document tracked HIGH PRIORITY work items for the v1.1.0 release. All critical items have been successfully completed.

**Target Release**: v1.1.0
**Status**: COMPLETED ✅
**Created**: 2025-11-24
**Released**: 2025-11-25

## Critical Priority Items

All critical items were successfully completed for v1.1.0 release.

---

### 1. Database Migration System Redesign - Phase 2 ✅

**Priority**: CRITICAL
**ADR**: ADR-033
**Actual Effort**: ~2 hours
**Status**: COMPLETE
**Implementation**: Renamed SCHEMA_SQL to INITIAL_SCHEMA_SQL for clarity

#### Problem
The current database initialization system fails when upgrading existing production databases because SCHEMA_SQL represents the current schema rather than the initial v0.1.0 baseline. This causes indexes to be created on columns that don't exist yet.

#### Solution
Implement INITIAL_SCHEMA_SQL as designed in ADR-032 to represent the v0.1.0 baseline schema. All schema evolution will happen through migrations.

#### Implementation Tasks

1. **Create INITIAL_SCHEMA_SQL constant** (`database.py`)
   ```python
   INITIAL_SCHEMA_SQL = """
   -- V0.1.0 baseline schema from commit a68fd57
   -- [Full SQL as documented in ADR-032]
   """
   ```

2. **Modify init_db() function** (`database.py`)
   - Add database existence check
   - Use INITIAL_SCHEMA_SQL for fresh databases
   - Run migrations for all databases
   - See ADR-032 for complete logic

3. **Add helper functions** (`database.py`)
   - `database_exists_with_tables()`: Check if database has existing tables
   - Update imports and error handling

4. **Update existing SCHEMA_SQL** (`database.py`)
   - Rename to CURRENT_SCHEMA_SQL
   - Mark as documentation-only (not used for initialization)
   - Add clear comments explaining purpose

#### Testing Requirements

- [ ] Test fresh database initialization (should create v0.1.0 schema then migrate)
- [ ] Test upgrade from existing v1.0.0-rc.2 database
- [ ] Test upgrade from v0.x.x databases if available
- [ ] Verify all indexes created correctly
- [ ] Verify no duplicate table/index errors
- [ ] Test migration tracking (schema_migrations table)
- [ ] Performance test for fresh install (all migrations)

#### Documentation Updates

- [ ] Update database.py docstrings
- [ ] Add inline comments explaining dual schema constants
- [ ] Update deployment documentation
- [ ] Add production upgrade guide
- [ ] Update CHANGELOG.md

#### Success Criteria

- Existing databases upgrade without errors
- Fresh databases initialize correctly
- All migrations run in proper order
- No index creation errors
- Clear upgrade path from any version

---

### 2. IndieAuth Provider Strategy Implementation

**Priority**: HIGH
**ADR**: ADR-021 (if exists)
**Estimated Effort**: 8-10 hours
**Dependencies**: Database migration system working correctly
**Risk**: Medium (external service dependencies)

#### Problem
Current IndieAuth implementation may need updates based on production usage patterns and compliance requirements.

#### Implementation Notes
- Review existing ADR-021-indieauth-provider-strategy.md
- Implement any pending IndieAuth improvements
- Ensure full spec compliance

---

## Medium Priority Items

These items SHOULD be completed for v1.1.0 if time permits.

### 3. Full-Text Search Implementation ✅

**Priority**: MEDIUM (Elevated to HIGH - implemented)
**ADR**: ADR-034
**Actual Effort**: ~7 hours (including complete UI)
**Status**: COMPLETE
**Implementation**: SQLite FTS5 with full UI and API

#### Implementation Approach
- Use SQLite FTS5 extension
- Create shadow FTS table for note content
- Update on note create/update/delete
- Add search_notes() function to notes.py

---

### 4. Migration System Testing Suite

**Priority**: MEDIUM
**Estimated Effort**: 4-5 hours
**Dependencies**: Item #1 (Migration redesign)
**Risk**: Low

#### Test Coverage Needed
- Migration ordering tests
- Rollback simulation tests
- Schema evolution tests
- Performance benchmarks
- CI/CD integration

---

## Implementation Order

1. **First**: Complete Database Migration System Redesign (Critical)
2. **Second**: Add comprehensive migration tests
3. **Third**: IndieAuth improvements (if needed)
4. **Fourth**: Full-text search (if time permits)

## Release Checklist

Before releasing v1.1.0:

- [ ] All CRITICAL items complete
- [ ] All tests passing
- [ ] Documentation updated
- [ ] CHANGELOG.md updated with all changes
- [ ] Version bumped to 1.1.0
- [ ] Migration guide written for production systems
- [ ] Release notes prepared
- [ ] Docker image tested with migrations

## Risk Mitigation

### Migration System Risks
- **Risk**: Breaking existing databases
- **Mitigation**: Comprehensive testing, backward compatibility, clear rollback procedures

### Performance Risks
- **Risk**: Slow fresh installations (running all migrations)
- **Mitigation**: Migration performance testing, potential migration squashing in future

### Deployment Risks
- **Risk**: Production upgrade failures
- **Mitigation**: Detailed upgrade guide, test on staging first, backup procedures

## Notes for Implementation

### For the Developer Implementing Item #1

1. **Start with ADR-032** for complete design details
2. **Check git history** for original schema (commit a68fd57)
3. **Test thoroughly** - this is critical infrastructure
4. **Consider edge cases**:
   - Empty database
   - Partially migrated database
   - Corrupted migration tracking
   - Missing migration files

### Key Files to Modify

1. `/home/phil/Projects/starpunk/starpunk/database.py`
   - Add INITIAL_SCHEMA_SQL constant
   - Modify init_db() function
   - Add helper functions

2. `/home/phil/Projects/starpunk/tests/test_migrations.py`
   - Add new test cases for initial schema
   - Test upgrade paths

3. `/home/phil/Projects/starpunk/docs/architecture/database.md`
   - Document schema evolution strategy
   - Explain dual schema constants

## Success Metrics

- Zero database upgrade failures in production
- Fresh installation time < 1 second
- All tests passing
- Clear documentation for future maintainers
- Positive user feedback on stability

## References

- [ADR-031: Database Migration System Redesign](/home/phil/Projects/starpunk/docs/decisions/ADR-031-database-migration-system-redesign.md)
- [ADR-032: Initial Schema SQL Implementation](/home/phil/Projects/starpunk/docs/decisions/ADR-032-initial-schema-sql-implementation.md)
- [v1.1 Potential Features](/home/phil/Projects/starpunk/docs/projectplan/v1.1/potential-features.md)
- [Migration Implementation Reports](/home/phil/Projects/starpunk/docs/reports/)

---

*Last Updated: 2025-11-24*
*Version: 1.0.0-rc.2 → 1.1.0 (planned)*