Craft

Main quests and fun experiments. Code, art, and community Happy

My main project now is Lifelong Habit, a habit app for people who want to focus on long-term habit formation and detailed insights. Most of the things I’ve made and played around with circle back to self-development, with some funsies and whimsies here and there. Open to work and collaborations!~ Starfish

May 18 – May 24Week 15 of 27
Sun, May 24
  • fix(dashboard): remove deprecated notes prop and wire isLockIn to HabitDetailSheetlifelong-habit-app23:10
  • feat(progress): category % breakdown in daily and weekly views; remove dashboard filterlifelong-habit-app23:01
  • fix(journal): adjust close button style and icon sizelifelong-habit-app14:33
  • feat(journal): add selection mode with bulk copy and deletelifelong-habit-app14:23
  • chore(dependencies): add expo-clipboard packagelifelong-habit-app14:21
  • fix(journal): adjust paddingBottom for keyboard height and remove long-press hintlifelong-habit-app13:36
  • fix(journal): implement useKeyboardHeight hook for dynamic keyboard handlinglifelong-habit-app13:26
  • fix(journal): fix invisible typed text, keyboard layout, and send button positionlifelong-habit-app13:25
  • fix(journal): replace broken icon import and use TouchableOpacity with AddCircle for submit buttonlifelong-habit-app13:06
  • feat(ui): move habit journal to dedicated full-screen routelifelong-habit-app12:58
  • fix(backdate): remove 90-day window enforcement for non-Lock In modelifelong-habit-app10:44
  • fix(snowball): forward unitLogged through onLogIt prop and HabitCardRendererlifelong-habit-app10:40
  • feat(db): add GROVE archetype variantlifelong-habit-app10:33
  • feat(ui): add HabitSheetJournalThread and HabitSheetJournalInput to HabitDetailSheetlifelong-habit-app10:30
  • feat(ui): add HabitSheetJournalThread and HabitSheetJournalInput to HabitDetailSheetlifelong-habit-app10:29
  • feat(hooks): add useHabitJournalByDate, useAddJournalEntry, useDeleteJournalEntrylifelong-habit-app10:29
  • feat(types): add HabitJournalEntry interface to models.tslifelong-habit-app10:24
  • feat(db): add habit_journal table with RLS and indexeslifelong-habit-app10:24
  • chore(pullSync): remove obsolete pullSync service filelifelong-habit-app03:56
  • fix(SnowballCard): make unit label part of count tap target for inline editlifelong-habit-app02:56
Sat, May 23
  • refactor(progress): include year in date labels for daily and weekly viewslifelong-habit-app12:55
  • perf(dashboard): eliminate per-card Supabase queries on mountlifelong-habit-app12:44
  • fix(progress): guard weekly cells against pre-creation dates and fix summary denominator to elapsed actionable days onlylifelong-habit-app12:39
  • fix(habit-time-log): forward startTime from AddSessionSheet to addManualSession mutationlifelong-habit-app08:27
  • perf(dashboard): defer category filter list restoration via useTransitionlifelong-habit-app06:54
  • fix(seed-db): remove unused icon_name field from template processinglifelong-habit-app05:22
  • refactor(duplicate-habit): seed habit_category from source habit for new duplicateslifelong-habit-app05:22
  • feat(habits): add user-configurable habit_category fieldlifelong-habit-app05:16
  • chore(habits): change migration file namelifelong-habit-app04:55
Fri, May 22
  • feat(progress): add OverviewSummaryBar with completed/in-progress/not-completed counts to daily and weekly overview sectionslifelong-habit-app15:22
  • fix(progress): add missed to DailyHabitStatus and handle in DailyHabitRowlifelong-habit-app14:24
  • feat(progress): add day navigation to DailyOverviewSectionlifelong-habit-app14:24
  • refactor(habit-form): update placeholder text for description inputlifelong-habit-app14:04
  • fix(duplicate-habit): seed stopwatch_enabled from source habitlifelong-habit-app10:55
  • fix(habit-form): reduce bottom padding in ScrollView contentlifelong-habit-app10:40
  • refactor(habit-form): move description field before preferred time pickerlifelong-habit-app10:36
  • Revert "fix(keyboard): add KeyboardAvoidingView to deep-dive and edit-habit screens"lifelong-habit-app10:35
  • Revert "fix(form): increase scroll bottom padding and reduce description minHeight for tall keyboards"lifelong-habit-app10:35
  • Revert "fix(keyboard): revert static padding hack, use automaticallyAdjustKeyboardInsets on ScrollView"lifelong-habit-app10:35
  • fix(keyboard): revert static padding hack, use automaticallyAdjustKeyboardInsets on ScrollViewlifelong-habit-app10:25
  • fix(form): increase scroll bottom padding and reduce description minHeight for tall keyboardslifelong-habit-app10:06
  • fix(android): add softwareKeyboardLayoutMode resize to app.config.jslifelong-habit-app10:05
  • fix(keyboard): add KeyboardAvoidingView to deep-dive and edit-habit screenslifelong-habit-app10:05
  • fix(deep-dive): correct HabitFormCtaButton prop name accentColor → habitColorlifelong-habit-app08:59
  • feat(habit): add user-authored description fieldlifelong-habit-app08:55
Thu, May 21
  • refactor(iconRegistry): add new Washing Machine and Microphone icons to inventorylifelong-habit-app15:47
  • refactor(iconRegistry): add new health and social icons to icon inventorylifelong-habit-app13:19
  • chore(HabitCardGallery): adjust comment formatting for claritylifelong-habit-app13:18
  • fix(BentoForm): emit correct post-move config in handleMovelifelong-habit-app09:16
  • refactor(iconRegistry): update MoonStars icon entry and reorder nature-star entrylifelong-habit-app09:16
Wed, May 20
  • fix(progress): wire DailyOverviewSection into progress screenlifelong-habit-app13:13
  • feat(progress): add daily view with per-habit status and intensity barlifelong-habit-app12:40
  • refactor(progress): use fluid flex layout for weekly grid columnslifelong-habit-app12:03
  • feat(HabitTimePicker): switch minute steps to 5-min intervals with snap-to-nearest indexlifelong-habit-app10:56
Tue, May 19
  • fix(AddSessionSheet): adjust TimeInput layout for better responsiveness on small screenslifelong-habit-app13:39
  • fix(time-log): use typed start time for manual sessions, fix keyboard layoutlifelong-habit-app10:53
  • fix(dashboard): bleed AllDayIconStrip scroll past parent paddinglifelong-habit-app10:31
  • feat(tabs): hoist RunningStopwatchBar to tab layout for global visibilitylifelong-habit-app10:13
  • fix(HabitCardGallery): remove orphaned gallery banner block causing double bannerlifelong-habit-app09:45
  • refactor: update terminology from 'anytime' to 'allDay'lifelong-habit-app09:26
Mon, May 18

No commits.