Go Straightforward Web Application Development.

I'm Ryota Murakami who lives in Tokyo. Currently working as a freelance React/Node/TypeScript developer. Here is my independent OSS organization.

Personal photo showcasing development work
Creative coding project snapshot
Technology workspace environment
Software engineering collaboration
Programming achievement highlight

GitHub Activity

  1. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · February 25, 2026 18:18
    1 commit to main
  2. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 20:16
    2 commits to main
    • @ryota-murakami 1343f9e
      chore: update pnpm-lock.yaml to reflect new dependencies and ensure c…
    • @ryota-murakami d411d7c
      refactor: encapsulate main layout in a reusable Main component for Ho…
  3. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/bulk-issues-20260226 in laststance/gitbox · February 25, 2026 19:16

    Updated Feb 25

  4. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 19:16
    2 commits to main
  5. @ryota-murakami ryota-murakami merged laststance/gitbox#158 · February 25, 2026 11:16
    refactor: decompose NoteModal + extract useEditableUrl hook (#151, #152) #158

    Summary

    • #151: Decompose NoteModal into NoteSection + LinkManager + useNoteModalDraft hook
    • #152: Extract useEditableUrl hook from EditableUrlItem (…
    +998 -659
    16 comments
  6. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 18:50
    1 commit to feat/bulk-issues-20260226
    • @ryota-murakami d89a328
      fix: resolve CodeRabbit review findings
  7. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 18:59
    1 commit to feat/bulk-issues-20260226
    • @ryota-murakami be834fd
      fix: resolve CodeRabbit review round 2
  8. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 18:53
    1 commit to main
    • @ryota-murakami afeec83
      chore: update pnpm-lock.yaml with new dependencies and remove outdate…
  9. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · February 25, 2026 18:47
    1 commit to main
    • @ryota-murakami 4e86a11
      fix(ci): inline setup steps in lint workflow
  10. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 18:28
    2 commits to main
    • @ryota-murakami bddef72
      chore(deps): add better-sqlite3 to onlyBuiltDependencies in package.json
    • @ryota-murakami 229e00f
      chore: add Vitest for testing and update package.json with new test s…
    • 2 more commits »
  11. @ryota-murakami ryota-murakami opened laststance/gitbox#158 · February 25, 2026 10:18
    refactor: decompose NoteModal + extract useEditableUrl hook (#151, #152) #158

    Summary

    • #151: Decompose NoteModal into NoteSection + LinkManager + useNoteModalDraft hook
    • #152: Extract useEditableUrl hook from EditableUrlItem (…
    +998 -659
    16 comments
  12. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · February 25, 2026 18:18
    1 commit to main
    • @ryota-murakami d47b643
      feat(ci): migrate to OIDC Trusted Publishing
  13. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 25, 2026 18:17
  14. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 10:13
    Refactor editable-url-item: reduce 32 hooks to manageable count #152
    ## Summary The `editable-url-item` component uses 26 hooks (down from reported 32), still exceeding the <15 target. ## Source Semantic Review SR-01…
    1 comment
  15. @ryota-murakami ryota-murakami commented on laststance/gitbox#152 · February 25, 2026 10:13
    Resolved in `feat/bulk-issues-20260226` branch. ## Changes - **Extracted `useEditableUrl` hook** (`src/hooks/ui/useEditableUrl.ts`) — encapsulates …
  16. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 10:13
    Extract NoteModal into NoteSection + LinkManager components #151
    ## Summary `NoteModal` violates Single Responsibility Principle by handling notes, links, and persistence logic in a single component, making it di…
  17. @ryota-murakami ryota-murakami pushed to laststance/npm-publish-tool · February 25, 2026 18:03
    1 commit to main
    • @ryota-murakami 70627ec
      fix: update dependencies to enhance stability and performance
  18. @ryota-murakami ryota-murakami pushed to laststance/utils · February 25, 2026 17:12
    2 commits to main
    • @ryota-murakami 7259fbe
      fix(ci): resolve build and lint failures in CI pipeline
    • @ryota-murakami d42e471
      fix(ci): resolve prisma generate and eslint failures in CI
  19. @ryota-murakami ryota-murakami deleted branch refs/heads/refactor/auth-guard-unification-150 in laststance/gitbox · February 25, 2026 14:27

    Updated Feb 25

  20. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 06:34
    Apply rate limiting to all mutation server actions #156
    ## Summary Rate limiting is applied inconsistently across mutation server actions. ## Source Semantic Review SR-012 (2026-02-18), verified 2026-02-…
    1 comment
  21. @ryota-murakami ryota-murakami commented on laststance/gitbox#156 · February 25, 2026 06:34
    Resolved by #150 (Auth Guard Unification, merged as PR #157). **All mutation server actions now use rate-limited wrappers:** - `board.ts`: 7× `with…
  22. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 06:27
    Standardize all Server Actions to return ActionResult<T> #149
    ## Summary Some server actions return raw data or throw errors instead of using the `ActionResult` discriminated union pattern. ## Source Semantic …
  23. @ryota-murakami ryota-murakami merged laststance/gitbox#157 · February 25, 2026 06:27
    refactor: unify auth guard wrappers — eliminate withAuth and inline auth #157

    Summary

    Closes #150. Partially resolves #149 and #156.

    • Consolidate 4 auth patterns → 3 clean wrappers in auth-guard.ts:
      • withAuthResult<T> — read-…
    +273 -422
    5 comments
  24. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 14:27
    2 commits to main
    • @ryota-murakami 7df7fa8
      refactor: unify auth guard wrappers — eliminate withAuth and inline a…
    • @ryota-murakami 3d93840
      fix: add row-count postcondition to renameBoardAction/deleteBoardAction
    • 1 more commit »
  25. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 06:27
    Unify auth guards to withAuthResult / withAuthResultRateLimit wrappers #150
    ## Summary Auth guards are applied inconsistently across server actions — three different patterns coexist. ## Source Semantic Review SR-007 (2026-…
  26. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 14:10
    1 commit to refactor/auth-guard-unification-150
    • @ryota-murakami 3d93840
      fix: add row-count postcondition to renameBoardAction/deleteBoardAction
  27. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · February 25, 2026 13:54
    1 commit to main
    • @ryota-murakami 1113c9b
      feat: add website as monorepo workspace
  28. @ryota-murakami ryota-murakami opened laststance/gitbox#157 · February 25, 2026 05:53
    refactor: unify auth guard wrappers — eliminate withAuth and inline auth #157

    Summary

    Closes #150. Partially resolves #149 and #156.

    • Consolidate 4 auth patterns → 3 clean wrappers in auth-guard.ts:
      • withAuthResult<T> — read-…
    +273 -422
    5 comments
  29. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 25, 2026 13:53
  30. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · February 25, 2026 12:47
    1 commit to main
    • @ryota-murakami e4fec7a
      refactor: migrate from eslint-plugin-import to eslint-plugin-import-x
  31. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 13:10
    1 commit to main
    • @ryota-murakami f96c5ae
      docs(css): document dual-source CSS variable architecture
  32. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 05:14
    Add toast feedback for Undo success operations #155
    ## Summary Undo operations show error toasts on failure but provide no success feedback, leaving users uncertain whether the undo actually worked. …
    1 comment
  33. @ryota-murakami ryota-murakami commented on laststance/gitbox#155 · February 25, 2026 05:14
    ## Already Resolved ✅ Investigation of `src/hooks/board/useKanbanUndo.ts` confirmed both card and column undo operations have success toasts: ```ts…
  34. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 05:14
    Improve Loading/Error UX with Skeletons and Error Boundaries #154
    ## Summary UX gap analysis scored Loading &amp; Error UX at **9/25** (lowest category). Pages lack skeleton loading states and graceful error recovery.…
    1 comment
  35. @ryota-murakami ryota-murakami commented on laststance/gitbox#154 · February 25, 2026 05:14
    ## Already Resolved ✅ Investigation confirmed all acceptance criteria are met: ### Skeleton loading states ✅ 5 content-matching `loading.tsx` files…
  36. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · February 25, 2026 12:50
    1 commit to main
  37. @ryota-murakami ryota-murakami pushed to laststance/corelive · February 25, 2026 12:36
    1 commit to main
    • @ryota-murakami 15c5c8e
      refactor(electron): remove showMainWindow global shortcut
  38. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 04:35
    Resolve --destructive CSS variable duplication between globals.css and themes.css #153
    ## Summary The `--destructive` CSS variable is defined in both `globals.css` and `themes.css`, creating potential value conflicts and maintenance c…
    1 comment
  39. @ryota-murakami ryota-murakami commented on laststance/gitbox#153 · February 25, 2026 04:35
    ## Resolved via documentation ✅ ### Investigation findings The `--destructive` duplication between `globals.css` and `themes.css` is **intentional …
  40. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 25, 2026 04:34
    Convert 14 theme --theme-accent from Hex to OKLCH #148
    ## Summary All CSS custom properties in `themes.css` use OKLCH color space **except** `--theme-accent` which remains as hex values across all 14 th…
    1 comment
  41. @ryota-murakami ryota-murakami commented on laststance/gitbox#148 · February 25, 2026 04:34
    ## Already Resolved ✅ Investigation confirmed all 14 `--theme-accent` values in `src/styles/themes.css` are already in OKLCH format. Zero hex value…
  42. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:30
    Apply rate limiting to all mutation server actions #156
    ## Summary Rate limiting is applied inconsistently across mutation server actions. ## Source Semantic Review SR-012 (2026-02-18), verified 2026-02-…
    1 comment
  43. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:30
    Add toast feedback for Undo success operations #155
    ## Summary Undo operations show error toasts on failure but provide no success feedback, leaving users uncertain whether the undo actually worked. …
    1 comment
  44. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:30
    Improve Loading/Error UX with Skeletons and Error Boundaries #154
    ## Summary UX gap analysis scored Loading &amp; Error UX at **9/25** (lowest category). Pages lack skeleton loading states and graceful error recovery.…
    1 comment
  45. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:29
    Resolve --destructive CSS variable duplication between globals.css and themes.css #153
    ## Summary The `--destructive` CSS variable is defined in both `globals.css` and `themes.css`, creating potential value conflicts and maintenance c…
    1 comment
  46. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:29
    Refactor editable-url-item: reduce 32 hooks to manageable count #152
    ## Summary The `editable-url-item` component uses 26 hooks (down from reported 32), still exceeding the &lt;15 target. ## Source Semantic Review SR-01…
    1 comment
  47. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:29
    Extract NoteModal into NoteSection + LinkManager components #151
    ## Summary `NoteModal` violates Single Responsibility Principle by handling notes, links, and persistence logic in a single component, making it di…
  48. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:29
    Unify auth guards to withAuthResult / withAuthResultRateLimit wrappers #150
    ## Summary Auth guards are applied inconsistently across server actions — three different patterns coexist. ## Source Semantic Review SR-007 (2026-…
  49. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:29
    Standardize all Server Actions to return ActionResult<T> #149
    ## Summary Some server actions return raw data or throw errors instead of using the `ActionResult` discriminated union pattern. ## Source Semantic …
  50. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · February 25, 2026 04:29
    Convert 14 theme --theme-accent from Hex to OKLCH #148
    ## Summary All CSS custom properties in `themes.css` use OKLCH color space **except** `--theme-accent` which remains as hex values across all 14 th…
    1 comment
  51. @ryota-murakami ryota-murakami pushed to laststance/laststance.io · February 25, 2026 12:24
    1 commit to main
    • @ryota-murakami 5767a23
      feat: add Surround With Snippet keybind for improved productivity
  52. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 11:52
    1 commit to main
    • @ryota-murakami 0a9e22a
      feat: add navigation link to home and adjust layout in guestbook page…
  53. @ryota-murakami ryota-murakami pushed to laststance/corelive · February 25, 2026 12:16
    1 commit to main
    • @ryota-murakami 29de393
      fix: update dependencies to enhance stability and security improvements
  54. @ryota-murakami ryota-murakami opened an issue in laststance/utils · February 24, 2026 23:27
    [Draft] Slack Thread Exporter Chrome Extension 設計 #1070
    ## 背景・モチベーション SlackのThread会話をテキストとしてエクスポートしたいケースが頻繁にある。 例えば、QA報告スレッドの内容をClaude Codeに渡して修正タスクを依頼する場合など。 Slack標準機能では個別スレッドのエクスポートは提供されておらず、APIを使う場合もワ…
  55. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 00:14
    1 commit to main
    • @ryota-murakami 131cea7
      fix: raise react-doctor score from 84 to 97/100
  56. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 24, 2026 13:11
    2 commits to main
    • @ryota-murakami 3fca610
      chore(deps): upgrade dependencies and add postinstall prisma generate
    • @ryota-murakami dcb6f8f
      feat: create guestbook page to enhance user interaction and engagement
  57. @ryota-murakami ryota-murakami pushed to laststance/website-eslint-config-ts-prefixer · February 24, 2026 12:46
    1 commit to main
    • @ryota-murakami 89ccbd9
      fix(sidebar): prevent search input focus loss on keystroke
  58. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 24, 2026 02:08
  59. @ryota-murakami ryota-murakami pushed to laststance/laststance.io · February 24, 2026 09:57
    2 commits to main
    • @ryota-murakami 98d7a7d
      feat: add comprehensive guide on Electron app distribution for securi…
    • @ryota-murakami a7c87e3
      Merge branch 'main' of github.com:laststance/laststance.io
  60. @ryota-murakami ryota-murakami pushed to laststance/website-eslint-config-ts-prefixer · February 24, 2026 09:50
    2 commits to main
    • @ryota-murakami 86f770e
      chore(deps): update non-eslint packages to latest versions
    • @ryota-murakami 80218dc
      feat(ui): improve typography, header contrast, search filter, and her…
    • 1 more commit »
  61. @ryota-murakami ryota-murakami opened an issue in laststance/utils · February 23, 2026 16:42
    use-mounted.tsコメント追加 #1069
    調査結果をまとめます。このコードの `useSyncExternalStore` を使ったマウント判定パターンを**直接的に「推奨」している単一の公式ドキュメントページは存在しませんでした**。ただし、以下の複数の公式・準公式ソースが組み合わさって、このパターンの根拠となっています。 --- …
  62. @ryota-murakami ryota-murakami pushed to laststance/utils · February 24, 2026 00:19
    1 commit to main
    • @ryota-murakami 59c660f
      refactor(universal): improve isNullish tests for clarity and coverage
  63. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:52
    【設計②】再利用可能なデザインコンポーネント設計(総合演習) #9
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 これまでのパターンを統合し、**非同期処理の複雑さを完全に隠蔽した再…
  64. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:52
    【設計①】Error Boundary と Action の統合パターンを実装する #8
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 Action 内で throw されたエラーが **自動的に最も近い…
  65. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:51
    【実践②】インライン編集フィールド(Draft State + Optimistic)を実装する #7
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 **インライン編集** パターンを Action Prop で実装す…
  66. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:51
    【実践①】タブ切り替えコンポーネント(Optimistic + Router連携)を実装する #6
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 Action Prop パターンを使い、**タブの切り替え** を楽…
  67. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:51
    【応用②】displayValue フォーマット関数パターンを実装する #5
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 **displayValue** を静的な値または関数として受け取り…
  68. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:51
    【応用①】同期コールバック + 非同期Action の分離パターンを実装する #4
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 **同期的なコールバック(onChange)** と **非同期のA…
  69. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:51
    【基礎③】isPending によるローカライズされたローディング表示を実装する #3
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 `useTransition` の `isPending` を使い、…
  70. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:51
    【基礎②】useOptimistic による楽観的UI更新を実装する #2
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 React 19 の `useOptimistic` フックを使って…
  71. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 23, 2026 14:51
    【基礎①】useTransition + Action Prop パターンを実装する #1
    ## 📖 参考記事 https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ ## 🎯 目的 React 19 の `useTransition` を使った **…
  72. @ryota-murakami ryota-murakami pushed to laststance/utils · February 23, 2026 22:30
    1 commit to main
    • @ryota-murakami 7dc639d
      feat(universal): implement isNullish function with unit tests
  73. @ryota-murakami ryota-murakami starred millionco/react-doctor · February 22, 2026 21:41

    Let coding agents diagnose and fix your React code

    TypeScript 4.8k Updated Feb 21

  74. @ryota-murakami ryota-murakami pushed to laststance/utils · February 23, 2026 05:11
    1 commit to main
    • @ryota-murakami 8e4f21e
      feat(next-react): integrate Prisma with database management commands
  75. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 23, 2026 05:10
    1 commit to main
    • @ryota-murakami 4a5d584
      fix: update dependency array in useEffect for Guestbook component to …
  76. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 23, 2026 05:04
    1 commit to main
    • @ryota-murakami 8d6c9fc
      feat: fetch and display guest notes in Guestbook component, enhancing…
  77. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 23, 2026 04:07
    1 commit to main
    • @ryota-murakami 3c66d5a
      fix: correct class name for alignment in Guestbook component to ensur…
  78. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 23, 2026 04:05
    2 commits to main
    • @ryota-murakami db6b0cb
      chore: add 'sonner' dependency for toast notifications and integrate …
    • @ryota-murakami 46fc114
      refactor: remove commented TODO for error message display in Guestboo…
    • 1 more commit »
  79. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 06:03
    Refactor: Extract useCommentState hook from KanbanBoard #144
    ## Background Code quality analysis (2026-02-20) identified comment CRUD logic (~60 lines) as the third independent concern within `KanbanBoard` th…
  80. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 06:03
    Refactor: Extract useKanbanUndo hook from KanbanBoard #142
    ## Background Code quality analysis (2026-02-20) identified the Undo system (~50 lines) as an independent concern within `KanbanBoard` that should …
  81. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/bulk-issues-20260220 in laststance/gitbox · February 20, 2026 14:03

    Updated Feb 20

  82. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 06:03
    Refactor: Extract useKanbanDnD hook from KanbanBoard (God Component decomposition) #141
    ## Background Code quality analysis (2026-02-20) identified `KanbanBoard` as a **God Component** — 553 lines with 3 distinct concerns mixed togethe…
  83. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 06:03
    Refactor: Split handleDragEnd into column/card sub-handlers #145
    ## Background Code quality analysis (2026-02-20) identified `handleDragEnd` in `KanbanBoard` as an 80+ line function with deeply nested conditional…
  84. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 06:03
    Refactor: Seal useRepositorySearch API — replace raw setters with semantic actions #143
    ## Background Code quality analysis (2026-02-20) identified `useRepositorySearch` as a **leaky abstraction** — it exposes raw state setters that br…
  85. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 20, 2026 14:03
    1 commit to main
    • @ryota-murakami c967c89
      refactor: decompose KanbanBoard God Component into focused hooks (#147)
  86. @ryota-murakami ryota-murakami merged laststance/gitbox#147 · February 20, 2026 06:03
    refactor: decompose KanbanBoard God Component into focused hooks #147

    Summary

    KanbanBoard was 825 lines with 3+ mixed concerns (DnD, undo, comments, search API). This PR decomposes it into focused, testable hooks foll…

    +932 -620
    15 comments
  87. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 20, 2026 13:49
    1 commit to feat/bulk-issues-20260220
    • @ryota-murakami 44f09ac
      refactor: replace dynamic import with static for updateStatusListPosi…
  88. @ryota-murakami ryota-murakami commented on laststance/gitbox#147 · February 20, 2026 13:34
    This is pre-existing behavior that was moved verbatim from KanbanBoard into the hook — not introduced by this refactoring PR. The cross-column orde…
  89. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 20, 2026 13:34
    1 commit to feat/bulk-issues-20260220
    • @ryota-murakami 621e14f
      fix: address CodeRabbit review — error handling + Z-key modifier guard
  90. @ryota-murakami ryota-murakami opened laststance/gitbox#147 · February 20, 2026 05:25
    refactor: decompose KanbanBoard God Component into focused hooks #147

    Summary

    KanbanBoard was 825 lines with 3+ mixed concerns (DnD, undo, comments, search API). This PR decomposes it into focused, testable hooks foll…

    +932 -620
    15 comments
  91. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 20, 2026 13:25
  92. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/bulk-issues-20260220c in laststance/re-render · February 20, 2026 12:46

    Updated Feb 20

  93. @ryota-murakami ryota-murakami closed an issue in laststance/re-render · February 20, 2026 04:46
    refactor: extract toast signaling concerns from renderTrackerSlice #34
    ## Problem `renderTrackerSlice` (`src/store/renderTrackerSlice.ts`) currently holds two distinct responsibilities: | Responsibility | Fields | |---…
  94. @ryota-murakami ryota-murakami closed an issue in laststance/re-render · February 20, 2026 04:46
    refactor: replace triple-setTimeout in useSuppressToasts with RTK listener middleware #33
    ## Problem `useSuppressToasts` (`src/hooks/useSuppressToasts.ts`) uses triple-nested `setTimeout(0)` to "outrun" `useRenderTracker`'s double-`setTi…
  95. @ryota-murakami ryota-murakami closed an issue in laststance/re-render · February 20, 2026 04:46
    refactor: replace lastRender single-slot with event queue or middleware #36
    ## Problem `lastRender` in `renderTrackerSlice` is a single `RenderInfo | null` slot. When two `recordRender` actions dispatch in the same frame, t…
  96. @ryota-murakami ryota-murakami closed an issue in laststance/re-render · February 20, 2026 04:46
    fix: clearComponentHistory missing renderCountsByReason cleanup #35
    ## Bug In `renderTrackerSlice.ts`, the `clearComponentHistory` reducer clears `renderHistory` and `renderCounts` for a component but does **not** c…
  97. @ryota-murakami ryota-murakami merged laststance/re-render#37 · February 20, 2026 04:45
    refactor: replace toast bridge with RTK listener middleware #37

    Summary

    Architecture refactor of the Redux render-tracker/toaster pipeline, replacing the
    timing-based hook bridge with RTK listener middleware for…

    +109 -110
    6 comments
  98. @ryota-murakami ryota-murakami pushed to laststance/re-render · February 20, 2026 12:45
    2 commits to main
    • @ryota-murakami 47eb224
      fix: add missing renderCountsByReason cleanup in clearComponentHistory
    • @ryota-murakami 14ae1b0
      refactor: replace useReRenderToasts hook with RTK listener middleware
    • 4 more commits »
  99. @ryota-murakami ryota-murakami commented on laststance/re-render#37 · February 20, 2026 12:45
    Fixed in ca4f2d0 — added `getState().toast.suppressToasts` re-check at flush time.
  100. @ryota-murakami ryota-murakami pushed to laststance/re-render · February 20, 2026 12:45
    1 commit to feat/bulk-issues-20260220c
    • @ryota-murakami ca4f2d0
      fix: re-check suppressToasts at flush time in listener middleware
  101. @ryota-murakami ryota-murakami opened laststance/re-render#37 · February 20, 2026 04:35
    refactor: replace toast bridge with RTK listener middleware #37

    Summary

    Architecture refactor of the Redux render-tracker/toaster pipeline, replacing the
    timing-based hook bridge with RTK listener middleware for…

    +109 -110
    6 comments
  102. @ryota-murakami ryota-murakami created a branch in laststance/re-render · February 20, 2026 12:35
  103. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/bulk-issues-20260220 in laststance/gitbox · February 20, 2026 12:23

    Updated Feb 20

  104. @ryota-murakami ryota-murakami merged laststance/gitbox#146 · February 20, 2026 04:23
    feat: UX gap fixes — 404 page, empty state, hover states #146

    Summary

    Resolves 3 UX gap issues identified by the UX Gap Detector audit (score: 61/100).
    Issue #138 (loading states) was already implemented — clo…

    +69 -5
    8 comments
  105. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 04:23
    UX Gap: Empty board states lack onboarding guidance #139
    ## Gap Detection **Dimension**: Loading &amp; Error UX **Score**: 2/4 **Detected**: 2026-02-20 **Reference**: Supabase (illustrations + actionable guid…
  106. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 04:23
    UX Gap: Landing page feature cards lack hover states #140
    ## Gap Detection **Dimension**: Interactive States **Score**: 13/25 **Detected**: 2026-02-20 **Reference**: Raycast (transform + shadow), Supabase …
  107. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 20, 2026 04:23
    UX Gap: No custom 404 page #137
    ## Gap Detection **Dimension**: Loading &amp; Error UX **Score**: 0/4 **Detected**: 2026-02-20 **Reference**: Supabase, Raycast ## Description Unknown …
  108. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 20, 2026 12:23
    1 commit to main
    • @ryota-murakami 4e3451a
      feat: UX gap fixes — 404 page, empty state, hover states (#146)
  109. @ryota-murakami ryota-murakami opened an issue in laststance/re-render · February 20, 2026 04:19
    refactor: replace lastRender single-slot with event queue or middleware #36
    ## Problem `lastRender` in `renderTrackerSlice` is a single `RenderInfo | null` slot. When two `recordRender` actions dispatch in the same frame, t…
  110. @ryota-murakami ryota-murakami opened an issue in laststance/re-render · February 20, 2026 04:19
    fix: clearComponentHistory missing renderCountsByReason cleanup #35
    ## Bug In `renderTrackerSlice.ts`, the `clearComponentHistory` reducer clears `renderHistory` and `renderCounts` for a component but does **not** c…