<feed xmlns='http://www.w3.org/2005/Atom'>
<title>meshbay.git/packages/meshbay-android, branch main</title>
<subtitle>MeshBay — read-only public mirror</subtitle>
<id>https://git.meshbay.org/meshbay.git/atom?h=main</id>
<link rel='self' href='https://git.meshbay.org/meshbay.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/'/>
<updated>2026-10-04T20:46:00Z</updated>
<entry>
<title>feat(android): music keeps playing with the screen off</title>
<updated>2026-10-04T20:46:00Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-04T20:46:00Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=652465910dcdcc761aa2e078ff1a82625e2a0aa5'/>
<id>urn:sha1:652465910dcdcc761aa2e078ff1a82625e2a0aa5</id>
<content type='text'>
While a track plays, the page asks the shell to stay awake
(playback:keep-alive): on Android the cast's foreground service and
visible WebView, with a notification; on desktop a power save blocker.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix(android): music player starts on its own and no longer shows autoplay refusals</title>
<updated>2026-10-04T20:19:28Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-04T20:19:28Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=983d576e1cc2359505fa4fc0c0c689ec65c99e86'/>
<id>urn:sha1:983d576e1cc2359505fa4fc0c0c689ec65c99e86</id>
<content type='text'>
WebView now allows play() after the track fetch; a NotAllowedError leaves
the track waiting for the play button instead of raising an error.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Cast: receiver position and pause/play on both clients</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T11:44:47Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=ab0ba3db76d1accec1ca944e62b325c8d92592a6'/>
<id>urn:sha1:ab0ba3db76d1accec1ca944e62b325c8d92592a6</id>
<content type='text'>
The player's remote mode reads where the television is instead of the
local playhead, which drifts.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix(android): cast context created at launch, session found if its callback is missed</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T11:36:19Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=1f19ccaa583734951d5fcccebb06b073a2b1a111'/>
<id>urn:sha1:1f19ccaa583734951d5fcccebb06b073a2b1a111</id>
<content type='text'>
As the SDK recommends; and a connected session the listener did not hear of
still counts, so a missed callback no longer fails the cast.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix(android): the cast header is everything before the first moof</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T11:36:19Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=67af4248c97d2e1568e5c22179fa0026dbbc5219'/>
<id>urn:sha1:67af4248c97d2e1568e5c22179fa0026dbbc5219</id>
<content type='text'>
The node's first chunk can be the 28-byte ftyp alone, the moov in the next;
served as the header, the receiver had no moov and gave up. A receiver early
for the header now waits for all of it.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>chore(android): release builds signed with the debug key for now</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T10:53:35Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=721ad9b77f7513d341e3c7aa4817d1c2474f749e'/>
<id>urn:sha1:721ad9b77f7513d341e3c7aa4817d1c2474f749e</id>
<content type='text'>
Not debuggable, no WebView devtools, no console forwarding; installs over a
debug build and back. A stand-in until the release key (Stage D12).

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix(android): the cast relay spools a receiver's lead to disk</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T10:53:35Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=cf8345386996c561f176049b2f83fbd07956995e'/>
<id>urn:sha1:cf8345386996c561f176049b2f83fbd07956995e</id>
<content type='text'>
Fragments are 5-10 MB at a film's bitrate; dropped past 8 MB in memory, the
TV froze for their length. Each receiver now reads from its own spool file,
deleted with it; nothing is dropped short of a disk bound.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): log what a cast does downstream of the relay</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T09:14:51Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=e7d663b76e58354d6a1b58f40624427d5ae660c8'/>
<id>urn:sha1:e7d663b76e58354d6a1b58f40624427d5ae660c8</id>
<content type='text'>
Fragments dropped for a slow receiver, writes that block, a periodic per-client
summary, and every receiver state change with its position — the only trace a
freeze on the television leaves.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): the MeshBay icon</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T08:31:48Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=c6660c21cd4da352b710631363d494c56feffc8e'/>
<id>urn:sha1:c6660c21cd4da352b710631363d494c56feffc8e</id>
<content type='text'>
The desktop client's icon in the adaptive icon's safe zone, over its own edge
colour, so no launcher mask crops the M.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix(android): cast relay serves a clean header and restarts on its ports</title>
<updated>2026-10-03T12:24:54Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-03T08:30:05Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=025b0e0289b7884c4ead980d91b2e659632e1808'/>
<id>urn:sha1:025b0e0289b7884c4ead980d91b2e659632e1808</id>
<content type='text'>
The init is what precedes the first moof; ports are reused like Node's; the
SDK is read on the main thread; a cast that fails says why on screen, and
success waits until the receiver actually plays. Never a VPN's address.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
