<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kukuri.git, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/'/>
<entry>
<title>T1-T4: wasm BrowserRtcPlatform datachannel+real pack transfer; webrtc-java camera/video (JvmCamera, I420); ICE servers consumed; chat threadId wire; pack LRU eviction; store persistence (OPFS/file) + notification scheduler; UI integration sweep (room dialog real, onboarding, experiment/presentation store wiring, filter consumption, WorkspaceScreen absorbed); Jenkinsfile full matrix</title>
<updated>2026-08-30T00:44:50+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-30T00:44:50+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=c552d91beabf74a314e25d595606cd4ac832fbbd'/>
<id>c552d91beabf74a314e25d595606cd4ac832fbbd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ci: retrigger after daemon kill</title>
<updated>2026-08-29T16:58:01+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T16:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=5880a392c6b7f4493004a8fb2cd0e3d1c3f9a276'/>
<id>5880a392c6b7f4493004a8fb2cd0e3d1c3f9a276</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>W11: U-22 billiard FSMP reproduction page (physics sim, ACO-lite pheromone, waterline, Billiard re-route, TTU stats, MeasurementEvent log)</title>
<updated>2026-08-29T16:55:32+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T16:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=719704be16939c3e02ab6781ad65e7db12b51d6c'/>
<id>719704be16939c3e02ab6781ad65e7db12b51d6c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>W4/W8/W9/W10/W13/W15/W17: item chat + Home flow/pins + PoA roles; Live media (screen share/camera via zero-bridge, CID frames); collaborative card-note sync over FSMP chat channel; signaling auto-reconnect + --serve-signaling; GUI-Lisp evaluator + host API; seedFixtures off by default; fsmp-relay race fix</title>
<updated>2026-08-29T16:25:10+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T16:25:10+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=7d42fee07dad9b264fe40463ff28f3d3ab236e94'/>
<id>7d42fee07dad9b264fe40463ff28f3d3ab236e94</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>W2/W12/W14/W16: wasm runtime+config; CID block store (JVM+OPFS); msg_type numbering; UX overhaul (set model, pie menu nav, Create/Note/Calendar/Live, card notes, gid multi-membership chat transport); 3-peer E2E proven</title>
<updated>2026-08-29T14:24:12+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T14:24:12+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=b49e7f8d70daa1ab817737f85447ae1dcc50adaa'/>
<id>b49e7f8d70daa1ab817737f85447ae1dcc50adaa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rooms+QR+Calendar+Experiment: shared app store; room-scoped signaling (roomId routing, atomic join); QR matrix render/paste-join; calendar union view + notifications; Excel-like formulas + GUI-Lisp demos</title>
<updated>2026-08-29T07:14:23+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T07:14:23+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=9969ad9e7669dbae5027574d34da72306f4c6958'/>
<id>9969ad9e7669dbae5027574d34da72306f4c6958</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>UI: no Dispatchers.Main in commonMain VMs; real workspace pack distribution; QR bootstrap invite</title>
<updated>2026-08-29T03:05:17+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T03:05:17+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=695fc4ed3fa3e4e86affb3c558f7c04a428342d9'/>
<id>695fc4ed3fa3e4e86affb3c558f7c04a428342d9</id>
<content type='text'>
- DistributionViewModel/ConfigViewModel no longer own Main-dispatcher
  scopes (crashed where no Main dispatcher exists); observe() is suspend
  and runs in the composition's LaunchedEffect
- startDistribution() builds a real OrgFlow Pack from workspace org text
  when none offered (GUI button now actually distributes)
- Workspace invite emits FSMP1 QrBootstrapPayload (workspaceId,
  signalingEndpoint, sessionToken, expiry) instead of the fake token
- ContentTransferService.onSenderComplete -&gt; DistributionSnapshot.
  completedPeers so senders finish deterministically
- web index.html cache-buster (?v=web3) for stale bundle diagnosis
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- DistributionViewModel/ConfigViewModel no longer own Main-dispatcher
  scopes (crashed where no Main dispatcher exists); observe() is suspend
  and runs in the composition's LaunchedEffect
- startDistribution() builds a real OrgFlow Pack from workspace org text
  when none offered (GUI button now actually distributes)
- Workspace invite emits FSMP1 QrBootstrapPayload (workspaceId,
  signalingEndpoint, sessionToken, expiry) instead of the fake token
- ContentTransferService.onSenderComplete -&gt; DistributionSnapshot.
  completedPeers so senders finish deterministically
- web index.html cache-buster (?v=web3) for stale bundle diagnosis
</pre>
</div>
</content>
</entry>
<entry>
<title>Worker image: add X11/ALSA/PulseAudio for webrtc-java natives; start pulse daemon with worker</title>
<updated>2026-08-29T01:08:34+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T01:08:34+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=e0b0babe102c23790d8d2973b912e490417a50f5'/>
<id>e0b0babe102c23790d8d2973b912e490417a50f5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix orgflow-ui ViewModelTest for new DistributionViewModel API</title>
<updated>2026-08-29T00:48:24+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T00:48:24+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=aba4918bd31c7b3f8e94e09825744e852ff9f397'/>
<id>aba4918bd31c7b3f8e94e09825744e852ff9f397</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Real WebRTC P2P: FSMP content transfer over DataChannels (desktop+wasm)</title>
<updated>2026-08-29T00:42:05+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-29T00:42:05+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=f6f6075f99b9ecc53e876b56263792e003d1c4da'/>
<id>f6f6075f99b9ecc53e876b56263792e003d1c4da</id>
<content type='text'>
Replace the staged demo with a working end-to-end path:
- fsmp-core session/: ContentChunker/SenderSession/ReceiverSession with
  real chunk bytes, sha256 verify (hash-check before dedup), ACK bitmaps,
  repair selection, manifest verification on assembly
- fsmp-transport: WebRtcMeshTransport (offer/answer/ICE trickle over
  signaling, initiator election, pending-ICE buffering), RtcPlatform seam,
  ContentTransferService (wire = JSON w/ Base64 payloads under SCTP 64KB)
- JVM: dev.onvoid webrtc-java adapter (OnVoidRtcPlatform), JDK HttpClient
  WebSocket signaling client, raw-RFC6455 WsSignalingServer (Ktor CIO
  dropped frames cross-session; replaced)
- wasmJs: browser() target added, common mesh compiles; browser RTC via
  externals lands with zero-bridge work
- services/signaling-server: standalone WS signaling main
- apps/desktop: DesktopDistributionRuntime wires FsmpEngine scheduler -&gt;
  plan -&gt; pump -&gt; transport -&gt; feedback -&gt; ACO; DesktopConfigStore
  (ORGFLOW_CONFIG_DIR / XDG), FsmpConfigWriter round-trip, P2pDemoMain
  (makepack/sender/receiver/signaling roles)
- orgflow-ui: Distribution screen binds real snapshots; new Config screen
  (slider edits persist to config dir, engine hot-rebuild)
- FluidInjectionPlanner: never drop REPAIR candidates (waterline met)

Proven in-container: 2 processes + signaling, 525013B pack transferred,
manifest verified, files byte-identical.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the staged demo with a working end-to-end path:
- fsmp-core session/: ContentChunker/SenderSession/ReceiverSession with
  real chunk bytes, sha256 verify (hash-check before dedup), ACK bitmaps,
  repair selection, manifest verification on assembly
- fsmp-transport: WebRtcMeshTransport (offer/answer/ICE trickle over
  signaling, initiator election, pending-ICE buffering), RtcPlatform seam,
  ContentTransferService (wire = JSON w/ Base64 payloads under SCTP 64KB)
- JVM: dev.onvoid webrtc-java adapter (OnVoidRtcPlatform), JDK HttpClient
  WebSocket signaling client, raw-RFC6455 WsSignalingServer (Ktor CIO
  dropped frames cross-session; replaced)
- wasmJs: browser() target added, common mesh compiles; browser RTC via
  externals lands with zero-bridge work
- services/signaling-server: standalone WS signaling main
- apps/desktop: DesktopDistributionRuntime wires FsmpEngine scheduler -&gt;
  plan -&gt; pump -&gt; transport -&gt; feedback -&gt; ACO; DesktopConfigStore
  (ORGFLOW_CONFIG_DIR / XDG), FsmpConfigWriter round-trip, P2pDemoMain
  (makepack/sender/receiver/signaling roles)
- orgflow-ui: Distribution screen binds real snapshots; new Config screen
  (slider edits persist to config dir, engine hot-rebuild)
- FluidInjectionPlanner: never drop REPAIR candidates (waterline met)

Proven in-container: 2 processes + signaling, 525013B pack transferred,
manifest verified, files byte-identical.
</pre>
</div>
</content>
</entry>
</feed>
