snow-flow 10.0.130 → 10.0.132

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
- "version": "10.0.130",
3
+ "version": "10.0.132",
4
4
  "name": "snow-flow",
5
5
  "description": "Snow-Flow - ServiceNow Multi-Agent Development Framework powered by AI",
6
6
  "license": "Elastic-2.0",
@@ -151,12 +151,8 @@ export function tui(input: {
151
151
  },
152
152
  } as Parameters<typeof render>[1]
153
153
 
154
- // On Linux, @opentui disables Zig renderer threading which prevents PTY output.
155
- // OTUI_FORCE_THREAD=1 temporarily spoofs platform so @opentui keeps threading enabled.
156
- if (forceThread) {
157
- log("[snow-flow] forcing renderer threading (OTUI_FORCE_THREAD)")
158
- Object.defineProperty(process, "platform", { value: "darwin", configurable: true })
159
- }
154
+ // On Linux, @opentui sets useThread=false which may prevent the Zig renderer
155
+ // from flushing output. HostedRendererDiag handles starting the loop and flushing.
160
156
 
161
157
  try {
162
158
  log("[snow-flow] starting tui...")
@@ -223,15 +219,70 @@ function HostedRendererDiag() {
223
219
  const renderer = useRenderer()
224
220
  onMount(() => {
225
221
  const r = renderer as any
222
+ const log = (msg: string) => process.stderr.write(`[sf-diag] ${msg}\n`)
223
+ const realWrite = r.realStdoutWrite
224
+ const stdout = r.stdout
225
+ const write = (s: string) => realWrite?.call(stdout, s)
226
+
227
+ log(`useThread=${r._useThread} isRunning=${r._isRunning} state=${r._controlState}`)
228
+ log(`platform=${process.platform} altScreen=${r._useAlternateScreen}`)
229
+
230
+ // Patch renderNative to count calls and try flushing
231
+ let renderCount = 0
232
+ if (r.lib && r.rendererPtr) {
233
+ const origRenderNative = r.renderNative.bind(r)
234
+ r.renderNative = () => {
235
+ renderCount++
236
+ origRenderNative()
237
+ // Try dumpStdoutBuffer to flush Zig's pending render output
238
+ try {
239
+ r.lib.dumpStdoutBuffer(r.rendererPtr, BigInt(Date.now()))
240
+ } catch (e: any) {
241
+ if (renderCount === 1) log(`dumpStdoutBuffer error: ${e.message}`)
242
+ }
243
+ }
244
+ log("patched renderNative")
245
+ }
226
246
 
227
- // Clear screen to remove console.log messages, then start render loop
247
+ // Clear screen and start the render loop
248
+ write("\x1b[2J\x1b[H")
228
249
  if (!r._isRunning) {
229
- const realWrite = r.realStdoutWrite
230
- if (realWrite) {
231
- realWrite.call(r.stdout, "\x1b[2J\x1b[H")
232
- }
233
250
  r.start()
251
+ log(`started: isRunning=${r._isRunning}`)
234
252
  }
253
+
254
+ // After 3s: report render count and buffer state
255
+ setTimeout(() => {
256
+ log(`3s: renderCount=${renderCount} isRunning=${r._isRunning}`)
257
+
258
+ // Check if nextRenderBuffer has any content by reading a few cells
259
+ try {
260
+ const buf = r.nextRenderBuffer
261
+ const w = r.lib.getBufferWidth(buf)
262
+ const h = r.lib.getBufferHeight(buf)
263
+ log(`buffer: ${w}x${h}`)
264
+ } catch (e: any) {
265
+ log(`buffer check error: ${e.message}`)
266
+ }
267
+
268
+ // Check root node children
269
+ try {
270
+ const root = r.root
271
+ log(`root children: ${root?.children?.length ?? "?"}`)
272
+ } catch {}
273
+
274
+ // Write visible marker so user can confirm terminal works
275
+ write("\x1b[5;1H\x1b[1;31m[sf-diag] terminal output works - render loop ran ${renderCount} frames\x1b[0m\r\n")
276
+
277
+ // Try fs.writeSync to test raw POSIX write(1, ...)
278
+ try {
279
+ const { writeSync } = require("fs")
280
+ writeSync(1, "\x1b[7;1H\x1b[1;32m[sf-diag] fs.writeSync(1) works\x1b[0m\r\n")
281
+ log("fs.writeSync(1) succeeded")
282
+ } catch (e: any) {
283
+ log(`fs.writeSync error: ${e.message}`)
284
+ }
285
+ }, 3000)
235
286
  })
236
287
  return null
237
288
  }