<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ao2-client, branch master</title>
<subtitle>AO2 client fork</subtitle>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/'/>
<entry>
<title>Provide more information in About page</title>
<updated>2026-03-30T13:07:11+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-25T06:05:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=b21dfd36cdafd76b5538383279d28b003188fa19'/>
<id>b21dfd36cdafd76b5538383279d28b003188fa19</id>
<content type='text'>
- Downstream version and the upstream revision it's based on
  (commit and date)

- URL to our modified source code.

- miniaudio and libsodium versions.

- Build profile (release, dev, or debug).

Also, stop checking for updates.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Downstream version and the upstream revision it's based on
  (commit and date)

- URL to our modified source code.

- miniaudio and libsodium versions.

- Build profile (release, dev, or debug).

Also, stop checking for updates.
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop Qt major version checks</title>
<updated>2026-03-30T13:07:11+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-25T03:45:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=f86a8fe59b6b41229cc9353d3144d0381494fed1'/>
<id>f86a8fe59b6b41229cc9353d3144d0381494fed1</id>
<content type='text'>
We only support Qt 6, remove all conditional code that was dependent on
earlier versions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We only support Qt 6, remove all conditional code that was dependent on
earlier versions.
</pre>
</div>
</content>
</entry>
<entry>
<title>CRLF to LF in append_to_file</title>
<updated>2026-03-30T13:07:11+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-24T23:34:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=80951bce78279a5e306983962b7367b7e1735fa8'/>
<id>80951bce78279a5e306983962b7367b7e1735fa8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable logging to text files by default</title>
<updated>2026-03-30T13:07:11+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-24T23:32:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=f3db43e40ad7d83a7ac185469920c94fc8d090cd'/>
<id>f3db43e40ad7d83a7ac185469920c94fc8d090cd</id>
<content type='text'>
Let users explicitly enable logging if they so desire. Don't clutter the
disk space and perform I/O for each line when the rest are unaware.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let users explicitly enable logging if they so desire. Don't clutter the
disk space and perform I/O for each line when the rest are unaware.
</pre>
</div>
</content>
</entry>
<entry>
<title>Constrain the lifetime of the demo server</title>
<updated>2026-03-30T13:07:11+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-24T23:10:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=14a48530d911e9d9d0539eb4c273ce1379534607'/>
<id>14a48530d911e9d9d0539eb4c273ce1379534607</id>
<content type='text'>
Demo server was being deleted and recreated every time the lobby was
constructed, so it was always active. This rendered the "are we playing
a demo" checks useless as they always assumed we did. Logs didn't work
because of it, for example.

Construct the demo server only when the user selects demo playback, and
destroy it during the destruction of courtroom.

Make log_filename based on the application path, so `logs` subdirectory
is created relative to the executable rather than the working directory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Demo server was being deleted and recreated every time the lobby was
constructed, so it was always active. This rendered the "are we playing
a demo" checks useless as they always assumed we did. Logs didn't work
because of it, for example.

Construct the demo server only when the user selects demo playback, and
destroy it during the destruction of courtroom.

Make log_filename based on the application path, so `logs` subdirectory
is created relative to the executable rather than the working directory.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move image plugin status to "About" page</title>
<updated>2026-03-30T13:07:11+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-22T17:59:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=4858f1d4049d514cc99792c7ff13518dfe95398c'/>
<id>4858f1d4049d514cc99792c7ff13518dfe95398c</id>
<content type='text'>
Remove the error dialog that pops up if an image format is missing.

Check AVIF, WebP, and APNG support, and report their status. As it
stands, WebP should be supported by Qt itself, and AVIF has yet to be
added. The rest (like PNG and JPEG) are on by default.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the error dialog that pops up if an image format is missing.

Check AVIF, WebP, and APNG support, and report their status. As it
stands, WebP should be supported by Qt itself, and AVIF has yet to be
added. The rest (like PNG and JPEG) are on by default.
</pre>
</div>
</content>
</entry>
<entry>
<title>Document fork information in README</title>
<updated>2026-03-30T13:07:11+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-23T21:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=4bb7dc795d672ce709bdb2969e6220933d651f6f'/>
<id>4bb7dc795d672ce709bdb2969e6220933d651f6f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Delete old files</title>
<updated>2026-03-29T22:22:25+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-23T21:42:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=4c2ca07ee4c71fae4778b895d17c8e56439a369d'/>
<id>4c2ca07ee4c71fae4778b895d17c8e56439a369d</id>
<content type='text'>
configure.sh isn't used to build this.

README_LINUX.md is inapplicable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
configure.sh isn't used to build this.

README_LINUX.md is inapplicable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle extension packets using binary frames</title>
<updated>2026-03-29T22:22:25+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-22T18:56:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=d6352bc889638b82a887e0a1a138f2b8086dbbdb'/>
<id>d6352bc889638b82a887e0a1a138f2b8086dbbdb</id>
<content type='text'>
The subprotocol shall use binary frames, and AO protocol stays separated
within the text frames.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The subprotocol shall use binary frames, and AO protocol stays separated
within the text frames.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add authentication dialog</title>
<updated>2026-03-29T22:22:25+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-03-22T18:55:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/ao2-client/commit/?id=a124f46861d549ddc13485536962e34d80de939a'/>
<id>a124f46861d549ddc13485536962e34d80de939a</id>
<content type='text'>
Introduce start_auth_flow, a function invoked by typing `/auth username`
in OOC. It sends an public-key authentication request to the server,
starting the entire flow.

The flow invoves two dialogs: to select the key, and to enter the
passphrase to unlock the key. For convenience, each successful unlock
also remembers the key for that username on the server, storing this
in `saved_auth.json` (I chose JSON because I wanted it to stay
human-editable; INI would be better, but it suffers from bad platform
quirks in Qt).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce start_auth_flow, a function invoked by typing `/auth username`
in OOC. It sends an public-key authentication request to the server,
starting the entire flow.

The flow invoves two dialogs: to select the key, and to enter the
passphrase to unlock the key. For convenience, each successful unlock
also remembers the key for that username on the server, storing this
in `saved_auth.json` (I chose JSON because I wanted it to stay
human-editable; INI would be better, but it suffers from bad platform
quirks in Qt).
</pre>
</div>
</content>
</entry>
</feed>
