<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neko/crawler, 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>Refactor: project structure, implement dependency injection, and align v2 UI with v1</title>
<updated>2026-02-14T16:58:38+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-14T16:58:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=e3c379d069ffa9661561d25cdbf2f5894a2f8ee8'/>
<id>e3c379d069ffa9661561d25cdbf2f5894a2f8ee8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: cleanup ignored files</title>
<updated>2026-02-14T02:43:55+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-14T02:43:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=b7f2a8ecf06a3ae190cab9a26e157dd2c586f7e7'/>
<id>b7f2a8ecf06a3ae190cab9a26e157dd2c586f7e7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(backend): improve testability and add tests (NK-6q9nyg)</title>
<updated>2026-02-14T02:43:03+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-14T02:43:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=21b4eec6c1e096573bcd5f2079bc21e23a960621'/>
<id>21b4eec6c1e096573bcd5f2079bc21e23a960621</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add comprehensive test suite — 81% cross-package coverage</title>
<updated>2026-02-13T03:55:05+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@adammathes.com</email>
</author>
<published>2026-02-13T03:55:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=16186a344a7b61633cb7342aac37ac56ad83d261'/>
<id>16186a344a7b61633cb7342aac37ac56ad83d261</id>
<content type='text'>
Bug fixes:
- config: remove unused log import
- item: fix Printf format %d-&gt;%t for boolean ReadState
- util: update stale config.Read -&gt; config.Init, remove config.Config.DBServer

Test files added:
- config/config_test.go: Init, readConfig, addDefaults (100%)
- vlog/vlog_test.go: Printf, Println verbose/silent (100%)
- models/db_test.go: InitDB tests
- models/feed/feed_test.go: CRUD, filter, Categories, NewFeed, ResolveFeedURL (87%)
- models/item/item_test.go: CRUD, Filter with category/search/starred, rewriteImages (71%)
- exporter/exporter_test.go: all export formats (91%)
- importer/importer_test.go: InsertIItem, ImportJSON (90%)
- crawler/crawler_test.go: GetFeedContent, CrawlFeed, CrawlWorker, Crawl (89%)
- web/web_test.go: auth, login/logout, stream, item, feed, category,
  export, crawl, imageProxy handlers (77%)

Remaining 0% functions require HTTP/rice.MustFindBox/main entry and
can't be unit tested without refactoring (see tickets NK-gqkh96, NK-6q9nyg).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug fixes:
- config: remove unused log import
- item: fix Printf format %d-&gt;%t for boolean ReadState
- util: update stale config.Read -&gt; config.Init, remove config.Config.DBServer

Test files added:
- config/config_test.go: Init, readConfig, addDefaults (100%)
- vlog/vlog_test.go: Printf, Println verbose/silent (100%)
- models/db_test.go: InitDB tests
- models/feed/feed_test.go: CRUD, filter, Categories, NewFeed, ResolveFeedURL (87%)
- models/item/item_test.go: CRUD, Filter with category/search/starred, rewriteImages (71%)
- exporter/exporter_test.go: all export formats (91%)
- importer/importer_test.go: InsertIItem, ImportJSON (90%)
- crawler/crawler_test.go: GetFeedContent, CrawlFeed, CrawlWorker, Crawl (89%)
- web/web_test.go: auth, login/logout, stream, item, feed, category,
  export, crawl, imageProxy handlers (77%)

Remaining 0% functions require HTTP/rice.MustFindBox/main entry and
can't be unit tested without refactoring (see tickets NK-gqkh96, NK-6q9nyg).
</pre>
</div>
</content>
</entry>
<entry>
<title>close results channel</title>
<updated>2018-07-07T22:31:47+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2018-07-07T22:31:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=858af730c2fa12c9fdb66a5111559f91352276a3'/>
<id>858af730c2fa12c9fdb66a5111559f91352276a3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add \n to stored item logging</title>
<updated>2018-07-05T01:06:06+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2018-07-05T01:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=c1a6657fb4a8f829f039565f30fead67f751a1a0'/>
<id>c1a6657fb4a8f829f039565f30fead67f751a1a0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>spelling</title>
<updated>2018-07-05T00:12:39+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2018-07-05T00:12:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=150cd9b3362917d6d7538afab2c3ae7f6a594053'/>
<id>150cd9b3362917d6d7538afab2c3ae7f6a594053</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>set limit to number of simultaneous crawl jobs</title>
<updated>2018-04-30T18:41:42+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2018-04-30T18:41:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=e9f84c8a3d399789fc49ce0ee50ba257261b9e80'/>
<id>e9f84c8a3d399789fc49ce0ee50ba257261b9e80</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>opml export</title>
<updated>2018-04-07T16:24:06+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2018-04-07T16:24:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=e0702a70437eea543aaa51264272dcbc3d652779'/>
<id>e0702a70437eea543aaa51264272dcbc3d652779</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>remove extra printing in crawler</title>
<updated>2018-03-03T04:42:47+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2018-03-03T04:42:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=c7e4f06d626561859f429c876e186baa75713e9d'/>
<id>c7e4f06d626561859f429c876e186baa75713e9d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
