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

Jun 8 – Jun 14Week 12 of 27
Sun, Jun 14
  • fix(progress): correct HabitStyles and Habit field names in CategoryBreakdown (#44, part of #42)lifelong-habit-app15:34
  • fix(progress): correct HabitStyles and Habit field names in CategoryBreakdown (#44, part of #42)lifelong-habit-app15:34
  • feat(progress): expandable category breakdown sub-list (#44, part of #42)lifelong-habit-app15:33
  • feat(progress): expandable category breakdown sub-list (#44, part of #42)lifelong-habit-app15:33
  • fix(mutations): call backfill_habit_snapshots RPC after habit config edit (#60, part of #35)lifelong-habit-app15:01
  • fix(db): add backfill_habit_snapshots RPC to restore NULL habit_config_snapshot rows (#60, part of #35)lifelong-habit-app14:59
Sat, Jun 13
  • perf(HabitDetailSheet): lazy-mount content and defer stat queries behind InteractionManager (#57, part of #35)lifelong-habit-app13:00
  • perf(HabitDetailSheet): lazy-mount sheet content to prevent query contention during open animation (#57, part of #35)lifelong-habit-app12:54
  • fix(HabitSheetActions): use component_id field on BentoComponent, import type (#57, part of #35)lifelong-habit-app12:32
  • fix(HabitDetailSheet): derive archetype-aware 100% payload in Complete button (#57, part of #35)lifelong-habit-app12:31
  • fix(progress): invalidate logs on tab focus and add manual refresh button (#43, part of #42)lifelong-habit-app10:17
  • refactor(habit-form): seed bento from snowball/ladder on archetype switch (#54, #35)lifelong-habit-app09:48
  • refactor(habit-form): seed bento from snowball/ladder on archetype switch (#54, #35)lifelong-habit-app09:48
  • feat(habit-form): stash and restore archetype configs on switch (#54, #35)lifelong-habit-app09:27
  • feat(habit-form): stash and restore archetype configs on switch (#54, #35)lifelong-habit-app09:27
Fri, Jun 12
  • refactor(habit-time-log): use ScreenHeader rightAction for add session button (#39)lifelong-habit-app15:06
  • refactor(screen-header): add optional rightAction slot for aligned header actionslifelong-habit-app15:06
  • refactor(iconRegistry): replace AddCircle icon with bold variant in UI_ICONSlifelong-habit-app14:44
  • refactor(habit-form): active category chip uses its own accentColor, not habit color (#37)lifelong-habit-app13:28
  • fix(habit-form): use HABIT_CATEGORY_META with isDark-resolved accentColor for category chips (#37)lifelong-habit-app13:27
  • feat(habit-time-log): replace AddSessionSheet modal with dedicated add-session screen (#39)lifelong-habit-app07:46
  • refactor(deep-dive): inherit draft color_hex on Create button instead of static theme accent (#37)lifelong-habit-app05:59
  • refactor(color-icon-picker): use draftColor for confirm button instead of static theme accent (#37)lifelong-habit-app05:56
  • refactor(habit-form): extend color_hex inheritance to ArchetypeSelector chips and info box (#37)lifelong-habit-app05:10
  • refactor(habit-form): inherit habit color_hex across all form accent elements (#37)lifelong-habit-app01:55
Thu, Jun 11
  • refactor(AllDayIconStrip): reduce icon and container sizes so it fits 5 icons in most screenslifelong-habit-app14:02
  • refactor(AllDayIconStrip): increase icon and container sizeslifelong-habit-app13:53
  • fix(AllDayIconStrip): prevent outer ring from compressing icon size on expand (#35)lifelong-habit-app13:46
  • refactor(AllDayIconStrip): adjust margin for the strip and expanded cardlifelong-habit-app13:03
  • fix(HabitSectionList): adjust margin for BackdatingModeBanner componentlifelong-habit-app13:00
  • fix(upsertDailyLog): use maybeSingle to avoid intermittent PGRST116 on upsert (#33)lifelong-habit-app12:25
  • fix(mutations): invalidate all_habit_logs_by_date in useBackdateHabit and useUnlogHabit (#33)lifelong-habit-app12:24
Wed, Jun 10
  • refactor(progress): adjust CHART_SIZE and legend dimensionslifelong-habit-app15:20
  • refactor(progress): increase stroke width and opacity for CategoryRadarChart grid lineslifelong-habit-app14:46
  • fix(progress): recalculate CategoryRadarChart canvas size for ICON_SIZE=25lifelong-habit-app14:23
  • refactor(icons): update category iconslifelong-habit-app14:22
  • fix(progress): weekly category consistency now counts habit-day slots, not per-habit booleanslifelong-habit-app12:52
  • feat(progress): add intensity breakdown section below consistency in category rowslifelong-habit-app10:55
Tue, Jun 9

No commits.

Mon, Jun 8

No commits.