rubik 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ATTRIBUTION.md +1 -1
- data/CHANGELOG.md +24 -0
- data/lib/rubik/prompt/context_builder.rb +1 -1
- data/lib/rubik/repl/terminal_guard.rb +5 -1
- data/lib/rubik/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bced6a0406961cf92cb6e9bcba59607c5517e4a14a205fca253d07cb461b6391
|
|
4
|
+
data.tar.gz: 2b1812eecdf480852cbaaae6d3ef507de561b10e0f628e87e7c831969db8dbd2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e084f7f8f448a21537c39f0b96b2ef218ad02c7f1699aaf6da07318c1049a224d893595a90109dadc6838cfa2db92fd70302f9374065dd1cb869d12ee7441425
|
|
7
|
+
data.tar.gz: 7b19fb4c8ff589ffc386f65fe83d01117132c600e7fd316fc990d3047cb7eeb8f6d7c4a6f5498857d1a185d4be43ac41f4e47d6b8530c31c5fb24dec908e2c12
|
data/ATTRIBUTION.md
CHANGED
|
@@ -121,7 +121,7 @@ SOFTWARE.
|
|
|
121
121
|
| **`strings-ansi`** | Piotr Murach | MIT | ANSI-aware string truncation and alignment for REPL formatters. |
|
|
122
122
|
| **`reline`** | Hiroshi SHIBATA & Ruby Team | Ruby License / BSD-2-Clause | Line-editing, history navigation, autocompletion hooks, and headless terminal adaptation. |
|
|
123
123
|
| **`prism`** | Kevin Newton & Ruby Core Team | MIT | High-performance Ruby parsing and AST extraction ([`Rubik::AST::RubyExtractor`](lib/rubik/ast/ruby_extractor.rb)). |
|
|
124
|
-
| **`minitest`** | Ryan Davis & seattlerb | MIT | Fast, modular test suite powering Rubik's 3,
|
|
124
|
+
| **`minitest`** | Ryan Davis & seattlerb | MIT | Fast, modular test suite powering Rubik's 3,500+ unit, integration, and contract tests. |
|
|
125
125
|
| **`rubocop`** | Bozhidar Batsov & contributors | MIT | Static code analysis, style enforcement, and architectural hygiene gates. |
|
|
126
126
|
| **`benchmark`, `logger`, `pstore`, `reline`, `fiddle`** | Ruby core / rubygems teams | Ruby License / BSD-2-Clause | Ruby stdlib gems pinned explicitly in `rubik.gemspec` as they are unbundled from the default set in Ruby 3.4/3.5. |
|
|
127
127
|
|
data/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,30 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
10
10
|
|
|
11
11
|
Nothing yet.
|
|
12
12
|
|
|
13
|
+
## [0.1.5] - 2026-10-13
|
|
14
|
+
|
|
15
|
+
A dependency-floor release: the reactive wakeup contract moves into
|
|
16
|
+
the gemspec, and the triaged open-PR backlog lands as reviewed test
|
|
17
|
+
hardening.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **Reactive wakeup requires Reline >= 0.7:** the idle-prompt kick
|
|
22
|
+
(`TerminalGuard#safe_wakeup!` → `Reline.ungetc`) only reaches a reader
|
|
23
|
+
already blocked in Reline's getc loop on 0.7.0+, whose ANSI gate re-checks
|
|
24
|
+
the ungetc buffer on every poll iteration; on 0.6.x the injected Enter
|
|
25
|
+
stranded until the next keystroke (maestro "wakes only when I press a
|
|
26
|
+
key"). `rubik.gemspec` now floors `reline >= 0.7`, the gemspec-integrity
|
|
27
|
+
test pins the floor (0.7.0 satisfies, 0.6.3 does not), and an integration
|
|
28
|
+
test pins the contract against the real gate under a PTY.
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **Triaged open-PR batch lands (#110–#119):** SkillTool branch pins,
|
|
33
|
+
real-supervisor error paths, and ast/symbols/storage coverage harden
|
|
34
|
+
the suite; ContextBuilder builds its prompt parts with `filter_map`
|
|
35
|
+
(parity proven, golden-prompt pinned).
|
|
36
|
+
|
|
13
37
|
## [0.1.4] - 2026-10-13
|
|
14
38
|
|
|
15
39
|
The autonomy release: `!goal` becomes resumable across transient
|
|
@@ -334,7 +334,7 @@ module Rubik
|
|
|
334
334
|
tool_section = if tool_schemas.nil? || tool_schemas.empty?
|
|
335
335
|
""
|
|
336
336
|
elsif native_tools
|
|
337
|
-
names = tool_schemas.
|
|
337
|
+
names = tool_schemas.filter_map { |t| t[:name] || t["name"] }.join(", ")
|
|
338
338
|
Doctrine.native_tools_note(names)
|
|
339
339
|
else
|
|
340
340
|
Doctrine.json_tools_note(tool_schemas)
|
|
@@ -108,7 +108,11 @@ module Rubik
|
|
|
108
108
|
# Plan 109: wake a blocked empty readline by injecting an Enter.
|
|
109
109
|
# Reline 0.7.0's IO gates (ANSI/Windows/Dumb) all poll and re-check
|
|
110
110
|
# their ungetc buffer (10ms/100ms/100ms), so the injection reaches
|
|
111
|
-
# the blocked reader on every gate.
|
|
111
|
+
# the blocked reader on every gate. The per-poll re-check is 0.7.0+
|
|
112
|
+
# behavior — rubik.gemspec floors that version and
|
|
113
|
+
# test/integration/test_reline_wakeup_contract.rb pins the real gate
|
|
114
|
+
# (on 0.6.x the injected Enter strands until the next keystroke).
|
|
115
|
+
# idle_and_empty? is re-evaluated
|
|
112
116
|
# inside this critical section (Monitor reentrancy makes the nested
|
|
113
117
|
# synchronize free); the residual window between check and gate
|
|
114
118
|
# consumption is inherent to Reline's thread model and accepted. A
|
data/lib/rubik/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubik
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Özgür Ulukır
|
|
@@ -190,14 +190,14 @@ dependencies:
|
|
|
190
190
|
requirements:
|
|
191
191
|
- - ">="
|
|
192
192
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: '0'
|
|
193
|
+
version: '0.7'
|
|
194
194
|
type: :runtime
|
|
195
195
|
prerelease: false
|
|
196
196
|
version_requirements: !ruby/object:Gem::Requirement
|
|
197
197
|
requirements:
|
|
198
198
|
- - ">="
|
|
199
199
|
- !ruby/object:Gem::Version
|
|
200
|
-
version: '0'
|
|
200
|
+
version: '0.7'
|
|
201
201
|
- !ruby/object:Gem::Dependency
|
|
202
202
|
name: prism
|
|
203
203
|
requirement: !ruby/object:Gem::Requirement
|