<feed xmlns='http://www.w3.org/2005/Atom'>
<title>papod/Makefile, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://euandre.org/git/papod/atom?h=main</id>
<link rel='self' href='http://euandre.org/git/papod/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/'/>
<updated>2026-04-24T17:45:13Z</updated>
<entry>
<title>Implement core IRC commands: QUIT, AWAY, NOTICE, WHOIS, USERHOST</title>
<updated>2026-04-24T17:45:13Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2026-04-24T17:45:13Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=9b4dd184568819330cad09d26d526cdde6fb73d2'/>
<id>urn:sha1:9b4dd184568819330cad09d26d526cdde6fb73d2</id>
<content type='text'>
- QUIT: notify channel members, clean up client/channel state, close
  connection properly
- AWAY: set/clear away status with RPL_NOWAWAY/RPL_UNAWAY, send
  RPL_AWAY on PRIVMSG to away users
- NOTICE: deliver to channels and users without error replies (per RFC)
- WHOIS: return RPL_WHOISUSER + RPL_AWAY + RPL_ENDOFWHOIS
- USERHOST: return RPL_USERHOST with away indicator
- PRIVMSG: return ERR_NOSUCHNICK (401) for nonexistent targets,
  ERR_NOTEXTTOSEND (412) for empty messages
- USER: reject empty realname with ERR_NEEDMOREPARAMS (461)
- PING: handle empty token (PING :) as ERR_NOORIGIN (409)
- Add TCP listen support via PAPOD_TCP_PORT for direct irctest
  compatibility (bypasses binder proxy)
- Fix member creation to handle reconnection with same nick (upsert)
- Fix client-loop! to check :quit? after process-input! returns
- Move AWAY, NOTICE, WHOIS, USERHOST, MODE, WHO before network check
  (they don't require network context)
- Store client-atom reference in clients map for cross-client state
  access

Tests: 207 unit assertions (15 tests), 21 integration assertions
(10 tests), 122 irctest acceptance tests pass.
</content>
</entry>
<entry>
<title>m</title>
<updated>2026-04-22T01:16:16Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2026-04-22T01:16:16Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=64dbf930f11a1d1a70f970627e23ab82ab188528'/>
<id>urn:sha1:64dbf930f11a1d1a70f970627e23ab82ab188528</id>
<content type='text'>
</content>
</entry>
<entry>
<title>m</title>
<updated>2026-04-22T01:16:06Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2026-04-22T01:16:06Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=f478620978ae884aa5e7a0ddb742faa5cb23ae3a'/>
<id>urn:sha1:f478620978ae884aa5e7a0ddb742faa5cb23ae3a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove SQLite code</title>
<updated>2025-09-20T18:50:05Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2025-09-20T18:45:46Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=aee466b543b9d87a0206a59b1ade4686aa1f459e'/>
<id>urn:sha1:aee466b543b9d87a0206a59b1ade4686aa1f459e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update to latest project skeleton: i18n and fine-grained fuzzing</title>
<updated>2025-05-29T12:18:00Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2025-05-29T12:18:00Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=3da803b0ff65cf2af71b810ec8fbd28307280d79'/>
<id>urn:sha1:3da803b0ff65cf2af71b810ec8fbd28307280d79</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make: Use $&lt; over $?</title>
<updated>2025-05-04T08:16:34Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2025-05-04T08:16:34Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=cc2cf1e3c3894f39fbc4e98a6764f39bb0ef1c2d'/>
<id>urn:sha1:cc2cf1e3c3894f39fbc4e98a6764f39bb0ef1c2d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement most of db layer</title>
<updated>2025-01-17T12:51:33Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2024-11-21T14:04:08Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=65de65ce1e34efeb421974bcb5ddd85fb53253bb'/>
<id>urn:sha1:65de65ce1e34efeb421974bcb5ddd85fb53253bb</id>
<content type='text'>
Many missing implementations or tests are marked with FIXME so I don't
loose track of holes in the code.
</content>
</entry>
<entry>
<title>src/papod.go: Integrate db layer with network, create command handlers, simplify network loop</title>
<updated>2024-11-04T18:50:31Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2024-11-04T12:13:33Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=1feab2105ac464747b231232f53f4ac335f4467f'/>
<id>urn:sha1:1feab2105ac464747b231232f53f4ac335f4467f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Makefile: Prioritize local version when building and linking</title>
<updated>2024-10-29T20:15:30Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2024-10-29T20:15:30Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=5c70bcd5576a675d7835fac26494f5bc1e7cda03'/>
<id>urn:sha1:5c70bcd5576a675d7835fac26494f5bc1e7cda03</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Big bundle commit: adjust build project skeleton; include uncommitted code</title>
<updated>2024-10-26T19:47:14Z</updated>
<author>
<name>EuAndreh</name>
<email>eu@euandre.org</email>
</author>
<published>2024-10-26T18:47:57Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/papod/commit/?id=da12c61343f988a6f19f65bf7be331298bc1cca8'/>
<id>urn:sha1:da12c61343f988a6f19f65bf7be331298bc1cca8</id>
<content type='text'>
There was some code that was being slowly tweaked as I'd work or related
things on other repositories that wasn't committed step by step, and
that now I'd rather include all as a single changeset, single there
weren't really separated stages on how it was developed.

Other than that, this commit includes adjustments on dependencies API
usage, as they changed during my work on them, and adjustments on the
build and test system, as I improved how they worked also during work on
other projects.

As of this commit, the code compiles and the tests pass.  I can't recall
if this was true before this commit, but it is true now.
</content>
</entry>
</feed>
