<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neko/.thicket, branch claude/thicket-ready-crank-RmQuI</title>
<subtitle>self-hosted, single user rss reader</subtitle>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/'/>
<entry>
<title>Add tests for CSRF exclusions, Filter includeContent, multi-feed, and routing</title>
<updated>2026-02-16T23:31:54+00:00</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-02-16T23:31:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=5f5f8be8c6ca78f5d61372544bb24d692d9597f0'/>
<id>5f5f8be8c6ca78f5d61372544bb24d692d9597f0</id>
<content type='text'>
- CSRF: test excluded paths (/api/login, /api/logout), PUT/DELETE methods
- Item model: test Filter includeContent flag, ItemById returns content,
  multiple feed_ids filtering
- API: test read_filter=all param, feed_ids comma-separated filter,
  full_content exclusion from stream
- Routing: add v3 frontend route test

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- CSRF: test excluded paths (/api/login, /api/logout), PUT/DELETE methods
- Item model: test Filter includeContent flag, ItemById returns content,
  multiple feed_ids filtering
- API: test read_filter=all param, feed_ids comma-separated filter,
  full_content exclusion from stream
- Routing: add v3 frontend route test

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</pre>
</div>
</content>
</entry>
<entry>
<title>Align sidebar CSS breakpoints with JS threshold at 1024px</title>
<updated>2026-02-16T23:28:59+00:00</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-02-16T23:28:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=ed1b953e1336aeda282b46acd1c5e21529fa0950'/>
<id>ed1b953e1336aeda282b46acd1c5e21529fa0950</id>
<content type='text'>
The sidebar default-closed JS logic used 1024px but CSS media queries
used 768px, causing inconsistent behavior on tablets. Updated all
sidebar-related breakpoints to 1024px/1025px to match.

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The sidebar default-closed JS logic used 1024px but CSS media queries
used 768px, causing inconsistent behavior on tablets. Updated all
sidebar-related breakpoints to 1024px/1025px to match.

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</pre>
</div>
</content>
</entry>
<entry>
<title>Exclude full_content from stream list API responses</title>
<updated>2026-02-16T23:03:41+00:00</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-02-16T23:03:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=f67c07b178cd90539f1cc934def5a99be203e44a'/>
<id>f67c07b178cd90539f1cc934def5a99be203e44a</id>
<content type='text'>
The /stream endpoint now skips selecting full_content and header_image
from the database, reducing memory allocation and response payload size
for list views. Full content remains available via /item/:id endpoint.

Adds omitempty to JSON tags so empty fields are omitted from responses,
and a test verifying full_content is excluded from stream responses.

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The /stream endpoint now skips selecting full_content and header_image
from the database, reducing memory allocation and response payload size
for list views. Full content remains available via /item/:id endpoint.

Adds omitempty to JSON tags so empty fields are omitted from responses,
and a test verifying full_content is excluded from stream responses.

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</pre>
</div>
</content>
</entry>
<entry>
<title>more tickets</title>
<updated>2026-02-16T22:42:59+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2026-02-16T22:42:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=2321d5bcf17e416244e75f5727f0710f9cdd9a1a'/>
<id>2321d5bcf17e416244e75f5727f0710f9cdd9a1a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>v3 ui: require 100% visibility before marking items as read</title>
<updated>2026-02-16T19:13:22+00:00</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-02-16T19:13:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=0b08b2fb49827399ff0652bc20d5f71e2066025c'/>
<id>0b08b2fb49827399ff0652bc20d5f71e2066025c</id>
<content type='text'>
Change IntersectionObserver threshold from 0.5 to 1.0 so items are only
marked as read when fully scrolled into view, reducing accidental
mark-as-read during fast scrolling.

Also fix unused Category import in perf test and add thicket config.json
to repository so future agents can use thicket CLI commands.

Closes NK-s2g59a

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change IntersectionObserver threshold from 0.5 to 1.0 so items are only
marked as read when fully scrolled into view, reducing accidental
mark-as-read during fast scrolling.

Also fix unused Category import in perf test and add thicket config.json
to repository so future agents can use thicket CLI commands.

Closes NK-s2g59a

https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
</pre>
</div>
</content>
</entry>
<entry>
<title>ticket priority changes</title>
<updated>2026-02-16T18:57:38+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-16T18:55:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=6e84019f6cf887f777c2c8f9601455e031dad3a5'/>
<id>6e84019f6cf887f777c2c8f9601455e031dad3a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>V3 UI Polish: Improved keyboard navigation, fixed logo position, and updated branding</title>
<updated>2026-02-16T18:57:38+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-16T18:53:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=5cf8275540d7162cd4936a7c0e76dbfe7f66b62c'/>
<id>5cf8275540d7162cd4936a7c0e76dbfe7f66b62c</id>
<content type='text'>
- Fix V3 keyboard navigation delay (resolved NK-wjats7)
- Update V3 document title to 'neko' (resolved NK-4p3s91)
- Fix V3 neko logo/button position to be top-left fixed (resolved NK-89za3s)
- Improve FeedItems (React) stability with ref-based index tracking and robust tests
- Sync V3 styling and selection feedback with V2 patterns
- Rebuild production assets
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fix V3 keyboard navigation delay (resolved NK-wjats7)
- Update V3 document title to 'neko' (resolved NK-4p3s91)
- Fix V3 neko logo/button position to be top-left fixed (resolved NK-89za3s)
- Improve FeedItems (React) stability with ref-based index tracking and robust tests
- Sync V3 styling and selection feedback with V2 patterns
- Rebuild production assets
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix v3ui: neko button fixed position</title>
<updated>2026-02-16T18:57:38+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-16T17:37:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=96e78c5fdfada73d37644083c7580a1d444ed748'/>
<id>96e78c5fdfada73d37644083c7580a1d444ed748</id>
<content type='text'>
- Remove duplicate neko logo from v3 sidebar
- Keep sidebar toggle button fixed at top-left even when sidebar is open
- Add top padding to v3 sidebar to prevent overlap with the fixed toggle button
- Update v3 tests to match UI changes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Remove duplicate neko logo from v3 sidebar
- Keep sidebar toggle button fixed at top-left even when sidebar is open
- Add top padding to v3 sidebar to prevent overlap with the fixed toggle button
- Update v3 tests to match UI changes
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix v3 theme contrast and sync with v2 colors, add v3 logo, and fix v2 test stability</title>
<updated>2026-02-16T16:59:56+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-16T16:59:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=1bed4bbd9a0606f9d3edfbf0ccfd1499793f8712'/>
<id>1bed4bbd9a0606f9d3edfbf0ccfd1499793f8712</id>
<content type='text'>
- Sync v3 dark/light theme colors with v2 defaults
- Fix v3 settings input/select contrast in dark mode
- Add logo emoji to v3 sidebar
- Fix duplicate key warnings and side-effect issues in FeedItems.tsx (v2)
- Rebuild production assets
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Sync v3 dark/light theme colors with v2 defaults
- Fix v3 settings input/select contrast in dark mode
- Add logo emoji to v3 sidebar
- Fix duplicate key warnings and side-effect issues in FeedItems.tsx (v2)
- Rebuild production assets
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement feed management in settings</title>
<updated>2026-02-16T16:34:05+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-16T16:34:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=aee026b141532c11f8eb315ca77cc23f663901ae'/>
<id>aee026b141532c11f8eb315ca77cc23f663901ae</id>
<content type='text'>
- Close NK-cuz8gh: v3 feed management
- Add 'Manage Feeds' section to settings view in v3 UI
- Implement deleteFeed and updateFeed helper functions
- Add event listeners for deleting feeds and updating tags
- Add tests for new functionality
- Created NK-cdwj52 for bulk edit feature
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Close NK-cuz8gh: v3 feed management
- Add 'Manage Feeds' section to settings view in v3 UI
- Implement deleteFeed and updateFeed helper functions
- Add event listeners for deleting feeds and updating tags
- Add tests for new functionality
- Created NK-cdwj52 for bulk edit feature
</pre>
</div>
</content>
</entry>
</feed>
