<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neko/.thicket, branch claude/investigate-theme-performance-GjjYA</title>
<subtitle>self-hosted, single user rss reader</subtitle>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/'/>
<entry>
<title>Update thicket tickets: close resolved tickets, add future work</title>
<updated>2026-02-17T06:47:29+00:00</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-02-17T06:47:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=93999ee6507d9c381b96dce58602e22280709832'/>
<id>93999ee6507d9c381b96dce58602e22280709832</id>
<content type='text'>
Closed: NK-t8qnrh, NK-mcl01m, NK-pbqvke, NK-z1czaq, NK-ekxfvv,
        NK-tktg7s, NK-ax2vlc, NK-26sdqp
Created: NK-u9dlcx (frontend linting), NK-2ylt2b (dark mode tests),
         NK-q7a6kb (safehttp proxy bypass test), NK-0fjzr6 (stream benchmark)

https://claude.ai/code/session_01DpWhB9uGGMBnzqS28HxnuV
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closed: NK-t8qnrh, NK-mcl01m, NK-pbqvke, NK-z1czaq, NK-ekxfvv,
        NK-tktg7s, NK-ax2vlc, NK-26sdqp
Created: NK-u9dlcx (frontend linting), NK-2ylt2b (dark mode tests),
         NK-q7a6kb (safehttp proxy bypass test), NK-0fjzr6 (stream benchmark)

https://claude.ai/code/session_01DpWhB9uGGMBnzqS28HxnuV
</pre>
</div>
</content>
</entry>
<entry>
<title>more tickets for claude</title>
<updated>2026-02-17T06:17:19+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2026-02-17T06:17:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=c15995fe944a6e8f3e68cf0c44fd454e53f21081'/>
<id>c15995fe944a6e8f3e68cf0c44fd454e53f21081</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>more tickets for claude</title>
<updated>2026-02-17T06:13:16+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2026-02-17T06:13:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=d7486c3e35a0f7ac6d11fb9105b549aace8459eb'/>
<id>d7486c3e35a0f7ac6d11fb9105b549aace8459eb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<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>
</feed>
