Repository navigation
Releases: gatework/expect-ruby
Releases · gatework/expect-ruby
Release list
v0.10.1
- Normalize result, buffer and rule snapshots to plain String/Array values without freezing caller input or retaining attached behavior. Preserve raw bytes, encodings and borrowed object identity.
- Make Result pretty_print use the safe summary, and execute the same validated argument snapshot exposed by Session#command.
- Preserve to_s conversion and confirmed write progress while normalizing protocol and transcript bytes before callbacks.
v0.10.0
- 最低 Ruby 升级至 4.0.6;Result 明确区分 matched、timeout、eof、error,编号统一为 match_number,error 只保存原始异常。构造和 with 拒绝矛盾状态,旧 number 字段移除。
- 保留既有模块结构,将日志与转接状态初始化归回所属模块,协议输出归 Interaction 管理;等待与转接发送诊断使用显式内部协作入口。
- 转义规则变更后首次使用时统一编译,读取期间复用正则包装与冻结文本规则快照;保持优先级、UTF-8、零宽校验、跨次 interact 历史和短写恢复契约。
- API 检查同时拒绝已移除接口的残留 RBS 声明;同步迁移示例、签名和安装验证。
v0.9.6
- 移除 io-console、json、logger 和 stringio 的额外版本下限,沿用 Ruby 3.4+ 的运行时要求。
v0.9.5
- 无脱敏规则且旧尾部排空时直接交付独立字节副本,避免为普通日志分配等长掩码;保留规则切换、抑制输出与相邻隐藏区间的语义。
v0.9.4
-
将字面未命中进度归一为内部 LiteralScan,供匹配与转接复用;大缓冲分块转接不再反复搜索已排除的范围,保留跨块转义与回调修改规则的行为。
-
转接活跃来源改用按对象身份维护的有序索引,避免批量 EOF 继续处理时反复遍历剩余来源。
-
修复句柄关闭和进程回收同时失败时后一个系统错误覆盖首个错误的问题;后续致命中断仍原样传播,失败资源可重试清理。
-
新增公开的
Session#buffer_bytesize,以常数时间查询当前主缓冲字节数,避免容量检查创建正文快照;原buffer的防御性复制契约不变。
v0.9.3
- 结果的 inspect 与 to_s 仅输出匹配序号和错误状态,避免诊断、字符串插值泄露匹配文本、捕获内容或异常消息;原始结果字段保持不变。
- 工厂块异常、取消或非局部退出时跳过 graceful 读尾,直接硬关闭;正常返回(包括 nil/false)仍可收取尾部输出。
v0.9.2
- 减少显式搜索窗口下字面量匹配的内存分配,保留原始字节偏移、声明优先级和正则窗口语义。
- 修复脱敏尾部、匹配缓冲上限、转接历史及失败后的待写数据仍保留大块底层存储的问题,释放已丢弃或交付的字节并保留恢复进度。
v0.9.1
- 修复自定义 Numeric 转换失败时泄漏常规异常的问题;时间参数统一抛出 ArgumentError 并保留 cause,Interrupt/SystemExit 仍原样传播。
v0.9.0
- 不兼容:命令默认直接按 argv 执行,单字符串也只作为可执行文件名,需要 shell 语法时须显式传入
shell: true。 - 不兼容:移除与标准库同名的加载入口,本库统一使用
require "expect/pty",require "expect"恢复加载标准库的 IO#expect。 - 不兼容:时间参数只接受有限实数 Numeric 或 nil,不再解析字符串,非法值统一抛出 ArgumentError。
- 新增每次等待的
search_window字节窗口选项,限制长输出中的字符串和正则扫描范围,匹配结果仍保留完整缓冲偏移。 - 启动失败保留
SpawnError#errno和 SystemCallError cause,包含非法编码字节的路径也能正确报告失败。 - 缩短已退出子进程的关闭等待,并减少未启用日志时的匹配分配。
- 修复正则转接在小缓冲窗口下丢失 UTF-8 字符前缀的问题,合法分片可跨超时继续匹配,EOF 时仍拒绝未完成字符。
v0.8.3
- 修复多参数写入和日志补记受 Ruby 全局分隔符
$,影响而插入额外字节的问题,保持原始字节和写入计数准确。