<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neko/models, branch claude/add-css-themes-QGTmP</title>
<subtitle>self-hosted, single user rss reader</subtitle>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/'/>
<entry>
<title>Apply SQL injection fix and repair CI config from fix-sql-injection branch</title>
<updated>2026-02-18T04:55:12+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-18T04:55:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=8eb86cdc49c3c2f69d8a64f855220ebd68be336c'/>
<id>8eb86cdc49c3c2f69d8a64f855220ebd68be336c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix lint error and optimize linter config for local runs</title>
<updated>2026-02-18T04:47:53+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-18T04:47:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=b0358b6777450ccd4e9fe704d76aeffe7b5a5d6e'/>
<id>b0358b6777450ccd4e9fe704d76aeffe7b5a5d6e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add full_content benchmarks to quantify payload savings (NK-ekxfvv)</title>
<updated>2026-02-17T06:35:16+00:00</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-02-17T06:35:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=5f46e1222417503b710bef375831ee75dfbcb3fc'/>
<id>5f46e1222417503b710bef375831ee75dfbcb3fc</id>
<content type='text'>
Add BenchmarkFilter_15Items_WithFullContent, BenchmarkFilter_15Items_IncludeFullContent,
and BenchmarkFilter_LargeDataset_WithFullContent. Items are seeded with realistic
~2KB full_content. Results show excluding full_content reduces B/op by ~40%
(363KB vs 595KB for 15 items).

https://claude.ai/code/session_01DpWhB9uGGMBnzqS28HxnuV
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add BenchmarkFilter_15Items_WithFullContent, BenchmarkFilter_15Items_IncludeFullContent,
and BenchmarkFilter_LargeDataset_WithFullContent. Items are seeded with realistic
~2KB full_content. Results show excluding full_content reduces B/op by ~40%
(363KB vs 595KB for 15 items).

https://claude.ai/code/session_01DpWhB9uGGMBnzqS28HxnuV
</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>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>Add performance benchmarks, stress tests, and frontend perf tests</title>
<updated>2026-02-16T18:15:47+00:00</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-02-16T18:15:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=d4caf45b2b9ea6a3276de792cf6f73085e66b1ae'/>
<id>d4caf45b2b9ea6a3276de792cf6f73085e66b1ae</id>
<content type='text'>
Go benchmarks cover item CRUD/filter/sanitization, API endpoints (stream,
item update, feed list), middleware stack (gzip, security headers, CSRF),
and crawler pipeline (feed parsing, mocked crawl). Stress tests verify
concurrent reads/writes and large dataset handling. Frontend perf tests
measure template generation, DOM insertion, and store event throughput.

New Makefile targets: bench, bench-short, stress, test-perf.

https://claude.ai/code/session_01ChDVWFDrQoFjMYHpaLGr9s
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Go benchmarks cover item CRUD/filter/sanitization, API endpoints (stream,
item update, feed list), middleware stack (gzip, security headers, CSRF),
and crawler pipeline (feed parsing, mocked crawl). Stress tests verify
concurrent reads/writes and large dataset handling. Frontend perf tests
measure template generation, DOM insertion, and store event throughput.

New Makefile targets: bench, bench-short, stress, test-perf.

https://claude.ai/code/session_01ChDVWFDrQoFjMYHpaLGr9s
</pre>
</div>
</content>
</entry>
<entry>
<title>Backend: Support multi-feed filtering in stream API</title>
<updated>2026-02-15T22:09:39+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-15T22:09:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=1d3ad564df8cc09b16172901916bcef9abe31ab4'/>
<id>1d3ad564df8cc09b16172901916bcef9abe31ab4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Backend: Fix linting issues, improve error handling, and replace magic numbers</title>
<updated>2026-02-15T21:48:34+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-15T21:48:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=2327f93098b4278c93055a96224ae82cef60b083'/>
<id>2327f93098b4278c93055a96224ae82cef60b083</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement --purge and --purge-unread flags to delete old items</title>
<updated>2026-02-15T18:51:26+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-15T18:51:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=23258137e08a2e129ca25a8f7b0c9b286518eebd'/>
<id>23258137e08a2e129ca25a8f7b0c9b286518eebd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Commit ticket updates and remaining backend lint fixes</title>
<updated>2026-02-15T16:49:46+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-15T16:49:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=038cdd6ae395eb4249ab1758d319f847beeb4549'/>
<id>038cdd6ae395eb4249ab1758d319f847beeb4549</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
