Julian Noble
f6ed50eb0c
punk::console active settling probe (settle_can_respond) + raw-mode cycling guard
...
punk::console (0.1.5):
- settle_can_respond: layered active settling of a console's response capability, persisted on
the anchored opunk::console instance. Layer 1 certainty (input eof -> 0, no emission),
layer 2 strong-negative heuristic (plain pipe, no terminal hints -> 0, no emission - piped/CI
output streams stay clean), layer 3 active CSI 6n probe with timeout, only in the ambiguous
zone (real consoles / pipe-presenting terminals such as mintty without winpty). -force
unsettles and re-probes; -timeout_ms overrides can_respond_probe_timeout_ms (default 500).
Unmatched input consumed while waiting is preserved via input_chunks_waiting.
- get_size triggers first-use settling for persistable specs only (anchored instance name or
the auto-attached default) so unanchored object values cannot cause per-call probes
- get_ansi_response_payload only cycles console raw mode when the input channel is a
console/tty: pipe-targeted probes no longer flip the real console's mode as a side effect,
and a repeat-cycle deadlock under captured-channel environments (runtests runx) is fixed.
(Latent enableRaw_twapi/disableRaw_twapi restore asymmetry noted for future attention.)
punk::repl (0.1.5) / opunk::console (0.1.1): docs reference the active settling mechanism
(no behaviour change; probe machinery stays in punk::console so the class remains free of
that dependency)
tests: 5 new settle_can_respond cases in consolespec.test - certainty and clean-pipe settling
with zero-emission asserts, ambiguous probe timeout with emission and input-preservation
asserts, response arrival settling 1 with realistic event-loop delivery then -force
transition to 0, and get_size first-use settling. Console suites 23/23; full suite green
except pre-existing exec-14.3.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
2 weeks ago
Julian Noble
c25a91dd73
AGENTS: note build-maintenance task to prune superseded module intermediates before payload wrapping
...
Built module trees accumulate superseded versions which vfscommonupdate/bootsupport propagate
into _vfscommon.vfs, bootsupport snapshots and shipped binaries. Records the planned prune step
and its punkcheck constraint: deletions must be reflected in (or pruned from) the affected
.punkcheck files so change detection stays sound.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
2 weeks ago
Julian Noble
f0c712543a
repl shutdown/eof fixes, PUNK_PIPE_EOF policy, console query guards, opunk::console voo class, test framework fixes
...
punk::repl (0.1.4):
- cancel the deferred (after idle) stdin reader registration when the repl finishes - a stale
registration could re-attach a reader to a completed repl (piped stdin racing shutdown produced
'error2 in repl_process_data: invalid thread handle ""')
- repl_process_data drops input arriving after codethread teardown instead of erroring
- repl::init constructs the process-default console object (anchored opunk::console instance
'default') and settles can_respond 1 for interactive stdin
app-punkshell:
- eof on the input channel now follows env(PUNK_PIPE_EOF): exit | interactive | unset=heuristic
(reopen console if available, else terminate) - replaces the unconditional CONIN$/dev-tty repl
restart that hung automated callers forever; documented in punk::config punk_env_vars_config
('help env')
punk::console (0.1.4):
- input_at_eof (certainty, with non-blocking probe read for deferred pipe eof) and
is_input_console_or_tty (heuristic incl. mintty-without-winpty env hints)
- get_size skips ANSI cursor-report mechanisms for non-terminal input (tput then 80x24 default)
- removed erroneous repl-restart attempts from get_ansi_response_payload eof handling (re-entrancy,
bypassed eof policy; one call was a typo repl::reopen)
- console_spec_resolve: -console (and legacy positional inoutchannels) accepts a channel pair, an
anchored opunk::console instance name, or an ::opunk::Console object value; settled can_respond 0
refuses query emission and supplies the object's default size; default_console proc + auto-attach
of the anchored 'default' instance for matching channel pairs
opunk::console (new, 0.1.0):
- voo-based -virtual class ::opunk::Console: console as an in/out channel pair with settled
capability facts; canonical instances anchored at ::opunk::console::instances::<name> with
value semantics as snapshots; subclass dispatch via slot-0 tag for future channel-environment
consoles (ssh, tk-widget terminals); added to bootsupport (with voo) for boot-level use
tests:
- src/tests/shell/testsuites/punkexe: hang-proof punk_run/punk_run_expect_alive harness; termination
guards, exitcode propagation, help-env render with piped stdin, default-console smoke test,
PUNK_TEST_GOALS-gated interactive drop-in goal tests
- src/tests/modules/punk/console: probe helper and console-spec/integration suites
- src/tests/modules/opunk/console: Console class suite incl. virtual dispatch
- runtests.tcl testinterp: 'package prefer latest' (dev 999999 alpha modules no longer shadowed by
stable bootsupport copies) and src/vendormodules on the module path (voo etc resolvable)
AGENTS: punk::args usage policy, -console migration contract, bootsupport update workflow
correction, opunk voo conventions, testinterp contracts
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
2 weeks ago
Julian Noble
df78ff9bb5
make.tcl bootstrapping fix, punkcheck refactor and tests
2 weeks ago
Julian Noble
0455efd614
startup behaviour,punk::path fixes, AGENTS guidance
2 weeks ago
Julian Noble
43e9aee128
cleaner src/tests/runtests.tcl output for agents based on new -report option etc
2 weeks ago
Julian Noble
7fd42ff68c
src/tests framework
2 weeks ago
Julian Noble
d7f47f04bd
punk::args -parsekey fixes for opts
2 weeks ago
Julian Noble
e796135b2c
executable stdin handline, + various
2 weeks ago
Julian Noble
3b261d08b0
update bootsupport
3 weeks ago
Julian Noble
d264c284e4
fcat improvements, test framework work
3 weeks ago
Julian Noble
f425532164
initial outline of format for tclpackages.toml
3 weeks ago
Julian Noble
d6fbf475d0
punk::path tests
3 weeks ago
Julian Noble
b69d0e50f3
punk::path and punk::lib fixes
3 weeks ago
Julian Noble
bdd47cd5d1
further AGENTS.md refactor
3 weeks ago
Julian Noble
e4ed2b3f0a
refactor AGENTS.md files
3 weeks ago
Julian Noble
5b4870c02f
add src/AGENTS.md
3 weeks ago
Julian Noble
9d63f6efb5
Update AGENTS.md re line endings and tclint
3 weeks ago
Julian Noble
34ba71be43
punk::path and punk::lib fixes, ongoing work on testing framework
3 weeks ago
Julian Noble
a362265e9f
AGENTS.md with DOX framework
3 weeks ago
Julian Noble
8f34b311bb
src/make.tcl exclude AGENTS.md from copying to installation folders
4 weeks ago
Julian Noble
162201bf66
ansi fixes and tests, ansi xbin and png
4 weeks ago
Julian Noble
23287831e3
initial AGENTS.md files
4 weeks ago
Julian Noble
20fde7a135
xbin (.xb) support without font
1 month ago
Julian Noble
877e8df9ad
change some module filenames for better version control, basic xbin support in overtype
1 month ago
Julian Noble
96aa77118b
minor README.md update
2 months ago
Julian Noble
6750cc328a
.gitignore ignore spurious tilde folder
2 months ago
Julian Noble
50de46ff65
update bootsupport,project_layouts,vfs
2 months ago
Julian Noble
7b7c9322f9
better support for gnu vs bsdutils tar on windows. fossil help stripansi
2 months ago
Julian Noble
2b5cef9d36
fifo2 & startup interim fixes. sqids lib. vfs tidy
2 months ago
Julian Noble
6128fb4f5b
detect unicode support by char display width and use ascii if necessary in repl mode raw boxes
2 months ago
Julian Noble
a4c97611fd
interim hack for help to use ascii frametype on narrow terminals
2 months ago
Julian Noble
f44f67852a
punk::console::get_size mechanism selection based on timings
2 months ago
Julian Noble
509a101532
further quieten punkcheck on non-windows platforms
2 months ago
Julian Noble
f2377f15b9
fix underlying cause of punkcheck file integrity - bad punk::lib::compat::ledit function. Quieten punkcheck debug output
2 months ago
Julian Noble
5307dc8850
punkcheck - try file deletion prior to update - attempt to workaround duplicate data issue
2 months ago
Julian Noble
0bc8e5ae00
punkcheck - try flush after writing file
2 months ago
Julian Noble
57e446b0c6
punkcheck validation bug fix
2 months ago
Julian Noble
b8cd2c05a2
validation of INSTALLER records in .punkcheck files
2 months ago
Julian Noble
6570622a11
punkcheck save_records_to_file stderr msgs
2 months ago
Julian Noble
61aa54c738
punk::ns::corp and ansi fixes, punkcheck file save debug output
2 months ago
Julian Noble
dc5fbab30f
punkcheck debugging - again
2 months ago
Julian Noble
2aa5f9bc4b
punkcheck debugging - more
2 months ago
Julian Noble
a549c8eeb6
punkcheck debugging - error out on duplicate FILEINFO record (same targets)
2 months ago
Julian Noble
fc95e9d0bf
more debug output for non-windows platforms (make.tcl issues)
2 months ago
Julian Noble
b8aaad0f32
punkcheck more emission to stderr
2 months ago
Julian Noble
e67566bfdf
overtype fixes, raw-mode repl fixes - literal tab handling, punk::ansi fixes
2 months ago
Julian Noble
36cb87b0dd
punk::lib - tclscript_info tclscript_showparse, remove line continuations for better cmdtrace support
2 months ago
Julian Noble
b8f57878f2
overtype and ansi changes, untabify, opunk, experimental punk::lib::tclscript_info static analysis beginnings
3 months ago
Julian Noble
4c6a3058c3
punk::ansi and overtype fixes and tests, grepstr fixes, punk::args synopsis improvements, voo module
3 months ago