mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
3.5 KiB
3.5 KiB
Changelog
[Unreleased]
[1.0.3] - 2026-10-05
Breaking Changes
FileSystemrequiresopenBinaryReader()andopenDirReader(); custom environments must implement them.BinaryReaderrequiresscanLines().FileSystemrequireswatch().Shell.exec()accepts an argv array besides a shell string, andShellExecOptions.onOutputreceives a thirdinfoargument naming the stream (stdoutorstderr); custom environments must accept both forms and pass the stream.
Added
openBinaryReader()for bounded positional reads of one opened regular file, withnoFollowto refuse a final-component symlink.openDirReader()for paged directory listings that read metadata only for returned entries.- Argv form of
exec(), which runs a program without a shell. createEnvConformance()andregisterEnvConformance()in@earendil-works/pi-durable/testingfor checking customExecutionEnvimplementations.settings.progresswithpartialIntervalMsandoutputIntervalMsconfigures how often generation partials and running tool output are committed; defaults stay 100 ms (#10357)ShellExecOptions.windowandShellOutputInfo.skipped: an environment may omit shell output outside the caller's retained tail and report the omission, so remote environments need not transfer output the caller drops.ToolExecutionApi.outputWindowprovides the window andoutput(chunk, skipped)counts omissions; thebashtool passes them through.BinaryReader.scanLines()locates and measures a span of lines in one pass inside the environment;LineScanner,StreamDecoder,rangeDecoder()andstartsWithBom()in@earendil-works/pi-durable/envlet other environments decode and scan exactly likeNodeExecutionEnv.FileSystem.watch()reports changes to files and directories, recursive with excludes, including missing targets, with explicitoverflowanderrorand anativeorpollingmode.NodeExecutionEnvpolls on Windows (native watchers there keep directories open, which blocks renaming their parents) and on network and FUSE file systems, and on macOS rescans shortly after installing native watchers because FSEvents misses changes made right afterfs.watchreturns; itswatchoption sets the mode, poll interval, and directory limit.
Changed
- The
readtool reads only the file's header, one scan, and the lines it shows, instead of loading the whole file; its results are unchanged.
Fixed
NodeExecutionEnv.flushFile()on a directory fails withis_directoryon Windows, as on POSIX.- Tail-retained tool output no longer depends on when progress commits happened: a progress snapshot compacted the stored output to the kept window, which could move where a later window's first line started.
NodeExecutionEnvshell output and text line readers no longer drop a U+FEFF that follows a chunk boundary; Node's streamingTextDecoderwith BOM handling dropped it, unlike decoding all of the bytes at once.
[1.0.2] - 2026-10-04
Fixed
- Persisted a distinct provider session UUID per conversation and forwarded it for prompt-cache and session affinity (#10424)
[1.0.1] - 2026-10-03
[1.0.0] - 2026-10-01
Added
- Initial release of
@earendil-works/pi-durable, a durable agent harness. See the README and the design document.