6 Commits

Author SHA1 Message Date
fa26d6b301 chore(release): install fdroidserver via pip for compatibility with modern Flutter/AGP APKs 2026-03-16 20:45:09 +01:00
6bb1bc35d7 docs: start milestone v1.1 Calendar & Polish 2026-03-16 20:44:51 +01:00
ead085ad26 fix(android): move MainActivity to correct package to fix ClassNotFoundException
The namespace/applicationId is `de.jeanlucmakiola.household_keeper` but
MainActivity was in the old `com.jlmak.household_keeper` package, causing
a crash on launch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 20:39:08 +01:00
74a801c6f2 chore(release): enhance release workflow to safely handle APK naming with ref-based fallback 2026-03-16 20:30:40 +01:00
0059095e38 chore(release): make sudo usage optional in release workflow setup steps 2026-03-16 20:14:31 +01:00
8c72403c85 chore: archive v1.0 phase directories to milestones/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 20:12:01 +01:00
46 changed files with 57 additions and 46 deletions

View File

@@ -107,8 +107,15 @@ jobs:
- name: Setup F-Droid Server Tools
run: |
sudo apt-get update
sudo apt-get install -y fdroidserver sshpass
SUDO=""
if command -v sudo >/dev/null 2>&1; then
SUDO="sudo"
fi
$SUDO apt-get update
# sshpass from apt, fdroidserver via pip to get a newer androguard that
# can parse modern Flutter/AGP APKs (apt ships fdroidserver 2.2.1 which crashes)
$SUDO apt-get install -y sshpass python3-pip
pip3 install --break-system-packages --upgrade fdroidserver
- name: Initialize or fetch F-Droid Repository
env:
@@ -125,10 +132,17 @@ jobs:
- name: Copy new APK to repo
run: |
# The app-release.apk name should ideally include the version number
# so it doesn't overwrite older versions in the repo.
VERSION_TAG=${GITHUB_REF#refs/tags/} # gets 'v1.0.0'
cp build/app/outputs/flutter-apk/app-release.apk fdroid/repo/my_flutter_app_${VERSION_TAG}.apk
set -e
mkdir -p fdroid/repo
# Prefer tag name for release builds; fallback to ref name for manual runs.
REF_NAME="${GITHUB_REF_NAME:-${GITHUB_REF##*/}}"
SAFE_REF_NAME="$(echo "$REF_NAME" | tr '/ ' '__' | tr -cd '[:alnum:]_.-')"
if [ -z "$SAFE_REF_NAME" ]; then
SAFE_REF_NAME="${GITHUB_SHA:-manual}"
fi
cp build/app/outputs/flutter-apk/app-release.apk "fdroid/repo/my_flutter_app_${SAFE_REF_NAME}.apk"
- name: Generate F-Droid Index
run: |

View File

@@ -8,6 +8,18 @@ A local-first Flutter app for organizing household chores, built for personal/co
Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it.
## Current Milestone: v1.1 Calendar & Polish
**Goal:** Replace the stacked daily plan with a horizontal calendar strip UI, add task completion history, and task sorting options.
**Target features:**
- Horizontal date-strip calendar with day abbreviation + date number cards
- Month color shift for visual boundary between months
- Day-selection shows tasks in a list below the strip
- Undone tasks carry over to the next day with color accent (overdue marker)
- Task completion history log
- Additional task sorting (alphabetical, interval, effort)
## Requirements
### Validated
@@ -23,11 +35,13 @@ Users can see what needs doing today, mark it done, and trust the app to schedul
### Active
- [ ] Data export/import (JSON)
- [ ] English localization
- [ ] Room cover photos from camera or gallery
- [ ] Horizontal calendar strip home screen (replacing stacked daily plan)
- [ ] Overdue task carry-over with visual accent
- [ ] Task completion history log
- [ ] Additional task sorting (alphabetical, interval, effort)
- [ ] Data export/import (JSON) — deferred
- [ ] English localization — deferred
- [ ] Room cover photos from camera or gallery — deferred
### Out of Scope
@@ -79,4 +93,4 @@ Users can see what needs doing today, mark it done, and trust the app to schedul
| Manual StreamProvider for drift types | riverpod_generator throws InvalidTypeException with drift Task type | Revisit — may be fixed in future riverpod_generator versions |
---
*Last updated: 2026-03-16 after v1.0 milestone*
*Last updated: 2026-03-16 after v1.1 milestone started*

View File

@@ -1,17 +1,17 @@
---
gsd_state_version: 1.0
milestone: v1.0
milestone_name: MVP
status: shipped
stopped_at: v1.0 milestone complete
last_updated: "2026-03-16T20:00:00.000Z"
last_activity: 2026-03-16 — v1.0 MVP milestone shipped
milestone: v1.1
milestone_name: Calendar & Polish
status: planning
stopped_at: Defining requirements
last_updated: "2026-03-16T21:00:00.000Z"
last_activity: 2026-03-16 — Milestone v1.1 started
progress:
total_phases: 4
completed_phases: 4
total_plans: 13
completed_plans: 13
percent: 100
total_phases: 0
completed_phases: 0
total_plans: 0
completed_plans: 0
percent: 0
---
# Project State
@@ -21,31 +21,14 @@ progress:
See: .planning/PROJECT.md (updated 2026-03-16)
**Core value:** Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it.
**Current focus:** v1.0 shipped — planning next milestone
**Current focus:** v1.1 Calendar & Polish
## Current Position
Milestone: v1.0 MVP — SHIPPED 2026-03-16
Status: All 4 phases complete, 13/13 plans executed, 89 tests passing
Next: `/gsd:new-milestone` for v1.1
Progress: [##########] 100%
## Performance Metrics
**Velocity:**
- Total plans completed: 13
- Total execution time: ~1.3 hours
- Average duration: ~6 min/plan
**By Phase:**
| Phase | Plans | Total | Avg/Plan |
|-------|-------|-------|----------|
| 1 - Foundation | 2 | 15 min | 7.5 min |
| 2 - Rooms and Tasks | 5 | 35 min | 7.0 min |
| 3 - Daily Plan and Cleanliness | 3 | 11 min | 3.7 min |
| 4 - Notifications | 3 | 16 min | 5.3 min |
Phase: Not started (defining requirements)
Plan: —
Status: Defining requirements
Last activity: 2026-03-16 — Milestone v1.1 started
## Accumulated Context
@@ -59,10 +42,10 @@ None.
### Blockers/Concerns
None — all v1.0 blockers resolved.
None.
## Session Continuity
Last session: 2026-03-16
Stopped at: v1.0 milestone complete
Stopped at: Milestone v1.1 started
Resume file: None

View File

@@ -1,4 +1,4 @@
package com.jlmak.household_keeper
package de.jeanlucmakiola.household_keeper
import io.flutter.embedding.android.FlutterActivity