Tree:
aca967e1a5
master
v0.1a
${ noResults }
2 Commits (aca967e1a5d5d075d27f77d371ee2277e3eedb26)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
aca967e1a5 |
punk::console 0.6.0: G-007 slice 1 - tsv-backed console facts + ownership registry
Per-console facts are now visible to every thread of a punk session: the
default console {stdin stdout} keeps its legacy namespace variables as
authoritative local storage, with write traces mirroring every write
(including direct variable writes) into tsv punk_console_facts; non-default
consoles store facts only in tsv with owner-qualified keys (non-std channel
names are thread-local and would otherwise alias). console_fact_set from a
non-owner thread forwards to the owning thread (vt52-alias transport) and
always writes the tsv mirror itself (covers unreachable or older-version
owners). New console_fact_clear for tests/maintenance.
New console ownership registry (console_owner_register/get/forget, tsv
punk_console_owners keyed by canonical {in out} pair): ownership is captured
when an opunk::console instance is anchored - via the new pluggable
::opunk::console::lifecycle_callback (opunk::console 0.4.0, base class
unchanged) wired by ensure_object_integration - and by default_console.
Consult-time liveness validation clears entries for exited threads. For
{stdin stdout} first registration wins and only the owner's forget releases
the entry, so a thread anchoring a local view cannot steal ownership.
dec_has_mode/ansi_has_mode caches moved to tsv punk_console_modecache
(single-key atomic entries shared process-wide).
Infrastructure tsv arrays are now punk_-prefixed to avoid collisions with
application tsv usage in subshells: console -> punk_console (is_raw), with
call-site patches in punk::repl 0.2.1, punk::lib 0.2.1, punk::basictelnet
0.1.1 (rule recorded in src/modules/AGENTS.md; legacy repl/codethread_*/
zzzload_pkg* arrays left for a coordinated follow-up).
punk::console is now loadable in secondary threads without ::argv0
(powershell consolemode fallback guarded).
Tests: consolefacts gains ownership-registry and cross-thread visibility
coverage (worker-thread punk::console load, trace-mirror, forwarded set with
deadline-polled sync - see comments re runtests child-interp topology);
cleanups use console_fact_clear / tsv instead of poking removed internal
stores. Full suite passes (baseline exec-14.3 only).
G-007 flipped proposed -> active (user-confirmed); remaining acceptance work
is the choke-point brokering slice.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
|
2 weeks ago |
|
|
b67a8f7b5f |
add goals G-007 to G-010: console location transparency, scoped console state, themed subshell profiles, subshell tree navigation
Index entries in GOALS.md plus detail files, all proposed: - G-007 location-transparent punk::console across repl and code interps: punk-side tsv-backed ownership registry, fact/cache visibility, choke-point brokering generalising the vt52 alias; detail records rejected alternatives (audience namespace split, owner field on ::opunk::Console, opunk-package-namespace registry) - G-008 scoped console state for same-console subshells: activatable per-subshell state sets (journal-on-write, re-emit on activation) rather than a LIFO undo stack, so later tree switching works; restore of tabstops/modes/palette on quit; opt-in, shared behaviour stays default - G-009 themed subshell profiles: poshinfo schemes bound to restriction aspects (G-003 limits/hidden commands, punk::island) so restricted subshells are visually distinct; terminal effects ride the G-008 state set - G-010 subshell suspend/resume and tree navigation: switch to any live subshell (grandparent, cross-branch) via attachment handoff + G-008 state activation; navigation commands governed by G-003 hide/expose; depends on G-002's non-nested model Sequencing: G-007 -> G-008 -> G-009/G-010, with G-002 prerequisite for G-010. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
2 weeks ago |