Feed of "Thuyen Code"https://codeberg.org/thuyencode2026-11-02T21:50:58+01:00<p dir="auto"><span class="emoji" aria-label="building construction" data-alias="building_construction">🏗️</span> still working on this...</p>
thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-25T12:07:06+02:00143448395: https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/19cff0099db3c5233e56ba27644cacef9877f854<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/19cff0099db3c5233e56ba27644cacef9877f854" rel="nofollow">19cff0099db3c5233e56ba27644cacef9877f854</a>
Drag and drop objects on canvas<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/19cff0099db3c5233e56ba27644cacef9877f854">19cff0099db3c5233e56ba27644cacef9877f854</a>
Drag and drop objects on canvasthuyencode[email protected]thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-24T17:14:08+02:00143120996: https://codeberg.org/thuyencode/html5-canvas-solidjs/compare/1884080de6ca62afc3a64a086ac56a747a91557b...c0ba026ba5d5b3916dd838e766b8ff2c1e4d234e<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/c0ba026ba5d5b3916dd838e766b8ff2c1e4d234e" rel="nofollow">c0ba026ba5d5b3916dd838e766b8ff2c1e4d234e</a>
Implement a simple drawing app
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/7491dbe34bf64d669b3ee456fe2ec5164941892d" rel="nofollow">7491dbe34bf64d669b3ee456fe2ec5164941892d</a>
Break down effect<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/c0ba026ba5d5b3916dd838e766b8ff2c1e4d234e">c0ba026ba5d5b3916dd838e766b8ff2c1e4d234e</a>
Implement a simple drawing app
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/7491dbe34bf64d669b3ee456fe2ec5164941892d">7491dbe34bf64d669b3ee456fe2ec5164941892d</a>
Break down effectthuyencode[email protected]thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-23T12:49:12+02:00142540148: https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/1884080de6ca62afc3a64a086ac56a747a91557b<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/1884080de6ca62afc3a64a086ac56a747a91557b" rel="nofollow">1884080de6ca62afc3a64a086ac56a747a91557b</a>
Simple data graph<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/1884080de6ca62afc3a64a086ac56a747a91557b">1884080de6ca62afc3a64a086ac56a747a91557b</a>
Simple data graphthuyencode[email protected]thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-23T11:55:38+02:00142523192: https://codeberg.org/thuyencode/html5-canvas-solidjs/compare/eb39b11e185d4d337b32b4bcb33e6d18a0b00e38...a3634790b97c54b01df6e7b7f0722409e830c0fc<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/a3634790b97c54b01df6e7b7f0722409e830c0fc" rel="nofollow">a3634790b97c54b01df6e7b7f0722409e830c0fc</a>
Object interaction in canvas
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/5c814fddca3e807c711f629bd7b5e149f57ce5dd" rel="nofollow">5c814fddca3e807c711f629bd7b5e149f57ce5dd</a>
Add ESLint<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/a3634790b97c54b01df6e7b7f0722409e830c0fc">a3634790b97c54b01df6e7b7f0722409e830c0fc</a>
Object interaction in canvas
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/5c814fddca3e807c711f629bd7b5e149f57ce5dd">5c814fddca3e807c711f629bd7b5e149f57ce5dd</a>
Add ESLintthuyencode[email protected]thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-21T05:31:19+02:00141314267: https://codeberg.org/thuyencode/html5-canvas-solidjs/compare/d6d0976fe2e27f32663d97fcf6bc36bf02f0bdb6...eb39b11e185d4d337b32b4bcb33e6d18a0b00e38<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/eb39b11e185d4d337b32b4bcb33e6d18a0b00e38" rel="nofollow">eb39b11e185d4d337b32b4bcb33e6d18a0b00e38</a>
Image in canvas
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/9bcef14ef3c5dd4dcf49f7dddede7659188ba1ed" rel="nofollow">9bcef14ef3c5dd4dcf49f7dddede7659188ba1ed</a>
Annoying <code>this has any type</code> begone<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/eb39b11e185d4d337b32b4bcb33e6d18a0b00e38">eb39b11e185d4d337b32b4bcb33e6d18a0b00e38</a>
Image in canvas
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/9bcef14ef3c5dd4dcf49f7dddede7659188ba1ed">9bcef14ef3c5dd4dcf49f7dddede7659188ba1ed</a>
Annoying <code class="inline-code-block">this has any type</code> begonethuyencode[email protected]thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-20T17:23:16+02:00141058043: https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/d6d0976fe2e27f32663d97fcf6bc36bf02f0bdb6<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/d6d0976fe2e27f32663d97fcf6bc36bf02f0bdb6" rel="nofollow">d6d0976fe2e27f32663d97fcf6bc36bf02f0bdb6</a>
Object moving animation + Collision detection<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/d6d0976fe2e27f32663d97fcf6bc36bf02f0bdb6">d6d0976fe2e27f32663d97fcf6bc36bf02f0bdb6</a>
Object moving animation + Collision detectionthuyencode[email protected]thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-19T16:13:57+02:00140501852: https://codeberg.org/thuyencode/html5-canvas-solidjs/compare/a9310eee0bec2bae765afbee0f0f0f269487d150...3d842edd12e4735d23e6f681081ac849f98d9f1e<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/3d842edd12e4735d23e6f681081ac849f98d9f1e" rel="nofollow">3d842edd12e4735d23e6f681081ac849f98d9f1e</a>
Fonts and Text in Canvas
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/974cfe82c09b3604175741001fa609f1f80d11e2" rel="nofollow">974cfe82c09b3604175741001fa609f1f80d11e2</a>
Creating classes and object circles dynamic
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/7514d29e3a09bc161cb39fd0396522d750c436a1" rel="nofollow">7514d29e3a09bc161cb39fd0396522d750c436a1</a>
Use PNPM instead of Bun
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/27951d7603367a0706fb3924af682506d7444a96" rel="nofollow">27951d7603367a0706fb3924af682506d7444a96</a>
Update package.json<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/3d842edd12e4735d23e6f681081ac849f98d9f1e">3d842edd12e4735d23e6f681081ac849f98d9f1e</a>
Fonts and Text in Canvas
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/974cfe82c09b3604175741001fa609f1f80d11e2">974cfe82c09b3604175741001fa609f1f80d11e2</a>
Creating classes and object circles dynamic
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/7514d29e3a09bc161cb39fd0396522d750c436a1">7514d29e3a09bc161cb39fd0396522d750c436a1</a>
Use PNPM instead of Bun
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/27951d7603367a0706fb3924af682506d7444a96">27951d7603367a0706fb3924af682506d7444a96</a>
Update package.jsonthuyencode[email protected]thuyencode pushed to main at thuyencode/html5-canvas-solidjs2026-05-19T11:37:16+02:00140383769: https://codeberg.org/<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/a9310eee0bec2bae765afbee0f0f0f269487d150" rel="nofollow">a9310eee0bec2bae765afbee0f0f0f269487d150</a>
Create simple canvas objects and basic methods
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/54457a312c630224506bfea01a997a9303d1d9f5" rel="nofollow">54457a312c630224506bfea01a997a9303d1d9f5</a>
Remove boilerplate
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/69e97bcb5b17529d4255e267bb5d72119df87c9c" rel="nofollow">69e97bcb5b17529d4255e267bb5d72119df87c9c</a>
Init the project<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/a9310eee0bec2bae765afbee0f0f0f269487d150">a9310eee0bec2bae765afbee0f0f0f269487d150</a>
Create simple canvas objects and basic methods
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/54457a312c630224506bfea01a997a9303d1d9f5">54457a312c630224506bfea01a997a9303d1d9f5</a>
Remove boilerplate
<a href="https://codeberg.org/thuyencode/html5-canvas-solidjs/commit/69e97bcb5b17529d4255e267bb5d72119df87c9c">69e97bcb5b17529d4255e267bb5d72119df87c9c</a>
Init the projectthuyencode[email protected]thuyencode created branch main in thuyencode/html5-canvas-solidjs2026-05-19T11:37:16+02:00140383772: https://codeberg.org/thuyencode/html5-canvas-solidjs/src/branch/mainthuyencode[email protected]thuyencode created repository thuyencode/html5-canvas-solidjs2026-05-19T11:37:04+02:00140383730: https://codeberg.org/thuyencode/html5-canvas-solidjsthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-16T10:28:08+02:00138921000: https://codeberg.org/thuyencode/task-manager/commit/693724970508d1684297c725991f3c865b8bb48a<a href="https://codeberg.org/thuyencode/task-manager/commit/693724970508d1684297c725991f3c865b8bb48a" rel="nofollow">693724970508d1684297c725991f3c865b8bb48a</a>
Update README.md<a href="https://codeberg.org/thuyencode/task-manager/commit/693724970508d1684297c725991f3c865b8bb48a">693724970508d1684297c725991f3c865b8bb48a</a>
Update README.mdthuyencode[email protected]thuyencode pushed to main at thuyencode/thuyencode2026-05-15T17:34:10+02:00138554379: https://codeberg.org/thuyencode/thuyencode/commit/967c1670a271146d180b7318d81040458e0626b1<a href="https://codeberg.org/thuyencode/thuyencode/commit/967c1670a271146d180b7318d81040458e0626b1" rel="nofollow">967c1670a271146d180b7318d81040458e0626b1</a>
Update <code>README.md</code>s<a href="https://codeberg.org/thuyencode/thuyencode/commit/967c1670a271146d180b7318d81040458e0626b1">967c1670a271146d180b7318d81040458e0626b1</a>
Update <code class="inline-code-block">README.md</code>sthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-15T17:12:45+02:00138543633: https://codeberg.org/thuyencode/task-manager/commit/91804333b16986273c4ab060356b8106832f737a<a href="https://codeberg.org/thuyencode/task-manager/commit/91804333b16986273c4ab060356b8106832f737a" rel="nofollow">91804333b16986273c4ab060356b8106832f737a</a>
Update README.md<a href="https://codeberg.org/thuyencode/task-manager/commit/91804333b16986273c4ab060356b8106832f737a">91804333b16986273c4ab060356b8106832f737a</a>
Update README.mdthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-15T15:34:47+02:00138501534: https://codeberg.org/thuyencode/task-manager/commit/dcfa1ca69f62ad9772e0c53dfa63ffea19544aee<a href="https://codeberg.org/thuyencode/task-manager/commit/dcfa1ca69f62ad9772e0c53dfa63ffea19544aee" rel="nofollow">dcfa1ca69f62ad9772e0c53dfa63ffea19544aee</a>
Add settings page<a href="https://codeberg.org/thuyencode/task-manager/commit/dcfa1ca69f62ad9772e0c53dfa63ffea19544aee">dcfa1ca69f62ad9772e0c53dfa63ffea19544aee</a>
Add settings pagethuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-06T18:35:05+02:00133818017: https://codeberg.org/thuyencode/task-manager/compare/1de48b9e77c1e34dc561ee3ed80989e6f14e28df...4bc73ce550706c983f3f32b609bdeb5a874331d9<a href="https://codeberg.org/thuyencode/task-manager/commit/4bc73ce550706c983f3f32b609bdeb5a874331d9" rel="nofollow">4bc73ce550706c983f3f32b609bdeb5a874331d9</a>
Improve pomodoro
<a href="https://codeberg.org/thuyencode/task-manager/commit/64b3d73efd739714ff147065f5efc583d66059ef" rel="nofollow">64b3d73efd739714ff147065f5efc583d66059ef</a>
Remove the usage of deprecated <code>skipIfNotNull</code> prop
<a href="https://codeberg.org/thuyencode/task-manager/commit/1c1d1940232f595dbd670df9dcd7eed7c30c5670" rel="nofollow">1c1d1940232f595dbd670df9dcd7eed7c30c5670</a>
Replace <code>h-full</code> with <code>flex-1</code> and <code>space-y-5</code> with <code>gap-5</code> in page<a href="https://codeberg.org/thuyencode/task-manager/commit/4bc73ce550706c983f3f32b609bdeb5a874331d9">4bc73ce550706c983f3f32b609bdeb5a874331d9</a>
Improve pomodoro
<a href="https://codeberg.org/thuyencode/task-manager/commit/64b3d73efd739714ff147065f5efc583d66059ef">64b3d73efd739714ff147065f5efc583d66059ef</a>
Remove the usage of deprecated <code class="inline-code-block">skipIfNotNull</code> prop
<a href="https://codeberg.org/thuyencode/task-manager/commit/1c1d1940232f595dbd670df9dcd7eed7c30c5670">1c1d1940232f595dbd670df9dcd7eed7c30c5670</a>
Replace <code class="inline-code-block">h-full</code> with <code class="inline-code-block">flex-1</code> and <code class="inline-code-block">space-y-5</code> with <code class="inline-code-block">gap-5</code> in pagethuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-05T17:42:32+02:00133273736: https://codeberg.org/thuyencode/task-manager/compare/0e9d68a26e523b96aa58724a9a0817b7eb4f1fdd...1de48b9e77c1e34dc561ee3ed80989e6f14e28df<a href="https://codeberg.org/thuyencode/task-manager/commit/1de48b9e77c1e34dc561ee3ed80989e6f14e28df" rel="nofollow">1de48b9e77c1e34dc561ee3ed80989e6f14e28df</a>
Half-complete the pomodoro page
<a href="https://codeberg.org/thuyencode/task-manager/commit/03b8e0cf13f69291aa3b133a986cb83bccb86077" rel="nofollow">03b8e0cf13f69291aa3b133a986cb83bccb86077</a>
Update cache tag for pomodoro sessions on update task action
<a href="https://codeberg.org/thuyencode/task-manager/commit/944fe3bfabfc01ba799405faea7c7c013f8f86cd" rel="nofollow">944fe3bfabfc01ba799405faea7c7c013f8f86cd</a>
Fix visual bug of home page
<a href="https://codeberg.org/thuyencode/task-manager/commit/e0cb2ce838aba256a92d1500bf4c1d6c2c8f861c" rel="nofollow">e0cb2ce838aba256a92d1500bf4c1d6c2c8f861c</a>
Update drawer-nav-item.tsx<a href="https://codeberg.org/thuyencode/task-manager/commit/1de48b9e77c1e34dc561ee3ed80989e6f14e28df">1de48b9e77c1e34dc561ee3ed80989e6f14e28df</a>
Half-complete the pomodoro page
<a href="https://codeberg.org/thuyencode/task-manager/commit/03b8e0cf13f69291aa3b133a986cb83bccb86077">03b8e0cf13f69291aa3b133a986cb83bccb86077</a>
Update cache tag for pomodoro sessions on update task action
<a href="https://codeberg.org/thuyencode/task-manager/commit/944fe3bfabfc01ba799405faea7c7c013f8f86cd">944fe3bfabfc01ba799405faea7c7c013f8f86cd</a>
Fix visual bug of home page
<a href="https://codeberg.org/thuyencode/task-manager/commit/e0cb2ce838aba256a92d1500bf4c1d6c2c8f861c">e0cb2ce838aba256a92d1500bf4c1d6c2c8f861c</a>
Update drawer-nav-item.tsxthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-05T15:34:37+02:00133196615: https://codeberg.org/thuyencode/task-manager/compare/955554a8164c3baf8ca22976e1ec882d97c994e9...0e9d68a26e523b96aa58724a9a0817b7eb4f1fdd<a href="https://codeberg.org/thuyencode/task-manager/commit/0e9d68a26e523b96aa58724a9a0817b7eb4f1fdd" rel="nofollow">0e9d68a26e523b96aa58724a9a0817b7eb4f1fdd</a>
Extract drawer navigation items into reusable <code>DrawerNavItem</code> component
<a href="https://codeberg.org/thuyencode/task-manager/commit/5d3de8e35dbfc9831aafe31594de53f7e3ba7c73" rel="nofollow">5d3de8e35dbfc9831aafe31594de53f7e3ba7c73</a>
Remove unnecessary <code>intervalRef</code>
<a href="https://codeberg.org/thuyencode/task-manager/commit/c1ab0c2c8f201949efa160e0465b9e9fa5597e3e" rel="nofollow">c1ab0c2c8f201949efa160e0465b9e9fa5597e3e</a>
Make current task name in pomodoro footer a bit more readable
<a href="https://codeberg.org/thuyencode/task-manager/commit/92107811e390b1c2cf4fdafadf653efcd06275b9" rel="nofollow">92107811e390b1c2cf4fdafadf653efcd06275b9</a>
Show hours only when remaining time exceeds one hour
<a href="https://codeberg.org/thuyencode/task-manager/commit/4013d428483f9583a2bef9f763fe7919d60900fd" rel="nofollow">4013d428483f9583a2bef9f763fe7919d60900fd</a>
Temp fix for outdated cache when a task is added for edited on todo page<a href="https://codeberg.org/thuyencode/task-manager/commit/0e9d68a26e523b96aa58724a9a0817b7eb4f1fdd">0e9d68a26e523b96aa58724a9a0817b7eb4f1fdd</a>
Extract drawer navigation items into reusable <code class="inline-code-block">DrawerNavItem</code> component
<a href="https://codeberg.org/thuyencode/task-manager/commit/5d3de8e35dbfc9831aafe31594de53f7e3ba7c73">5d3de8e35dbfc9831aafe31594de53f7e3ba7c73</a>
Remove unnecessary <code class="inline-code-block">intervalRef</code>
<a href="https://codeberg.org/thuyencode/task-manager/commit/c1ab0c2c8f201949efa160e0465b9e9fa5597e3e">c1ab0c2c8f201949efa160e0465b9e9fa5597e3e</a>
Make current task name in pomodoro footer a bit more readable
<a href="https://codeberg.org/thuyencode/task-manager/commit/92107811e390b1c2cf4fdafadf653efcd06275b9">92107811e390b1c2cf4fdafadf653efcd06275b9</a>
Show hours only when remaining time exceeds one hour
<a href="https://codeberg.org/thuyencode/task-manager/commit/4013d428483f9583a2bef9f763fe7919d60900fd">4013d428483f9583a2bef9f763fe7919d60900fd</a>
Temp fix for outdated cache when a task is added for edited on todo pagethuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-04T11:30:19+02:00132598556: https://codeberg.org/thuyencode/task-manager/commit/955554a8164c3baf8ca22976e1ec882d97c994e9<a href="https://codeberg.org/thuyencode/task-manager/commit/955554a8164c3baf8ca22976e1ec882d97c994e9" rel="nofollow">955554a8164c3baf8ca22976e1ec882d97c994e9</a>
Separate store selectors from action selectors with blank lines<a href="https://codeberg.org/thuyencode/task-manager/commit/955554a8164c3baf8ca22976e1ec882d97c994e9">955554a8164c3baf8ca22976e1ec882d97c994e9</a>
Separate store selectors from action selectors with blank linesthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-04T11:28:40+02:00132597641: https://codeberg.org/thuyencode/task-manager/compare/31bbb19f2c688ec992289f5b037ec4bf668c1014...210849b30a7ef6b3eb06294d5899b2aad5fcf398<a href="https://codeberg.org/thuyencode/task-manager/commit/210849b30a7ef6b3eb06294d5899b2aad5fcf398" rel="nofollow">210849b30a7ef6b3eb06294d5899b2aad5fcf398</a>
Cleaner code
<a href="https://codeberg.org/thuyencode/task-manager/commit/50300f08fb177e5144291f3f07f5b7eaac5effb5" rel="nofollow">50300f08fb177e5144291f3f07f5b7eaac5effb5</a>
Temporarily suppress hydration warning
<a href="https://codeberg.org/thuyencode/task-manager/commit/9771a5d3393eaf763ab268bb5ff06d428f13642e" rel="nofollow">9771a5d3393eaf763ab268bb5ff06d428f13642e</a>
Remove <code>async</code> from <code>resetPomodoro</code> function
<a href="https://codeberg.org/thuyencode/task-manager/commit/97e9979cdf8524e668a08238322705961760ce85" rel="nofollow">97e9979cdf8524e668a08238322705961760ce85</a>
Update cancel-button.tsx<a href="https://codeberg.org/thuyencode/task-manager/commit/210849b30a7ef6b3eb06294d5899b2aad5fcf398">210849b30a7ef6b3eb06294d5899b2aad5fcf398</a>
Cleaner code
<a href="https://codeberg.org/thuyencode/task-manager/commit/50300f08fb177e5144291f3f07f5b7eaac5effb5">50300f08fb177e5144291f3f07f5b7eaac5effb5</a>
Temporarily suppress hydration warning
<a href="https://codeberg.org/thuyencode/task-manager/commit/9771a5d3393eaf763ab268bb5ff06d428f13642e">9771a5d3393eaf763ab268bb5ff06d428f13642e</a>
Remove <code class="inline-code-block">async</code> from <code class="inline-code-block">resetPomodoro</code> function
<a href="https://codeberg.org/thuyencode/task-manager/commit/97e9979cdf8524e668a08238322705961760ce85">97e9979cdf8524e668a08238322705961760ce85</a>
Update cancel-button.tsxthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-02T17:48:39+02:00131831471: https://codeberg.org/thuyencode/task-manager/compare/b0b81263c9eb75b71a2d919f21fd1fdad8c3a76d...31bbb19f2c688ec992289f5b037ec4bf668c1014<a href="https://codeberg.org/thuyencode/task-manager/commit/31bbb19f2c688ec992289f5b037ec4bf668c1014" rel="nofollow">31bbb19f2c688ec992289f5b037ec4bf668c1014</a>
Improve type annotation for <code>actionMap</code>
<a href="https://codeberg.org/thuyencode/task-manager/commit/c1a6c10a079121dae8b1eb69fc8ab648f0ee15ec" rel="nofollow">c1a6c10a079121dae8b1eb69fc8ab648f0ee15ec</a>
Show remaining time and completion percentage of a pomodoro session<a href="https://codeberg.org/thuyencode/task-manager/commit/31bbb19f2c688ec992289f5b037ec4bf668c1014">31bbb19f2c688ec992289f5b037ec4bf668c1014</a>
Improve type annotation for <code class="inline-code-block">actionMap</code>
<a href="https://codeberg.org/thuyencode/task-manager/commit/c1a6c10a079121dae8b1eb69fc8ab648f0ee15ec">c1a6c10a079121dae8b1eb69fc8ab648f0ee15ec</a>
Show remaining time and completion percentage of a pomodoro sessionthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-05-02T16:26:37+02:00131786675: https://codeberg.org/thuyencode/task-manager/compare/54c47730a10369a95ac0a970afc2fc6deca25443...b0b81263c9eb75b71a2d919f21fd1fdad8c3a76d<a href="https://codeberg.org/thuyencode/task-manager/commit/b0b81263c9eb75b71a2d919f21fd1fdad8c3a76d" rel="nofollow">b0b81263c9eb75b71a2d919f21fd1fdad8c3a76d</a>
Use <code>span</code> element for text skeletons
<a href="https://codeberg.org/thuyencode/task-manager/commit/27d029f9dab46b98f9183dc819a4d575c483a4dc" rel="nofollow">27d029f9dab46b98f9183dc819a4d575c483a4dc</a>
Fix commented-out code to use correct property names
<a href="https://codeberg.org/thuyencode/task-manager/commit/04fc447c3a0a3bd218fbdc117cd6c6174cbf9c9f" rel="nofollow">04fc447c3a0a3bd218fbdc117cd6c6174cbf9c9f</a>
Implement the start/end pomodoro session feature
<a href="https://codeberg.org/thuyencode/task-manager/commit/de71d0e80c1a9853eff66702c22acb69b720cc6e" rel="nofollow">de71d0e80c1a9853eff66702c22acb69b720cc6e</a>
Log the error object instead of the message
<a href="https://codeberg.org/thuyencode/task-manager/commit/d364c783f5ab0890a28fdf3427a0ab9f872429fd" rel="nofollow">d364c783f5ab0890a28fdf3427a0ab9f872429fd</a>
Add server actions to start and end a pomodoro session<a href="https://codeberg.org/thuyencode/task-manager/commit/b0b81263c9eb75b71a2d919f21fd1fdad8c3a76d">b0b81263c9eb75b71a2d919f21fd1fdad8c3a76d</a>
Use <code class="inline-code-block">span</code> element for text skeletons
<a href="https://codeberg.org/thuyencode/task-manager/commit/27d029f9dab46b98f9183dc819a4d575c483a4dc">27d029f9dab46b98f9183dc819a4d575c483a4dc</a>
Fix commented-out code to use correct property names
<a href="https://codeberg.org/thuyencode/task-manager/commit/04fc447c3a0a3bd218fbdc117cd6c6174cbf9c9f">04fc447c3a0a3bd218fbdc117cd6c6174cbf9c9f</a>
Implement the start/end pomodoro session feature
<a href="https://codeberg.org/thuyencode/task-manager/commit/de71d0e80c1a9853eff66702c22acb69b720cc6e">de71d0e80c1a9853eff66702c22acb69b720cc6e</a>
Log the error object instead of the message
<a href="https://codeberg.org/thuyencode/task-manager/commit/d364c783f5ab0890a28fdf3427a0ab9f872429fd">d364c783f5ab0890a28fdf3427a0ab9f872429fd</a>
Add server actions to start and end a pomodoro sessionthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-24T17:08:57+02:00127867295: https://codeberg.org/thuyencode/task-manager/compare/b6dae622ba552e2886396881ecb9bc74e76fd6c8...54c47730a10369a95ac0a970afc2fc6deca25443<a href="https://codeberg.org/thuyencode/task-manager/commit/54c47730a10369a95ac0a970afc2fc6deca25443" rel="nofollow">54c47730a10369a95ac0a970afc2fc6deca25443</a>
Add API endpoints for pomodoro
<a href="https://codeberg.org/thuyencode/task-manager/commit/269481fd651aad283407dcae09e390633eb03a7e" rel="nofollow">269481fd651aad283407dcae09e390633eb03a7e</a>
Update route.ts
<a href="https://codeberg.org/thuyencode/task-manager/commit/1c73bab892870038f9895e40a14f412848173211" rel="nofollow">1c73bab892870038f9895e40a14f412848173211</a>
Add <code>TaskSelectSchema</code> and refactor <code>TaskSchema</code> to use it
<a href="https://codeberg.org/thuyencode/task-manager/commit/21b94cf2d923a9707283c5aaf4dd57a5ed7405a4" rel="nofollow">21b94cf2d923a9707283c5aaf4dd57a5ed7405a4</a>
Extract pomodoro session types to constants and add auto-increment and
<a href="https://codeberg.org/thuyencode/task-manager/commit/f64e844e46989e0e902c3dbd3877413755647879" rel="nofollow">f64e844e46989e0e902c3dbd3877413755647879</a>
Update package.json<a href="https://codeberg.org/thuyencode/task-manager/commit/54c47730a10369a95ac0a970afc2fc6deca25443">54c47730a10369a95ac0a970afc2fc6deca25443</a>
Add API endpoints for pomodoro
<a href="https://codeberg.org/thuyencode/task-manager/commit/269481fd651aad283407dcae09e390633eb03a7e">269481fd651aad283407dcae09e390633eb03a7e</a>
Update route.ts
<a href="https://codeberg.org/thuyencode/task-manager/commit/1c73bab892870038f9895e40a14f412848173211">1c73bab892870038f9895e40a14f412848173211</a>
Add <code class="inline-code-block">TaskSelectSchema</code> and refactor <code class="inline-code-block">TaskSchema</code> to use it
<a href="https://codeberg.org/thuyencode/task-manager/commit/21b94cf2d923a9707283c5aaf4dd57a5ed7405a4">21b94cf2d923a9707283c5aaf4dd57a5ed7405a4</a>
Extract pomodoro session types to constants and add auto-increment and
<a href="https://codeberg.org/thuyencode/task-manager/commit/f64e844e46989e0e902c3dbd3877413755647879">f64e844e46989e0e902c3dbd3877413755647879</a>
Update package.jsonthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-22T17:35:19+02:00126982019: https://codeberg.org/thuyencode/task-manager/compare/eb17c4ff5ece966c861e7b0213e22fac5b7ae1f2...b6dae622ba552e2886396881ecb9bc74e76fd6c8<a href="https://codeberg.org/thuyencode/task-manager/commit/b6dae622ba552e2886396881ecb9bc74e76fd6c8" rel="nofollow">b6dae622ba552e2886396881ecb9bc74e76fd6c8</a>
Only enable dev tool on dev env
<a href="https://codeberg.org/thuyencode/task-manager/commit/06b5a87db32b749942dca8819c5b3b3abde63f83" rel="nofollow">06b5a87db32b749942dca8819c5b3b3abde63f83</a>
Skip setting tasks on todo page if not null<a href="https://codeberg.org/thuyencode/task-manager/commit/b6dae622ba552e2886396881ecb9bc74e76fd6c8">b6dae622ba552e2886396881ecb9bc74e76fd6c8</a>
Only enable dev tool on dev env
<a href="https://codeberg.org/thuyencode/task-manager/commit/06b5a87db32b749942dca8819c5b3b3abde63f83">06b5a87db32b749942dca8819c5b3b3abde63f83</a>
Skip setting tasks on todo page if not nullthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-22T17:24:15+02:00126976574: https://codeberg.org/thuyencode/task-manager/compare/43e45e2f394d23ff35fe245343168b4d6ed5bf9f...eb17c4ff5ece966c861e7b0213e22fac5b7ae1f2<a href="https://codeberg.org/thuyencode/task-manager/commit/eb17c4ff5ece966c861e7b0213e22fac5b7ae1f2" rel="nofollow">eb17c4ff5ece966c861e7b0213e22fac5b7ae1f2</a>
Change spacing
<a href="https://codeberg.org/thuyencode/task-manager/commit/d93831e64a2ae63ebfc1aad0d9f33f6916284aa7" rel="nofollow">d93831e64a2ae63ebfc1aad0d9f33f6916284aa7</a>
The same as the previous commit but for tasks
<a href="https://codeberg.org/thuyencode/task-manager/commit/ce8baf4cda70dcac073c8d5e6490356aadb8a03c" rel="nofollow">ce8baf4cda70dcac073c8d5e6490356aadb8a03c</a>
Store selected items by ID instead of full objects
<a href="https://codeberg.org/thuyencode/task-manager/commit/804dedece9fc43036427ab2c39ac2a8044feffbb" rel="nofollow">804dedece9fc43036427ab2c39ac2a8044feffbb</a>
Implement basic caching for fetching clients and projects from clients<a href="https://codeberg.org/thuyencode/task-manager/commit/eb17c4ff5ece966c861e7b0213e22fac5b7ae1f2">eb17c4ff5ece966c861e7b0213e22fac5b7ae1f2</a>
Change spacing
<a href="https://codeberg.org/thuyencode/task-manager/commit/d93831e64a2ae63ebfc1aad0d9f33f6916284aa7">d93831e64a2ae63ebfc1aad0d9f33f6916284aa7</a>
The same as the previous commit but for tasks
<a href="https://codeberg.org/thuyencode/task-manager/commit/ce8baf4cda70dcac073c8d5e6490356aadb8a03c">ce8baf4cda70dcac073c8d5e6490356aadb8a03c</a>
Store selected items by ID instead of full objects
<a href="https://codeberg.org/thuyencode/task-manager/commit/804dedece9fc43036427ab2c39ac2a8044feffbb">804dedece9fc43036427ab2c39ac2a8044feffbb</a>
Implement basic caching for fetching clients and projects from clientsthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-22T16:06:24+02:00126927998: https://codeberg.org/thuyencode/task-manager/compare/71a7ce849fcdf7c752f684cf79743b21e9b63d6b...43e45e2f394d23ff35fe245343168b4d6ed5bf9f<a href="https://codeberg.org/thuyencode/task-manager/commit/43e45e2f394d23ff35fe245343168b4d6ed5bf9f" rel="nofollow">43e45e2f394d23ff35fe245343168b4d6ed5bf9f</a>
Move fetch functions to clients and projects slices
<a href="https://codeberg.org/thuyencode/task-manager/commit/3f4df50c9af8526e6f6ee17dd8102e6fadfdc6a9" rel="nofollow">3f4df50c9af8526e6f6ee17dd8102e6fadfdc6a9</a>
Change nested object to flat structure in slices<a href="https://codeberg.org/thuyencode/task-manager/commit/43e45e2f394d23ff35fe245343168b4d6ed5bf9f">43e45e2f394d23ff35fe245343168b4d6ed5bf9f</a>
Move fetch functions to clients and projects slices
<a href="https://codeberg.org/thuyencode/task-manager/commit/3f4df50c9af8526e6f6ee17dd8102e6fadfdc6a9">3f4df50c9af8526e6f6ee17dd8102e6fadfdc6a9</a>
Change nested object to flat structure in slicesthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-22T05:28:09+02:00126682424: https://codeberg.org/thuyencode/task-manager/commit/71a7ce849fcdf7c752f684cf79743b21e9b63d6b<a href="https://codeberg.org/thuyencode/task-manager/commit/71a7ce849fcdf7c752f684cf79743b21e9b63d6b" rel="nofollow">71a7ce849fcdf7c752f684cf79743b21e9b63d6b</a>
Add server actions and functions for pomodoro settings<a href="https://codeberg.org/thuyencode/task-manager/commit/71a7ce849fcdf7c752f684cf79743b21e9b63d6b">71a7ce849fcdf7c752f684cf79743b21e9b63d6b</a>
Add server actions and functions for pomodoro settingsthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-22T05:06:08+02:00126680054: https://codeberg.org/thuyencode/task-manager/compare/6ee7e7a9bd23feb3225fbd9ec0d0da1694a18998...30c9995395961c8b7697e037d90e7a90fbfbf243<a href="https://codeberg.org/thuyencode/task-manager/commit/30c9995395961c8b7697e037d90e7a90fbfbf243" rel="nofollow">30c9995395961c8b7697e037d90e7a90fbfbf243</a>
Add API endpoints to get and update pomodoro settings
<a href="https://codeberg.org/thuyencode/task-manager/commit/cdf786218b5f54ff8cea1197f3879f5d89dd8675" rel="nofollow">cdf786218b5f54ff8cea1197f3879f5d89dd8675</a>
Update service.ts
<a href="https://codeberg.org/thuyencode/task-manager/commit/0871515fd198d9598e51ae5d3a738e6be6417749" rel="nofollow">0871515fd198d9598e51ae5d3a738e6be6417749</a>
Create pomodoro settings for new users during signup
<a href="https://codeberg.org/thuyencode/task-manager/commit/19d3a6a0a07621161d999bcf50640138d3b6063a" rel="nofollow">19d3a6a0a07621161d999bcf50640138d3b6063a</a>
Add service functions for pomodoro settings
<a href="https://codeberg.org/thuyencode/task-manager/commit/31a1b51f88834b358d413cde4eab525026e493db" rel="nofollow">31a1b51f88834b358d413cde4eab525026e493db</a>
Create schemas and types for pmodoro settings<a href="https://codeberg.org/thuyencode/task-manager/commit/30c9995395961c8b7697e037d90e7a90fbfbf243">30c9995395961c8b7697e037d90e7a90fbfbf243</a>
Add API endpoints to get and update pomodoro settings
<a href="https://codeberg.org/thuyencode/task-manager/commit/cdf786218b5f54ff8cea1197f3879f5d89dd8675">cdf786218b5f54ff8cea1197f3879f5d89dd8675</a>
Update service.ts
<a href="https://codeberg.org/thuyencode/task-manager/commit/0871515fd198d9598e51ae5d3a738e6be6417749">0871515fd198d9598e51ae5d3a738e6be6417749</a>
Create pomodoro settings for new users during signup
<a href="https://codeberg.org/thuyencode/task-manager/commit/19d3a6a0a07621161d999bcf50640138d3b6063a">19d3a6a0a07621161d999bcf50640138d3b6063a</a>
Add service functions for pomodoro settings
<a href="https://codeberg.org/thuyencode/task-manager/commit/31a1b51f88834b358d413cde4eab525026e493db">31a1b51f88834b358d413cde4eab525026e493db</a>
Create schemas and types for pmodoro settingsthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-21T17:06:50+02:00126377088: https://codeberg.org/thuyencode/task-manager/commit/6ee7e7a9bd23feb3225fbd9ec0d0da1694a18998<a href="https://codeberg.org/thuyencode/task-manager/commit/6ee7e7a9bd23feb3225fbd9ec0d0da1694a18998" rel="nofollow">6ee7e7a9bd23feb3225fbd9ec0d0da1694a18998</a>
Disable the conflict warning<a href="https://codeberg.org/thuyencode/task-manager/commit/6ee7e7a9bd23feb3225fbd9ec0d0da1694a18998">6ee7e7a9bd23feb3225fbd9ec0d0da1694a18998</a>
Disable the conflict warningthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-21T17:03:28+02:00126376248: https://codeberg.org/thuyencode/task-manager/compare/91ebe2929f0f0be26975abf1a8474d3450a304c2...098f5a980b1c4db651223def20cf3ad949ade204<a href="https://codeberg.org/thuyencode/task-manager/commit/098f5a980b1c4db651223def20cf3ad949ade204" rel="nofollow">098f5a980b1c4db651223def20cf3ad949ade204</a>
Fetch fresh clients and projects list every time in task form
<a href="https://codeberg.org/thuyencode/task-manager/commit/7a84db22bc8b06ff36713a345b7c25f4ca83ed50" rel="nofollow">7a84db22bc8b06ff36713a345b7c25f4ca83ed50</a>
Add type attribute to error boundary retry button
<a href="https://codeberg.org/thuyencode/task-manager/commit/91ebf8607e69ed7bf12b2b20eabce0aabbff0e9b" rel="nofollow">91ebf8607e69ed7bf12b2b20eabce0aabbff0e9b</a>
Reorganize layouts
<a href="https://codeberg.org/thuyencode/task-manager/commit/bce0e4ad7570adf6c38d37bc59a2fd1d1574a093" rel="nofollow">bce0e4ad7570adf6c38d37bc59a2fd1d1574a093</a>
Update index.tsx
<a href="https://codeberg.org/thuyencode/task-manager/commit/98154abee61b658765e1f565f4da69b6396be2d6" rel="nofollow">98154abee61b658765e1f565f4da69b6396be2d6</a>
Add client list, form, modal and hotkeys<a href="https://codeberg.org/thuyencode/task-manager/commit/098f5a980b1c4db651223def20cf3ad949ade204">098f5a980b1c4db651223def20cf3ad949ade204</a>
Fetch fresh clients and projects list every time in task form
<a href="https://codeberg.org/thuyencode/task-manager/commit/7a84db22bc8b06ff36713a345b7c25f4ca83ed50">7a84db22bc8b06ff36713a345b7c25f4ca83ed50</a>
Add type attribute to error boundary retry button
<a href="https://codeberg.org/thuyencode/task-manager/commit/91ebf8607e69ed7bf12b2b20eabce0aabbff0e9b">91ebf8607e69ed7bf12b2b20eabce0aabbff0e9b</a>
Reorganize layouts
<a href="https://codeberg.org/thuyencode/task-manager/commit/bce0e4ad7570adf6c38d37bc59a2fd1d1574a093">bce0e4ad7570adf6c38d37bc59a2fd1d1574a093</a>
Update index.tsx
<a href="https://codeberg.org/thuyencode/task-manager/commit/98154abee61b658765e1f565f4da69b6396be2d6">98154abee61b658765e1f565f4da69b6396be2d6</a>
Add client list, form, modal and hotkeysthuyencode[email protected]thuyencode pushed to main at thuyencode/task-manager2026-04-21T11:42:25+02:00126270447: https://codeberg.org/thuyencode/task-manager/compare/20de73da1a10cab708deae4fe700b725e1c08fda...91ebe2929f0f0be26975abf1a8474d3450a304c2<a href="https://codeberg.org/thuyencode/task-manager/commit/91ebe2929f0f0be26975abf1a8474d3450a304c2" rel="nofollow">91ebe2929f0f0be26975abf1a8474d3450a304c2</a>
Update route.ts
<a href="https://codeberg.org/thuyencode/task-manager/commit/2d21c1e270bebf04d58b40bcbf59ef17468a9bcf" rel="nofollow">2d21c1e270bebf04d58b40bcbf59ef17468a9bcf</a>
Update imports
<a href="https://codeberg.org/thuyencode/task-manager/commit/c517dafc1232e48cead4e4d7f89bacf3601c8de8" rel="nofollow">c517dafc1232e48cead4e4d7f89bacf3601c8de8</a>
Update enabled conditions for hotkeys
<a href="https://codeberg.org/thuyencode/task-manager/commit/2e56b968c7534328bf5d455d3ed89f1fc9fd62ef" rel="nofollow">2e56b968c7534328bf5d455d3ed89f1fc9fd62ef</a>
Remove unnecessary <code>protected</code> route group
<a href="https://codeberg.org/thuyencode/task-manager/commit/3764c5dd9666c764b05cffca8dbb6b6b6511a11a" rel="nofollow">3764c5dd9666c764b05cffca8dbb6b6b6511a11a</a>
Change data fetcher name in client and project fields to avoid confusion<a href="https://codeberg.org/thuyencode/task-manager/commit/91ebe2929f0f0be26975abf1a8474d3450a304c2">91ebe2929f0f0be26975abf1a8474d3450a304c2</a>
Update route.ts
<a href="https://codeberg.org/thuyencode/task-manager/commit/2d21c1e270bebf04d58b40bcbf59ef17468a9bcf">2d21c1e270bebf04d58b40bcbf59ef17468a9bcf</a>
Update imports
<a href="https://codeberg.org/thuyencode/task-manager/commit/c517dafc1232e48cead4e4d7f89bacf3601c8de8">c517dafc1232e48cead4e4d7f89bacf3601c8de8</a>
Update enabled conditions for hotkeys
<a href="https://codeberg.org/thuyencode/task-manager/commit/2e56b968c7534328bf5d455d3ed89f1fc9fd62ef">2e56b968c7534328bf5d455d3ed89f1fc9fd62ef</a>
Remove unnecessary <code class="inline-code-block">protected</code> route group
<a href="https://codeberg.org/thuyencode/task-manager/commit/3764c5dd9666c764b05cffca8dbb6b6b6511a11a">3764c5dd9666c764b05cffca8dbb6b6b6511a11a</a>
Change data fetcher name in client and project fields to avoid confusionthuyencode[email protected]