<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kukuri.git/apps, 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>G/H/P/K/L waves: JGit-CID full connection (attachments committed to git + cid-&gt;blob index + missing-CID sync + persistent block stores); org-mode source of truth (round-trip, JGit commits, PoA state machine); real OrgFlow Pack (manifest/sha256, receiver restore, sourceCommitSha); slide collab over mesh (collab.slide.op=17); relay server forwarding; PoA real signatures (Ed25519/WebCrypto) + persistence; pie redesign (quadrant+D-arc); attachments on notes/calendar; GRAPH+INK cards; pptx export/import; wasm pack receive; kotlin daemon 4GB; wiring sweep</title>
<updated>2026-08-30T15:10:05+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-30T15:10:05+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=e2010554a92f4dbab495ba2ade9b121738430f70'/>
<id>e2010554a92f4dbab495ba2ade9b121738430f70</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>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>
<entry>
<title>desktop fat jar: bundle skiko natives for all desktop OSes</title>
<updated>2026-08-28T17:13:36+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-28T17:13:36+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=b399dbd6ab6d0597998d0fe068c2178bf6d4dfa4'/>
<id>b399dbd6ab6d0597998d0fe068c2178bf6d4dfa4</id>
<content type='text'>
compose.desktop.currentOs resolved only linux-x64 runtime, so Windows/macOS
users hit missing skiko-windows64.dll(.sha256) on launch. Add explicit
skiko-awt-runtime-{windows-x64,macos-arm64,macos-x64} 0.9.4.2 (aligned with
CMP 1.8.2) extracted into the fat jar; jar now carries linux/windows/macos
natives (66MB) and boots clean on linux
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
compose.desktop.currentOs resolved only linux-x64 runtime, so Windows/macOS
users hit missing skiko-windows64.dll(.sha256) on launch. Add explicit
skiko-awt-runtime-{windows-x64,macos-arm64,macos-x64} 0.9.4.2 (aligned with
CMP 1.8.2) extracted into the fat jar; jar now carries linux/windows/macos
natives (66MB) and boots clean on linux
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix desktop app: OrgFlowRoute class-init cycle + real UI in desktop bundle</title>
<updated>2026-08-28T15:19:19+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-28T15:19:19+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=c9b305378b70685f59d1eca98d906180d0afe2b4'/>
<id>c9b305378b70685f59d1eca98d906180d0afe2b4</id>
<content type='text'>
- OrgFlowRoute.all: lazy init — eager companion array froze a null when
  OrgFlowNavigation's default (Home) triggered subclass-first class init;
  crashed OrgFlowApp composition with NPE at route.id (verified under Xvfb,
  fixed build runs clean with all 8 nav entries rendered)
- bundleDesktop now packages apps/desktop fat jar (Main-Class
  jp.orgflow.app.desktop.MainKt, deps merged) + launcher; verified
  java -jar boots the Compose UI headless (Xvfb) without exceptions
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- OrgFlowRoute.all: lazy init — eager companion array froze a null when
  OrgFlowNavigation's default (Home) triggered subclass-first class init;
  crashed OrgFlowApp composition with NPE at route.id (verified under Xvfb,
  fixed build runs clean with all 8 nav entries rendered)
- bundleDesktop now packages apps/desktop fat jar (Main-Class
  jp.orgflow.app.desktop.MainKt, deps merged) + launcher; verified
  java -jar boots the Compose UI headless (Xvfb) without exceptions
</pre>
</div>
</content>
</entry>
<entry>
<title>Deepen 1st Division + integration: config loading, ACO feedback, TCP relay/signaling, apps wired to UI</title>
<updated>2026-08-27T23:41:22+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-27T23:41:22+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=6aedca2fea70f9a5acdc06c6263c6e1b7b5a773c'/>
<id>6aedca2fea70f9a5acdc06c6263c6e1b7b5a773c</id>
<content type='text'>
- fsmp-core: FsmpConfigLoader (fsmp-defaults/waterline/ob-sca-v/aco/peer-limits
  JSON via okio, partial+corrupt tolerant), OB-SCA-V weights wired from config,
  FsmpEngine.applyFeedback feeds ACO route learning, ChunkMind priority uses
  routeScores, simulation tests (full mesh, slow peer, repair storm cap, feedback)
- fsmp-transport: TcpSignalingClient (JVM sockets, replay buffer) + LoopbackDataChannelPort
  pair with tests
- fsmp-relay: RelayStateStore (okio atomic JSON snapshot), TcpRelayServer (HELLO
  handshake, base64 chunk frames, OK/DROP acks), RelayServerMain --port/--state wiring
- orgflow-debug: DecisionTraceAdapter maps fsmp-core DecisionTrace to measurement
  events; drop duplicate Measurement classes from orgflow-domain
- apps: desktop uses OrgFlowApp (nav shell), Android exercises coordinator+capture
- zero-bridge-api: add iosArm64/iosSimulatorArm64/iosX64 targets
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- fsmp-core: FsmpConfigLoader (fsmp-defaults/waterline/ob-sca-v/aco/peer-limits
  JSON via okio, partial+corrupt tolerant), OB-SCA-V weights wired from config,
  FsmpEngine.applyFeedback feeds ACO route learning, ChunkMind priority uses
  routeScores, simulation tests (full mesh, slow peer, repair storm cap, feedback)
- fsmp-transport: TcpSignalingClient (JVM sockets, replay buffer) + LoopbackDataChannelPort
  pair with tests
- fsmp-relay: RelayStateStore (okio atomic JSON snapshot), TcpRelayServer (HELLO
  handshake, base64 chunk frames, OK/DROP acks), RelayServerMain --port/--state wiring
- orgflow-debug: DecisionTraceAdapter maps fsmp-core DecisionTrace to measurement
  events; drop duplicate Measurement classes from orgflow-domain
- apps: desktop uses OrgFlowApp (nav shell), Android exercises coordinator+capture
- zero-bridge-api: add iosArm64/iosSimulatorArm64/iosX64 targets
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix baseline compile: AndroidX flag, PresentationExporter dup, dp import, Android driver schema</title>
<updated>2026-08-27T11:38:01+00:00</updated>
<author>
<name>ketsuban</name>
<email>ketsuban@kukuri.dev</email>
</author>
<published>2026-08-27T11:38:01+00:00</published>
<link rel='alternate' type='text/html' href='https://openpgpkey.dangofactory.net/cgit/cgit.cgi/kukuri.git/commit/?id=54e1397fbbfc7e82074fceaabaf9b64a01f06324'/>
<id>54e1397fbbfc7e82074fceaabaf9b64a01f06324</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
