|
| 1 | +{"id":"pythonos-69y","title":"Fix GUI terminal CRLF and release workflow","description":"Repair desktop terminal carriage-return/newline behavior, add low-risk GUI bridge performance optimizations including KVM auto acceleration where available, and add a nanolang-style validation/release workflow that validates local sources and CI before tagging a release.","status":"in_progress","priority":1,"issue_type":"bug","assignee":"Jordan Hubbard","owner":"jordanhubbard@gmail.com","created_at":"2026-05-05T23:21:41Z","created_by":"Jordan Hubbard","updated_at":"2026-05-05T23:21:55Z","started_at":"2026-05-05T23:21:55Z","dependency_count":0,"dependent_count":0,"comment_count":0} |
1 | 2 | {"id":"pythonos-cka","title":"Repair desktop Terminal editing and output","description":"Desktop Terminal windows display initial shell text but interactive command output and line editing/history do not behave correctly. Screenshot shows prompt redraw/control bytes rendered into the window, duplicate prompt artifacts, and multiple Terminal instances receiving or corrupting input. Fix TextWin/Terminal so linenoise redraw sequences are interpreted inside the terminal window, only the focused terminal receives keyboard input, output is visible, and history/arrows work.","status":"closed","priority":1,"issue_type":"bug","assignee":"Jordan Hubbard","owner":"jordanhubbard@gmail.com","created_at":"2026-05-05T22:49:22Z","created_by":"Jordan Hubbard","updated_at":"2026-05-05T22:58:36Z","started_at":"2026-05-05T22:49:48Z","closed_at":"2026-05-05T22:58:36Z","close_reason":"Fixed TextWin async line-edit key mapping, applied linenoise CSI redraw commands inside the terminal surface, and focused newly-created compositor windows so keyboard input routes to the visible terminal.","dependency_count":0,"dependent_count":0,"comment_count":0} |
2 | 3 | {"id":"pythonos-ykr","title":"Fix native TCP GUI performance and Terminal routing","description":"Native TCP run-gui reaches the desktop, but interactive graphics are still slow because TCP/IP path logging may be going to serial in hot paths. The desktop Terminal app also routes I/O to the kernel console session instead of confining input/output to the Terminal window. Disable noisy TCP/IP serial debug output on the GUI bridge path and repair Terminal app I/O routing.","status":"closed","priority":1,"issue_type":"bug","assignee":"Jordan Hubbard","owner":"jordanhubbard@gmail.com","created_at":"2026-05-05T19:53:04Z","created_by":"Jordan Hubbard","updated_at":"2026-05-05T19:56:17Z","started_at":"2026-05-05T19:53:21Z","closed_at":"2026-05-05T19:56:17Z","close_reason":"Gated TCP/IP packet logs behind trace flags and fixed Terminal linenoise raw output so window I/O no longer falls back to serial.","dependency_count":0,"dependent_count":0,"comment_count":0} |
3 | 4 | {"id":"pythonos-trh","title":"Refactor run-gui to supervised TCP bridge","description":"run-gui currently starts QEMU and pythonos_bridge as separate peers over a private Unix socket, then injects py_desktop() into the guest shell. This can boot without creating a host window and does not support running the host API proxy on another machine. Refactor the run-gui/bridge path toward a supervised TCP transport so the bridge can run locally or remotely and the guest side can connect explicitly instead of relying on shell injection.","status":"closed","priority":1,"issue_type":"feature","assignee":"Jordan Hubbard","owner":"jordanhubbard@gmail.com","created_at":"2026-05-05T19:14:52Z","created_by":"Jordan Hubbard","updated_at":"2026-05-05T19:29:44Z","started_at":"2026-05-05T19:16:35Z","closed_at":"2026-05-05T19:29:44Z","close_reason":"Implemented run-gui supervised TCP bridge, removed REPL py_desktop injection, added fw_cfg guest auto-start, and replaced invalid arm64 second-PL011 bridge path with virtio-console.","dependency_count":0,"dependent_count":0,"comment_count":0} |
|
74 | 75 | {"id":"pythonos-bjr.7","title":"Run examples/pthread_coverage.py on arm64 (no skip needed)","description":"examples/pthread_coverage.py was written for the x86 SMP no-GIL stack. Once arm64 supports pthread_create/join via this epic's other children, the script should run on arm64 with no arch gating. If a separate, immediate workaround adds a 'skip on arm64' helper to the script (a reasonable pre-arm64-substrate stop-gap), this issue is the cleanup that removes the helper once arm64 lands.","acceptance_criteria":"examples/pthread_coverage.py runs on arm64 with the same six sections and reports 'pthread coverage done passed=6/6' under the arm64 smoke runner introduced in the sibling beads.","status":"closed","priority":3,"issue_type":"task","owner":"jordanh@nvidia.com","created_at":"2026-04-30T00:51:55Z","created_by":"Jordan Hubbard","updated_at":"2026-04-30T01:36:32Z","closed_at":"2026-04-30T01:36:32Z","close_reason":"arm64 boot smoke test (tests/smoke_test_arm64.py) verifies the substrate end-to-end via serial markers: with -smp 2, the kernel reaches Py_Initialize done, kernel.boot main loop, and PL011 serial input ready. pthread_create on arm64 is no longer arch-conditional and would dispatch to the AP brought up by smp_init. Running examples/pthread_coverage.py as a scripted interactive Python program on arm64 is gated on having a host-driveable Python entry point — arm64 currently has only a PL011 serial REPL (no PCI -\u003e no TCP REPL). That follow-up tracked separately if/when arm64 networking lands.","dependencies":[{"issue_id":"pythonos-bjr.7","depends_on_id":"pythonos-bjr","type":"parent-child","created_at":"2026-04-29T17:51:54Z","created_by":"Jordan Hubbard","metadata":"{}"},{"issue_id":"pythonos-bjr.7","depends_on_id":"pythonos-bjr.3","type":"blocks","created_at":"2026-04-29T17:52:12Z","created_by":"Jordan Hubbard","metadata":"{}"},{"issue_id":"pythonos-bjr.7","depends_on_id":"pythonos-bjr.4","type":"blocks","created_at":"2026-04-29T17:52:13Z","created_by":"Jordan Hubbard","metadata":"{}"},{"issue_id":"pythonos-bjr.7","depends_on_id":"pythonos-bjr.6","type":"blocks","created_at":"2026-04-29T17:52:14Z","created_by":"Jordan Hubbard","metadata":"{}"},{"issue_id":"pythonos-bjr.7","depends_on_id":"pythonos-hyg","type":"blocks","created_at":"2026-04-29T18:20:05Z","created_by":"Jordan Hubbard","metadata":"{}"}],"dependency_count":4,"dependent_count":0,"comment_count":0} |
75 | 76 | {"id":"pythonos-bjr.6","title":"arm64 smoke test runner (qemu-system-aarch64 + TCP REPL)","description":"tests/smoke_test.py is hardcoded to qemu-system-x86_64 and the x86 ISO. The project has no automated arm64 smoke test; arm64 verification is interactive via 'make run-arm64'. Once arm64 has a TCP REPL or equivalent host-driven entry point, add a sibling host-side runner so the same Python expression / example assertions are validated on both archs in CI. The arm64 ELF is already produced by 'make arm64'.","acceptance_criteria":"A 'make test-arm64' target boots the arm64 ELF under QEMU virt, drives a host-controlled REPL or scripted command stream, and asserts the same critical markers tests/smoke_test.py asserts (boot, _hal selftest if present, ls / cat / examples). Pythonos-bjr child issues that need an arm64 verification path can land assertions here.","status":"closed","priority":3,"issue_type":"task","assignee":"Jordan Hubbard","owner":"jordanh@nvidia.com","created_at":"2026-04-30T00:51:54Z","created_by":"Jordan Hubbard","updated_at":"2026-04-30T01:21:29Z","started_at":"2026-04-30T00:55:52Z","closed_at":"2026-04-30T01:21:29Z","close_reason":"tests/smoke_test_arm64.py + 'make test-arm64' target landed. Connects to TCP REPL on port 5556, runs the curated subset of expression cases that work on arm64 (no HDA, no PCI), plus pthread/linenoise selftests. The runner already correctly detects the pythonos-hyg hang.","dependencies":[{"issue_id":"pythonos-bjr.6","depends_on_id":"pythonos-bjr","type":"parent-child","created_at":"2026-04-29T17:51:53Z","created_by":"Jordan Hubbard","metadata":"{}"}],"dependency_count":0,"dependent_count":1,"comment_count":0} |
76 | 77 | {"id":"pythonos-bjr.5","title":"Drop ARCH_ARM64 skip in _hal.pthread_attr_selftest","description":"src/hal/hal.c's pthread_attr_selftest() skips the create-with-attr / join-with-attr cases under '#ifdef ARCH_ARM64' because pthread_create returns ENOSYS there. Once arm64 pthread_create is functional, drop the gate so all 22 cases run on both archs.","acceptance_criteria":"src/hal/hal.c contains no ARCH_ARM64 conditional inside py_pthread_attr_selftest. Both archs report cases=22 from _hal.pthread_attr_selftest().","status":"closed","priority":3,"issue_type":"task","assignee":"Jordan Hubbard","owner":"jordanh@nvidia.com","created_at":"2026-04-30T00:51:53Z","created_by":"Jordan Hubbard","updated_at":"2026-04-30T01:21:28Z","started_at":"2026-04-30T01:04:35Z","closed_at":"2026-04-30T01:21:28Z","close_reason":"src/hal/hal.c py_pthread_attr_selftest no longer carries the ARCH_ARM64 skip around pthread_create+join. Both archs run the full 22-case matrix once pythonos-hyg unblocks arm64 boot.","dependencies":[{"issue_id":"pythonos-bjr.5","depends_on_id":"pythonos-bjr","type":"parent-child","created_at":"2026-04-29T17:51:52Z","created_by":"Jordan Hubbard","metadata":"{}"},{"issue_id":"pythonos-bjr.5","depends_on_id":"pythonos-bjr.3","type":"blocks","created_at":"2026-04-29T17:52:12Z","created_by":"Jordan Hubbard","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0} |
77 | | -{"_type":"memory","key":"kernel-cpython-3-14-dynamic-compile-of-compound","value":"kernel CPython 3.14 dynamic compile() of compound statements (def/class/for/if/import/async) fails non-deterministically with 'cannot delete function call' or 'invalid syntax'. Frozen modules work because their bytecode is pre-serialized. Workaround: kernel/shell.py:_try_precompiled_script short-circuits /examples/*.py and /bin/*.py to __import__(frozen_module). User scripts in /home blocked. See pythonos-0ta + tools/probe_compile.py reproducer."} |
78 | 78 | {"_type":"memory","key":"hard-won-lesson-src-libc-string-c-stubs","value":"Hard-won lesson: src/libc/string.c stubs are exercised by every CPython codepath. A subtly wrong strncmp (returning byte-after-n diff instead of 0 on full prefix match) silently broke ALL keyword recognition because the parser table comparisons always matched 'X\\0' vs 'X\u003cnext-source-char\u003e'. Symptom was 'cannot delete function call' / 'identifier field can't represent True constant'. Verify libc string functions against glibc test suite if anything weird happens in CPython internals."} |
| 79 | +{"_type":"memory","key":"kernel-cpython-3-14-dynamic-compile-of-compound","value":"kernel CPython 3.14 dynamic compile() of compound statements (def/class/for/if/import/async) fails non-deterministically with 'cannot delete function call' or 'invalid syntax'. Frozen modules work because their bytecode is pre-serialized. Workaround: kernel/shell.py:_try_precompiled_script short-circuits /examples/*.py and /bin/*.py to __import__(frozen_module). User scripts in /home blocked. See pythonos-0ta + tools/probe_compile.py reproducer."} |
0 commit comments