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 starred marcus/sidecar · February 13, 2026 12:45

    Use sidecar next to CLI agents for diffs, file trees, conversation history, and task management with td

    Go 604 Updated Feb 13

  2. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 20:24
    1 commit to main
    • @ryota-murakami 697a206
      fix: restore /boards page by fixing CI migration paths and adding Sen…
  3. @ryota-murakami ryota-murakami deleted branch refs/heads/fix/storybook-full-workflow-focus in laststance/gitbox · February 13, 2026 15:55

    Updated Feb 13

  4. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 15:55
    1 commit to main
    • @ryota-murakami 38ba505
      fix: add explicit focus before clear in TestFullWorkflow storybook te…
  5. @ryota-murakami ryota-murakami merged laststance/gitbox#118 · February 13, 2026 07:55
    fix: storybook TestFullWorkflow focus issue in CI #118

    Summary

    • Fix flaky TestFullWorkflow storybook interaction test that fails in CI with "The element to be cleared could not be focused"
    • Root cause: <…
    +3 -0
    5 comments
  6. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 13, 2026 15:32
  7. @ryota-murakami ryota-murakami pushed to laststance/skills · February 13, 2026 15:43
    1 commit to main
    • @ryota-murakami f510d42
      docs: add individual skill install commands to README
  8. @ryota-murakami ryota-murakami pushed to laststance/skills · February 13, 2026 15:41
    1 commit to main
    • @ryota-murakami 09d4f78
      feat: add 5 skills (code-trace, electron-release, gif-analyzer, mento…
  9. @ryota-murakami ryota-murakami opened laststance/gitbox#118 · February 13, 2026 07:32
    fix: storybook TestFullWorkflow focus issue in CI #118

    Summary

    • Fix flaky TestFullWorkflow storybook interaction test that fails in CI with "The element to be cleared could not be focused"
    • Root cause: <…
    +3 -0
    5 comments
  10. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 15:00
    1 commit to main
    • @ryota-murakami f1e2fc0
      feat: add rate limiting on auth and API endpoints (#117)
  11. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/issue-77-rate-limiting in laststance/gitbox · February 13, 2026 15:00

    Updated Feb 13

  12. @ryota-murakami ryota-murakami merged laststance/gitbox#117 · February 13, 2026 07:00
    feat: add rate limiting on auth and API endpoints #117

    Summary

    Closes #77

    Add in-memory sliding-window rate limiting to protect against brute-force enumeration of board IDs, excessive GitHub API consump…

    +622 -13
    15 comments
  13. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 13, 2026 07:00
    Add rate limiting on auth and API endpoints #77
    ## Summary No rate limiting exists on: - OAuth login attempts - Server Action invocations - GitHub API proxy calls While Supabase and GitHub have t…
  14. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 14:47
    1 commit to feat/issue-77-rate-limiting
    • @ryota-murakami 30f6c0f
      fix: add empty identifier guard in checkRateLimit
  15. @ryota-murakami ryota-murakami pushed to laststance/skills · February 13, 2026 14:41
    1 commit to main
    • @ryota-murakami 3624b8c
      feat: add coderabbit-resolver skill
  16. @ryota-murakami ryota-murakami created a branch in laststance/skills · February 13, 2026 14:41
  17. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 14:27
    1 commit to feat/issue-77-rate-limiting
    • @ryota-murakami 04b601d
      fix: address CodeRabbit review findings in rate limiting
  18. @ryota-murakami ryota-murakami opened laststance/gitbox#117 · February 13, 2026 06:00
    feat: add rate limiting on auth and API endpoints #117

    Summary

    Closes #77

    Add in-memory sliding-window rate limiting to protect against brute-force enumeration of board IDs, excessive GitHub API consump…

    +622 -13
    15 comments
  19. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 13, 2026 13:59
  20. @ryota-murakami ryota-murakami deleted branch refs/heads/fix/issue-69-reduce-e2e-wait-for-timeout in laststance/gitbox · February 13, 2026 13:22

    Updated Feb 13

  21. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 13:22
    1 commit to main
    • @ryota-murakami a9d0653
      fix(e2e): eliminate waitForTimeout across all E2E tests (#116)
  22. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 13, 2026 05:22
    Reduce waitForTimeout usage in E2E tests (254 occurrences) #69
    ## Summary `waitForTimeout` is the #1 cause of flaky E2E tests. There are **254 occurrences across 23 files**. These hard-coded delays may be too s…
    1 comment
  23. @ryota-murakami ryota-murakami merged laststance/gitbox#116 · February 13, 2026 05:22
    fix(e2e): eliminate waitForTimeout across all E2E tests #116

    Summary

    Closes #69

    • Eliminates ~246 waitForTimeout calls across 22 E2E spec files
    • Replaces with proper Playwright assertion patterns:
      • Hydration waits
    +684 -470
    22 comments
  24. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 13:09
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami 0e62095
      fix(e2e): use consistent selector for remove favorite button
  25. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 12:53
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami 2c3f76b
      fix(e2e): restore waitForTimeout in CDP drag tests
  26. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 12:51
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami 6eb0ca8
      fix(e2e): replace waitForTimeout with polling in note-modal slash com…
  27. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 12:14
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami 9be18db
      fix(e2e): address CodeRabbit review findings in favorites tests
  28. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 12:11
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami 5fb50c3
      fix(e2e): fix search filter assertion in add-repository-pagination
  29. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 11:53
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami f79f760
      fix(e2e): fix add-repository-combobox and sidebar-theme-toggle tests
  30. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/issue-78-security-event-logging in laststance/gitbox · February 13, 2026 11:19

    Updated Feb 13

  31. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 13, 2026 03:19
    Add security event logging (audit log) #78
    ## Summary No specific security event logging exists for: - Failed authentication attempts - Account deletion events - Unusual access patterns (e.g…
  32. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 11:19
    1 commit to main
    • @ryota-murakami 39ab8aa
      feat: add security event logging via Sentry custom events (#78) (#115)
  33. @ryota-murakami ryota-murakami merged laststance/gitbox#115 · February 13, 2026 03:19
    feat: add security event logging via Sentry custom events #115

    Summary

    Closes #78

    Add centralized security event logging using Sentry custom events (no new DB table).

    New module: src/lib/security-events.ts

    • log…
    +92 -0
    5 comments
  34. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 11:18
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami f00642e
      fix(e2e): fix flaky tests in favorites, theme-persistence, and pagina…
  35. @ryota-murakami ryota-murakami pushed to laststance/skills-desktop · February 13, 2026 10:42
    2 commits to main
    • @ryota-murakami abdce23
      test: add broken symlink coverage for symlinkChecker and agentScanner
    • @ryota-murakami e0cb06e
      feat: add typed IPC contract for compile-time channel safety
    • 2 more commits »
  36. @ryota-murakami ryota-murakami deleted branch refs/heads/test/broken-symlink-coverage in laststance/skills-desktop · February 13, 2026 10:40

    Updated Feb 13

  37. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 10:38
    2 commits to main
    • @ryota-murakami 673eeb1
      refactor: migrate server actions to ActionResult<T> discriminated uni…
    • @ryota-murakami c96a727
      fix: remove duplicate Sentry reporting from core functions
    • 2 more commits »
  38. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/typed-ipc-contract in laststance/skills-desktop · February 13, 2026 10:42

    Updated Feb 13

  39. @ryota-murakami ryota-murakami merged laststance/skills-desktop#5 · February 13, 2026 02:42
    feat: typed IPC contract for compile-time channel safety #5

    Summary

    • Add IpcInvokeContract and IpcEventContract types mapping channel -> args -> result
    • Add typedHandle() and typedInvoke() wrappers enforcing …
    +409 -263
    2 comments
  40. @ryota-murakami ryota-murakami closed an issue in laststance/skills-desktop · February 13, 2026 02:42
    Typed IPC contract for ipcMain/ipcRenderer (channel/args/result) #2
    ## Background Currently, IPC channels are used as raw string literals (e.g. `ipcRenderer.invoke('skills:getAll')`). This makes it easy to introduce…
  41. @ryota-murakami ryota-murakami created a branch in laststance/skills-desktop · February 13, 2026 10:32
  42. @ryota-murakami ryota-murakami pushed to laststance/skills-desktop · February 13, 2026 10:40
    2 commits to feat/typed-ipc-contract
    • @ryota-murakami c4020d7
      test: add broken symlink coverage for symlinkChecker and agentScanner
    • @ryota-murakami 8b3280f
      Merge pull request #4 from laststance/test/broken-symlink-coverage
    • 1 more commit »
  43. @ryota-murakami ryota-murakami merged laststance/skills-desktop#4 · February 13, 2026 02:40
    test: add broken symlink test coverage #4

    Summary

    • Add unit tests for symlinkChecker.ts covering valid, broken, and missing symlink states
    • Add unit tests for agentScanner.ts covering skill …
    +571 -0
    2 comments
  44. @ryota-murakami ryota-murakami pushed to laststance/skills-desktop · February 13, 2026 10:40
    2 commits to main
    • @ryota-murakami c4020d7
      test: add broken symlink coverage for symlinkChecker and agentScanner
    • @ryota-murakami 8b3280f
      Merge pull request #4 from laststance/test/broken-symlink-coverage
  45. @ryota-murakami ryota-murakami closed an issue in laststance/skills-desktop · February 13, 2026 02:40
    test: Add E2E test cases for broken symlinks #1
    ## Background During debugging of skill count mismatch bug (left pane showed 23, center panel showed 1), we discovered a testing gap. ### Root Caus…
  46. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 13, 2026 02:38
    Migrate remaining Server Actions to ActionResult<T> pattern #102
    ## Summary PR #100 introduced `ActionResult` discriminated union type and converted `github.ts` and `user-presets.ts`. The remaining Server Action …
  47. @ryota-murakami ryota-murakami merged laststance/gitbox#112 · February 13, 2026 02:38
    refactor: migrate server actions to ActionResult<T> (#102) #112

    Summary

    • Migrate client-consumed server actions from throw-based error handling to ActionResult<T> discriminated union pattern
    • board.ts: Convert cr…
    +394 -224
    10 comments
  48. @ryota-murakami ryota-murakami opened laststance/skills-desktop#5 · February 13, 2026 02:36
    feat: typed IPC contract for compile-time channel safety #5

    Summary

    • Add IpcInvokeContract and IpcEventContract types mapping channel -> args -> result
    • Add typedHandle() and typedInvoke() wrappers enforcing …
    +409 -263
    2 comments
  49. @ryota-murakami ryota-murakami created a branch in laststance/skills-desktop · February 13, 2026 10:36
  50. @ryota-murakami ryota-murakami opened laststance/skills-desktop#4 · February 13, 2026 02:33
    test: add broken symlink test coverage #4

    Summary

    • Add unit tests for symlinkChecker.ts covering valid, broken, and missing symlink states
    • Add unit tests for agentScanner.ts covering skill …
    +571 -0
    2 comments
  51. @ryota-murakami ryota-murakami pushed to laststance/skills-desktop · February 13, 2026 10:33
    1 commit to test/broken-symlink-coverage
    • @ryota-murakami c4020d7
      test: add broken symlink coverage for symlinkChecker and agentScanner
  52. @ryota-murakami ryota-murakami deleted branch refs/heads/test/issue-86-dialog-unit-tests in laststance/gitbox · February 13, 2026 10:28

    Updated Feb 13

  53. @ryota-murakami ryota-murakami merged laststance/gitbox#113 · February 13, 2026 02:28
    test: add unit tests for CommandPalette, DeleteBoardDialog, RenameBoardDialog #113

    Summary

    Closes #86

    • Add 29 unit tests for CommandPalette covering keyboard shortcuts (⌘K open/close, Escape), search filtering, keyboard navigation…
    +1,012 -0
    8 comments
  54. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 13, 2026 02:28
    Add E2E test for CommandPalette and unit tests for missing dialog components #86
    ## Summary Several components have Storybook coverage but lack behavioral tests: ### Missing E2E Tests - **CommandPalette** (Ctrl+K) — Storybook st…
  55. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 10:28
    2 commits to main
    • @ryota-murakami 89e83fa
      test: add unit tests for CommandPalette, DeleteBoardDialog, RenameBoa…
    • @ryota-murakami 6e988f4
      fix: use data-testid for backdrop click test
    • 1 more commit »
  56. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 10:24
    2 commits to refactor/issue-102-action-result-migration
  57. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 10:09
    1 commit to fix/issue-69-reduce-e2e-wait-for-timeout
    • @ryota-murakami 10b4841
      fix: resolve CodeRabbit review findings
  58. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 10:07
    1 commit to test/issue-86-dialog-unit-tests
    • @ryota-murakami 6e988f4
      fix: use data-testid for backdrop click test
  59. @ryota-murakami ryota-murakami deleted branch refs/heads/refactor/issue-74-decompose-maintenance-client in laststance/gitbox · February 13, 2026 10:05

    Updated Feb 13

  60. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 10:05
    2 commits to main
    • @ryota-murakami dc21f75
      refactor: decompose MaintenanceClient into custom hooks (#74)
    • @ryota-murakami 2740b01
      Merge pull request #114 from laststance/refactor/issue-74-decompose-m…
  61. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 13, 2026 02:05
    Decompose MaintenanceClient god component (800 lines, 15+ useState) #74
    ## Summary \`src/app/maintenance/MaintenanceClient.tsx\` is 800 lines with 15+ \`useState\` hooks managing multiple concerns: search, sort, view mo…
  62. @ryota-murakami ryota-murakami merged laststance/gitbox#114 · February 13, 2026 02:05
    refactor: decompose MaintenanceClient into custom hooks #114

    Summary

    Closes #74

    Extract 4 stateful logic clusters from the 723-line MaintenanceClient god component into focused custom hooks:

    • useMaintenanceVi…
    +482 -272
    4 comments
  63. @ryota-murakami ryota-murakami pushed to ryota-murakami/dotfiles · February 13, 2026 09:56
    1 commit to master
    • @ryota-murakami 48a0bac
      [settings] update VSCode and Windsurf settings for improved functiona…
  64. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 09:49
    1 commit to refactor/issue-102-action-result-migration
    • @ryota-murakami c96a727
      fix: remove duplicate Sentry reporting from core functions
  65. @ryota-murakami ryota-murakami opened laststance/gitbox#116 · February 13, 2026 01:30
    fix(e2e): eliminate waitForTimeout across all E2E tests #116

    Summary

    Closes #69

    • Eliminates ~246 waitForTimeout calls across 22 E2E spec files
    • Replaces with proper Playwright assertion patterns:
      • Hydration waits
    +684 -470
    22 comments
  66. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 13, 2026 09:30
  67. @ryota-murakami ryota-murakami opened laststance/gitbox#115 · February 13, 2026 01:15
    feat: add security event logging via Sentry custom events #115

    Summary

    Closes #78

    Add centralized security event logging using Sentry custom events (no new DB table).

    New module: src/lib/security-events.ts

    • log…
    +92 -0
    5 comments
  68. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 13, 2026 09:15
  69. @ryota-murakami ryota-murakami opened laststance/gitbox#114 · February 13, 2026 01:11
    refactor: decompose MaintenanceClient into custom hooks #114

    Summary

    Closes #74

    Extract 4 stateful logic clusters from the 723-line MaintenanceClient god component into focused custom hooks:

    • useMaintenanceVi…
    +482 -272
    4 comments
  70. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 13, 2026 09:11
  71. @ryota-murakami ryota-murakami opened laststance/gitbox#113 · February 13, 2026 01:02
    test: add unit tests for CommandPalette, DeleteBoardDialog, RenameBoardDialog #113

    Summary

    Closes #86

    • Add 29 unit tests for CommandPalette covering keyboard shortcuts (⌘K open/close, Escape), search filtering, keyboard navigation…
    +1,012 -0
    8 comments
  72. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 13, 2026 09:01
  73. @ryota-murakami ryota-murakami opened laststance/gitbox#112 · February 13, 2026 00:51
    refactor: migrate server actions to ActionResult<T> (#102) #112

    Summary

    • Migrate client-consumed server actions from throw-based error handling to ActionResult<T> discriminated union pattern
    • board.ts: Convert cr…
    +394 -224
    10 comments
  74. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 13, 2026 08:51
  75. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 23:59
    Enable failOnFlakyTests: true in Playwright config #72
    ## Summary `failOnFlakyTests: false` in `playwright.config.ts` means tests that pass on retry are not flagged as failures. Combined with `retries: …
  76. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 07:59
    2 commits to main
    • @ryota-murakami 936401a
      fix: enable failOnFlakyTests to enforce test reliability (#72)
    • @ryota-murakami 6be1f1d
      Merge remote-tracking branch 'origin/main' into fix/issue-72-fail-on-…
    • 1 more commit »
  77. @ryota-murakami ryota-murakami merged laststance/gitbox#103 · February 12, 2026 23:59
    fix: enable failOnFlakyTests to enforce test reliability (#72) #103

    Summary

    • Enable failOnFlakyTests: true in Playwright config to enforce test reliability
    • Flaky tests (pass only after retry) now fail CI instead of …
    +3 -3
    6 comments
  78. @ryota-murakami ryota-murakami released v0.3.1 of laststance/skills-desktop · February 12, 2026 23:53

    Bug Fixes

    • Sync Conflict dialog: Fix buttons staying disabled after selecting conflicts (isSyncing not reset on preview fulfilled)
    • Windsurf directory: Use correct .windsurf path instead of legacy .…
    Read more
  79. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 07:46
    2 commits to fix/issue-72-fail-on-flaky-tests
  80. @ryota-murakami ryota-murakami pushed to laststance/skills-desktop · February 13, 2026 07:44
    2 commits to main
    • @ryota-murakami 878cd6b
      feat: change agent context menu to delete skills folder instead of sy…
    • @ryota-murakami b21c5f5
      fix: always reset isSyncing on sync preview fulfilled
    • 4 more commits »
  81. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 07:27
    1 commit to main
    • @ryota-murakami d2faf30
      fix(e2e): eliminate flaky tests in shard 8 (note-modal, maintenance s…
  82. @ryota-murakami ryota-murakami deleted branch refs/heads/fix/issue-84-reduce-timeout-a11y-error in laststance/gitbox · February 13, 2026 05:24

    Updated Feb 13

  83. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:24
    Reduce E2E networkidle dependency and global timeout #84
    ## Summary Two related E2E reliability improvements: ### 1. networkidle waits (187 occurrences) \`waitForLoadState('networkidle')\` waits 500ms of …
  84. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:24
    2 commits to main
    • @ryota-murakami 28963f8
      fix: reduce E2E timeout to 30s and enable a11y error mode (#84)
    • @ryota-murakami c7f211e
      fix: revert a11y error mode to todo (existing violations need fixing …
    • 1 more commit »
  85. @ryota-murakami ryota-murakami merged laststance/gitbox#105 · February 12, 2026 21:24
    fix: reduce E2E timeout to 30s and enable a11y error mode (#84) #105

    Summary

    • Reduce Playwright global test timeout from 60s to 30s to catch slow/hanging tests earlier
    • Switch Storybook a11y test mode from 'todo' to '…
    +2 -2
    6 comments
  86. @ryota-murakami ryota-murakami deleted branch refs/heads/refactor/issue-65-split-landing-page in laststance/gitbox · February 13, 2026 05:05

    Updated Feb 13

  87. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:05
    Split landing page into component files (1093 lines) #65
    ## Summary `src/app/page.tsx` is 1093 lines with 8 inline components. The entire page is `'use client'` even though static sections (FeaturesSectio…
  88. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:05
    2 commits to main
    • @ryota-murakami 5db4016
      refactor: split landing page into 8 focused components (#65)
    • @ryota-murakami 427c0e7
      Merge pull request #111 from laststance/refactor/issue-65-split-landi…
  89. @ryota-murakami ryota-murakami merged laststance/gitbox#111 · February 12, 2026 21:05
    refactor: split landing page into 8 focused components (#65) #111

    Summary

    • Decompose 1093-line monolithic page.tsx into 8 focused components in src/app/(landing)/ route group
    • page.tsx reduced to ~30 lines of thin …
    +1,113 -1,073
    4 comments
  90. @ryota-murakami ryota-murakami deleted branch refs/heads/refactor/issue-80-extract-add-repo-hooks in laststance/gitbox · February 13, 2026 05:05

    Updated Feb 13

  91. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:05
    2 commits to main
    • @ryota-murakami 715dcea
      refactor: extract AddRepositoryCombobox hooks (#80)
    • @ryota-murakami 4434047
      Merge pull request #110 from laststance/refactor/issue-80-extract-add…
  92. @ryota-murakami ryota-murakami merged laststance/gitbox#110 · February 12, 2026 21:05
    refactor: extract AddRepositoryCombobox hooks (#80) #110

    Summary

    • Extract 3 custom hooks from AddRepositoryCombobox (12 useState → 2 local):
      • useOrganizationData — user profile + GitHub org fetching
      • useRe…
    +291 -172
    5 comments
  93. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:05
    Extract AddRepositoryCombobox hooks (12 useState) #80
    ## Summary \`src/components/Board/AddRepositoryCombobox.tsx\` (791 lines) has 12 \`useState\` hooks and duplicates virtual/non-virtual rendering pa…
  94. @ryota-murakami ryota-murakami deleted branch refs/heads/refactor/issue-66-extract-comment-section in laststance/gitbox · February 13, 2026 05:05

    Updated Feb 13

  95. @ryota-murakami ryota-murakami merged laststance/gitbox#109 · February 12, 2026 21:05
    refactor: extract shared CommentSection component (#66) #109

    Summary

    • Extract duplicated Activity toggle + CommentInlineEdit + CommentDisplay + CommentActionsMenu pattern into CommentSection component
    • Replace…
    +147 -151
    5 comments
  96. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:05
    2 commits to main
    • @ryota-murakami 12de247
      refactor: extract shared CommentSection component (#66)
    • @ryota-murakami 7faa3ec
      Merge pull request #109 from laststance/refactor/issue-66-extract-com…
  97. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:05
    Extract shared CommentSection component (3-way UI duplication) #66
    ## Summary Comment inline editing UI (CommentInlineEdit + CommentDisplay + CommentActionsMenu) is implemented 3 times with nearly identical JSX and…
  98. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:05
    2 commits to main
    • @ryota-murakami 0630d36
      test: add account deletion dialog test coverage (#70)
    • @ryota-murakami 1f2c3ce
      Merge pull request #108 from laststance/test/issue-70-account-deletio…
  99. @ryota-murakami ryota-murakami deleted branch refs/heads/test/issue-70-account-deletion-coverage in laststance/gitbox · February 13, 2026 05:05

    Updated Feb 13

  100. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:05
    Add test coverage for account deletion flow #70
    ## Summary `DeleteAccountDialog.tsx` and `src/app/account/page.tsx` have **zero test coverage** — no unit tests, no Storybook stories, no E2E tests…
  101. @ryota-murakami ryota-murakami merged laststance/gitbox#108 · February 12, 2026 21:05
    test: add account deletion dialog test coverage (#70) #108

    Summary

    • Add Storybook stories for DeleteAccountDialog with 4 stories: Default, WithConfirmationTyped, PartialInput, Closed
    • Add E2E tests for accou…
    +219 -0
    5 comments
  102. @ryota-murakami ryota-murakami merged laststance/gitbox#104 · February 12, 2026 21:05
    fix: remove dead loading/error Redux state from boardSlice (#76) #104

    Summary

    • Remove dead loading and error fields from BoardState interface and initial state
    • Remove setBoardError action, selectBoardLoading and selec…
    +19 -196
    7 comments
  103. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:05
    2 commits to main
    • @ryota-murakami 1160a3c
      fix: remove dead loading/error Redux state from boardSlice (#76)
    • @ryota-murakami d3ac258
      Merge pull request #104 from laststance/fix/issue-76-remove-dead-redu…
  104. @ryota-murakami ryota-murakami deleted branch refs/heads/fix/issue-76-remove-dead-redux-state in laststance/gitbox · February 13, 2026 05:05

    Updated Feb 13

  105. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:05
    Clean up dead Redux state and adopt React 19 APIs #76
    ## Summary Multiple small React modernization items that can be addressed together: ### 1. Dead Redux State \`boardSlice.loading\` and \`boardSlice…
  106. @ryota-murakami ryota-murakami merged laststance/gitbox#107 · February 12, 2026 21:03
    refactor: decompose handleDragEnd into focused sub-handlers (#64) #107

    Summary

    • Extract recordColumnHistory() helper to deduplicate 3 identical undo-history blocks
    • Extract handleNewRowDrop() for column → new row zone d…
    +149 -190
    5 comments
  107. @ryota-murakami ryota-murakami deleted branch refs/heads/refactor/issue-64-decompose-handle-drag-end in laststance/gitbox · February 13, 2026 05:04

    Updated Feb 13

  108. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:04
    Decompose KanbanBoard handleDragEnd (285 lines, complexity 15) #64
    ## Summary `handleDragEnd` in `KanbanBoard.tsx` is ~285 lines handling 3 completely different drag operation types in a single function with cyclom…
  109. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:04
    2 commits to main
    • @ryota-murakami 9b79cde
      refactor: decompose handleDragEnd into focused sub-handlers (#64)
    • @ryota-murakami dec6b9b
      Merge pull request #107 from laststance/refactor/issue-64-decompose-h…
  110. @ryota-murakami ryota-murakami deleted branch refs/heads/refactor/issue-79-extract-statuslist-mapper in laststance/gitbox · February 13, 2026 05:03

    Updated Feb 13

  111. @ryota-murakami ryota-murakami merged laststance/gitbox#106 · February 12, 2026 21:03
    refactor: extract shared StatusList mapper (#79) #106

    Summary

    • Create toStatusListDomain() mapper in src/lib/actions/mappers.ts
    • Replace 3 identical StatusListRow → StatusListDomain mapping blocks in bo…
    +38 -31
    4 comments
  112. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 12, 2026 21:03
    Extract StatusList mapper, batch update utility, and Sidebar rendering unification #79
    ## Summary Three medium-priority refactoring items that reduce duplication: ### 1. StatusListRow → StatusListDomain mapper (3x duplication) \`src/l…
  113. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:03
    2 commits to main
    • @ryota-murakami e222ba5
      refactor: extract shared StatusList mapper to eliminate 3x duplication (
    • @ryota-murakami 211fe15
      Merge pull request #106 from laststance/refactor/issue-79-extract-sta…
  114. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 13, 2026 05:03
    1 commit to fix/issue-84-reduce-timeout-a11y-error
    • @ryota-murakami c7f211e
      fix: revert a11y error mode to todo (existing violations need fixing …
  115. @ryota-murakami ryota-murakami opened laststance/gitbox#111 · February 12, 2026 05:38
    refactor: split landing page into 8 focused components (#65) #111

    Summary

    • Decompose 1093-line monolithic page.tsx into 8 focused components in src/app/(landing)/ route group
    • page.tsx reduced to ~30 lines of thin …
    +1,113 -1,073
    4 comments
  116. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:38
  117. @ryota-murakami ryota-murakami opened laststance/gitbox#110 · February 12, 2026 05:27
    refactor: extract AddRepositoryCombobox hooks (#80) #110

    Summary

    • Extract 3 custom hooks from AddRepositoryCombobox (12 useState → 2 local):
      • useOrganizationData — user profile + GitHub org fetching
      • useRe…
    +291 -172
    5 comments
  118. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:27
  119. @ryota-murakami ryota-murakami opened laststance/gitbox#109 · February 12, 2026 05:16
    refactor: extract shared CommentSection component (#66) #109

    Summary

    • Extract duplicated Activity toggle + CommentInlineEdit + CommentDisplay + CommentActionsMenu pattern into CommentSection component
    • Replace…
    +147 -151
    5 comments
  120. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:16
  121. @ryota-murakami ryota-murakami opened laststance/gitbox#108 · February 12, 2026 05:09
    test: add account deletion dialog test coverage (#70) #108

    Summary

    • Add Storybook stories for DeleteAccountDialog with 4 stories: Default, WithConfirmationTyped, PartialInput, Closed
    • Add E2E tests for accou…
    +219 -0
    5 comments
  122. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:09
  123. @ryota-murakami ryota-murakami opened laststance/gitbox#107 · February 12, 2026 05:05
    refactor: decompose handleDragEnd into focused sub-handlers (#64) #107

    Summary

    • Extract recordColumnHistory() helper to deduplicate 3 identical undo-history blocks
    • Extract handleNewRowDrop() for column → new row zone d…
    +149 -190
    5 comments
  124. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:05
  125. @ryota-murakami ryota-murakami opened laststance/gitbox#106 · February 12, 2026 05:03
    refactor: extract shared StatusList mapper (#79) #106

    Summary

    • Create toStatusListDomain() mapper in src/lib/actions/mappers.ts
    • Replace 3 identical StatusListRow → StatusListDomain mapping blocks in bo…
    +38 -31
    4 comments
  126. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:03
  127. @ryota-murakami ryota-murakami opened laststance/gitbox#105 · February 12, 2026 05:01
    fix: reduce E2E timeout to 30s and enable a11y error mode (#84) #105

    Summary

    • Reduce Playwright global test timeout from 60s to 30s to catch slow/hanging tests earlier
    • Switch Storybook a11y test mode from 'todo' to '…
    +2 -2
    6 comments
  128. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:01
  129. @ryota-murakami ryota-murakami opened laststance/gitbox#104 · February 12, 2026 05:00
    fix: remove dead loading/error Redux state from boardSlice (#76) #104

    Summary

    • Remove dead loading and error fields from BoardState interface and initial state
    • Remove setBoardError action, selectBoardLoading and selec…
    +19 -196
    7 comments
  130. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 13:00
  131. @ryota-murakami ryota-murakami opened laststance/gitbox#103 · February 12, 2026 04:55
    fix: enable failOnFlakyTests to enforce test reliability (#72) #103

    Summary

    • Enable failOnFlakyTests: true in Playwright config to enforce test reliability
    • Flaky tests (pass only after retry) now fail CI instead of …
    +3 -3
    6 comments
  132. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 12, 2026 12:55
  133. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 11, 2026 17:33
    2 commits to main
  134. @ryota-murakami ryota-murakami deleted branch refs/heads/fix/github-token-cookie-83 in laststance/gitbox · February 11, 2026 18:06

    Updated Feb 11

  135. @ryota-murakami ryota-murakami merged laststance/gitbox#98 · February 11, 2026 10:06
    fix: align GitHub token cookie lifetime with token TTL (#83) #98

    Summary

    • Changed cookie maxAge from 7 days to 8 hours to match GitHub fine-grained token default TTL
    • Added 401 response interceptor to axios-github.ts
    +23 -1
    6 comments
  136. @ryota-murakami ryota-murakami closed an issue in laststance/gitbox · February 11, 2026 10:06
    GitHub token cookie lifetime mismatch with actual token expiry #83
    ## Summary The GitHub provider token cookie has \`maxAge: 7 days\` (\`src/app/auth/callback/route.ts:67\`), but GitHub OAuth tokens may expire soon…
    1 comment
  137. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 11, 2026 18:06
    2 commits to main
    • @ryota-murakami f80657c
      fix: align GitHub token cookie lifetime with token TTL and clear on 401
    • @ryota-murakami ce03f9f
      Merge branch 'main' into fix/github-token-cookie-83
    • 1 more commit »
  138. @ryota-murakami ryota-murakami deleted branch refs/heads/fix/upsert-projectinfo-67 in laststance/gitbox · February 11, 2026 16:39

    Updated Feb 11

  139. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 11, 2026 17:48
    2 commits to fix/github-token-cookie-83
  140. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 11, 2026 16:20
    2 commits to main
    • @ryota-murakami c291b20
      perf: memoize cards-per-column filtering in KanbanBoard (#75)
    • @ryota-murakami 358021b
      Merge pull request #97 from laststance/perf/memoize-cards-column-75
  141. @ryota-murakami ryota-murakami deleted branch refs/heads/fix/backend-cleanup-85 in laststance/gitbox · February 11, 2026 17:39

    Updated Feb 11

  142. @ryota-murakami ryota-murakami merged laststance/gitbox#93 · February 11, 2026 09:39
    fix: remove redundant updated_at and unsafe .passthrough() #93

    Summary

    • Remove 7 redundant manual updated_at assignments from board.ts (3) and shared-project-info.ts (4) — the DB update_updated_at_column() trig…
    +17 -26
    7 comments