<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinos-ui.git/src/routes/(app)/pos, branch master</title>
<subtitle>coinos ui — legacy coinos.io web app (SvelteKit)</subtitle>
<id>https://git.coinos.io/coinos-ui.git/atom?h=master</id>
<link rel='self' href='https://git.coinos.io/coinos-ui.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/'/>
<updated>2026-09-22T05:49:19Z</updated>
<entry>
<title>Web flasher moves from /pos to /flash; /pos redirects there.</title>
<updated>2026-09-22T05:49:19Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-22T05:49:19Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=6735d9ec73949046932716dba90ebd9cd63b513d'/>
<id>urn:sha1:6735d9ec73949046932716dba90ebd9cd63b513d</id>
<content type='text'>
coinos v3 takes /pos for the point-of-sale till, so the terminal flasher
needs its own address. Old links keep working through the redirect.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Tmfg8k5f3TbNJS34qiqHAp
</content>
</entry>
<entry>
<title>pos: reset the device and release the serial port when leaving the flasher</title>
<updated>2026-09-14T15:24:48Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-05T03:32:43Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=57191e941016f15a9c52de7e95e7bb2a04c9de13'/>
<id>urn:sha1:57191e941016f15a9c52de7e95e7bb2a04c9de13</id>
<content type='text'>
Connecting loads the esptool stub and parks the chip in the ROM download
mode; only a successful flash reset it and closed the port. Navigating
away, a failed connect, or a failed flash left the device looking frozen
(OLED keeps its last frame, LED pin pulled up, keypad dead) with the
browser still holding the port. Reset + release on component destroy and
pagehide, on connect failure, and from a new Disconnect button.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01VMi2Y1oKPZ3TeeFmLej47y
</content>
</entry>
<entry>
<title>pos: offer "Flash latest release" from a published firmware manifest</title>
<updated>2026-09-05T03:12:59Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-05T02:52:05Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=4245a2ecc029f2908970ce3074113603acf1eae7'/>
<id>urn:sha1:4245a2ecc029f2908970ce3074113603acf1eae7</id>
<content type='text'>
Host the ESP32-C3 firmware under static/firmware (bootloader, partition
table, boot_app0, app) with a manifest.json written by coinos-pos's
publish.sh. The flasher fetches the manifest, downloads every part,
verifies sizes, flashes them at their offsets and resets the device.
The config partition is not in the manifest so credentials survive.
Manual .bin upload stays available underneath.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_014gVYGi29FjTeLdNTiutkZx
</content>
</entry>
<entry>
<title>pos: hard-reset the device after flashing</title>
<updated>2026-09-05T03:12:58Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-05T02:09:00Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=ada2d0dbb5442fc6828d4521dd2b32ad955c7cb3'/>
<id>urn:sha1:ada2d0dbb5442fc6828d4521dd2b32ad955c7cb3</id>
<content type='text'>
esptool-js leaves the chip in the ROM bootloader stub after writeFlash,
so the device appeared dead until power-cycled. Pulse RTS the way
esptool.py does, drop the port (the C3 re-enumerates), and show a
"device restarted" message next to the Connect button.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_014gVYGi29FjTeLdNTiutkZx
</content>
</entry>
<entry>
<title>pos: refuse to flash anything that is not a valid LittleFS image</title>
<updated>2026-09-05T03:12:58Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-05T02:04:41Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=e63f86a603ebae0e7c66f94bfdea69905f36f80c'/>
<id>urn:sha1:e63f86a603ebae0e7c66f94bfdea69905f36f80c</id>
<content type='text'>
The flasher hex-encoded whatever the /flash endpoint returned, so a
server error body was written to devices as the config partition.
Check the response status, require a 128KB image with the LittleFS
magic, and surface the error above the form instead.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_014gVYGi29FjTeLdNTiutkZx
</content>
</entry>
<entry>
<title>fix imports</title>
<updated>2026-02-10T01:20:06Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-02-07T06:21:30Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=f0a9d6c99bae341f8acabd932502da22d53b16a9'/>
<id>urn:sha1:f0a9d6c99bae341f8acabd932502da22d53b16a9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update flash page</title>
<updated>2025-09-27T05:21:03Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-09-27T05:21:03Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=cb10194d0c7ec20f22b46c97cf0259e091a34d30'/>
<id>urn:sha1:cb10194d0c7ec20f22b46c97cf0259e091a34d30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>default token</title>
<updated>2025-09-14T05:27:49Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-09-14T05:27:49Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=17eab850084bc4ac47ebdc4b293beb983ab11df7'/>
<id>urn:sha1:17eab850084bc4ac47ebdc4b293beb983ab11df7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pos route</title>
<updated>2025-09-11T23:03:00Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-09-11T23:01:17Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=934f87270369cd294626cf5142817edcac6c3a6c'/>
<id>urn:sha1:934f87270369cd294626cf5142817edcac6c3a6c</id>
<content type='text'>
</content>
</entry>
</feed>
