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 11 – May 17Week 16 of 27
Sun, May 17

No commits.

Sat, May 16

No commits.

Fri, May 15
  • refactor(icons): streamline icon_key handling on dashboard and weekly overviewlifelong-habit-app08:26
  • refactor(TimeOfDayScreen): update description for custom schedule templatelifelong-habit-app08:22
  • fix(config): add specified runtimeVersionlifelong-habit-app01:10
  • chore: remove android directory from gitlifelong-habit-app01:10
  • chore: update .gitignorelifelong-habit-app01:06
  • chore(gitignore): update .gitignore to include ios and android directorieslifelong-habit-app00:58
  • fix(icon): solve icon loading error and add a backup icon in HabitSheetHeaderlifelong-habit-app00:54
  • refactor(icons): update icon inventory and categories for house and naturelifelong-habit-app00:44
  • refactor(config): remove navigation config from app config to solve eas build errorlifelong-habit-app00:31
  • chore(package): change script name to fix dependency conflictlifelong-habit-app00:27
  • chore(build): fix AndroidManifest gradle flaglifelong-habit-app00:26
  • chore: remove generated native folders (ios and android) from .gitignorelifelong-habit-app00:10
Thu, May 14
  • chore: remove outdated commentslifelong-habit-app16:58
  • refactor(habit): replace icon_name with icon_key and remove coverImageUri fieldlifelong-habit-app16:39
  • refactor(habit): replace icon_name with icon_key, add color_id, and remove unused cover_image_uri fieldlifelong-habit-app16:16
  • fix(stopwatch): update habitIconKey to use icon_key (icon_name is a stale field)lifelong-habit-app15:40
  • refactor(icons): reorganize icon imports for optimal treeshakinglifelong-habit-app15:18
  • refactor(icons): replace direct icon imports with UI_ICONSlifelong-habit-app14:42
  • fix(usePullSync): update useAuth import pathlifelong-habit-app14:18
  • feat(sync): implement pull sync functionality to transfer data from Supabase to local SQLitelifelong-habit-app12:57
  • chore: update dependencies in package.jsonlifelong-habit-app12:51
  • refactor(icons): integrate PlanetBold icon into UI_ICONS and remove direct PlanetBold icon imports for optimal treeshakinglifelong-habit-app12:11
  • refactor(progress): add PROGRESS_LOGS_QUERY_KEY for consistent cache invalidation across habit mutationslifelong-habit-app09:46
  • feat(dashboard): add isInProgress prop to habit card components and useSelectedDateLoglifelong-habit-app09:09
  • fix(useDashboard): update completion_status logiclifelong-habit-app08:36
  • chore(dashboard): remove unused component (already replaced with AllDayIconStrip)lifelong-habit-app01:15
  • fix(dashboard): remount AllDay expanded card on habit switch and remove paddingToplifelong-habit-app01:13
Wed, May 13
  • fix(useWeeklyOverview): update icon resolution to use icon_key with fallback to Planetlifelong-habit-app16:14
  • refactor(useProgressMetrics): sort habits based on preferred_time on progress tablifelong-habit-app16:13
  • refactor(HabitCardGallery): improve banner text color handling (it returned false) and clean up dead codelifelong-habit-app15:39
  • refactor(AllDayIconStrip): adjust padding, icon dimensions and colorlifelong-habit-app15:35
  • refactor(habitCardBanner): update banner text color contrast from white to light beigelifelong-habit-app15:34
  • feat(dashboard): add All-DayIconStrip component, remove InProgress section, and update useDashboard hooklifelong-habit-app14:24
  • refactor(dashboard): update buildSectionOrder to prioritize rendering 'anytime' (which will be all-day) habitslifelong-habit-app14:17
  • refactor(progress): update weekly overview styling, each habit has its own cardlifelong-habit-app05:33
  • refactor(progress): implement weekly overview with view mode switcher and default habit color fallbacklifelong-habit-app03:52
  • feat(progress): weekly overview with view switcherlifelong-habit-app03:52
  • feat(dashboard): extract HabitSectionList into HabitSectionStates, InProgressIconStrip, and TimeSectionHeader componentslifelong-habit-app02:51
  • refactor(icons): update icon references in PickerSearchBar, StartOfWeekScreen, and TimeOfDayScreenlifelong-habit-app01:39
Tue, May 12
  • feat(dashboard): replace In Progress section with icon striplifelong-habit-app15:39
  • refactor(icons): update icon references and stylinglifelong-habit-app15:26
  • refactor(icons): update icon references and stylinglifelong-habit-app15:17
  • fix(services): add missing completionStatus to recomputeSessionLoglifelong-habit-app12:34
  • fix(mutations): add missing completionStatus to useBackdateHabitlifelong-habit-app10:10
  • fix(bento): component deletion not saved, new components appearing on past-date cardslifelong-habit-app05:15
  • fix(HabitDetailSheet): anchor sheet with position absolute to remove slide gaplifelong-habit-app01:29
  • fix(color-icon-picker): anchor sheet with position absolute to remove slide gaplifelong-habit-app00:54
Mon, May 11
  • refactor(ui): update IconPanel styles to use flexbox for responsive layoutlifelong-habit-app16:26
  • feat(icon-panel): derive column count automatically from screen widthlifelong-habit-app16:21
  • chore(ui): change icon typolifelong-habit-app16:21
  • refactor(ui): replace Planet3 icon with Planet in HabitCardGallery, RunningStopwatchBar, and HabitIconPreview componentslifelong-habit-app16:02
  • refactor(ui): remove duotone option from iconRegistrylifelong-habit-app16:01
  • fix(android): clear gesture nav bar inset on bottom UI elementslifelong-habit-app15:47
  • refactor(HabitSheetStats): conditionally fetch sessions and display tracked time based on stopwatch_enabledlifelong-habit-app15:28
  • chore(useCurrentUser): add comment to clarify that this isn't a copy of useUser filelifelong-habit-app13:29
  • refactor: update import paths, export paths, and file nameslifelong-habit-app13:16
  • refactor: rename useArchivedHabits to useInactiveHabitslifelong-habit-app13:07
  • fix: update habit color changes instantly on the dashboardlifelong-habit-app11:05
  • refactor(TimeOfDayScreen): add template picker modal for time-of-day schedule selectionlifelong-habit-app10:51
  • refactor(SnowballCard): remove not completed message as HabitCardGallery already has it as defaultlifelong-habit-app10:46
  • refactor(settings): add warning for duplicate time slot labelslifelong-habit-app10:22
  • fix(settings): use counter instead of Date.now() to create custom slot IDslifelong-habit-app10:11
  • fix(settings): fix schedule cache invalidation and reassignment sheetlifelong-habit-app10:00
  • feat(settings): add dynamic time-of-day schedule systemlifelong-habit-app09:08
  • fix(mutations): correct completionStatus in log and unlog habit pathslifelong-habit-app07:02
  • feat(hooks): add IN_PROGRESS completion status for stopwatch sessionslifelong-habit-app06:36
  • chore(migrations): change migration file nameslifelong-habit-app06:26
  • fix(hooks): ensure fresh log data is fetched and used for time elapsed updateslifelong-habit-app06:20
  • fix(dashboard): bucket any habit with time_elapsed_seconds > 1 as In Progresslifelong-habit-app01:29