Skip to content

deps: refresh the dev lockfile within its constraints; cap parallel and simplecov for the 3.2 floor - #75

Open
minerva-sky wants to merge 2 commits into
codenamev:mainfrom
minerva-sky:deps/lockfile-refresh
Open

minerva-sky wants to merge 2 commits into
codenamev:mainfrom
minerva-sky:deps/lockfile-refresh

Conversation

@minerva-sky

@minerva-sky minerva-sky commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #64.

bundle update on main, honouring every cap already in the Gemfile, moves 51 gems. The runtime ones are the versions every fresh gem install agentic already resolves to while CI tested the old numbers: json 2.7 → 3.1, zeitwerk 2.6 → 2.8, dry-schema 1.13 → 1.16 (dry-core 1.0 → 1.2, dry-types 1.7 → 1.9, dry-logic 1.5 → 1.6), async 2.24 → 2.37 (the Gemfile's own cap, which the lock never reached), thor 1.3 → 1.5, net-http 0.4 → 0.10, faraday 2.14 → 2.15. Dev side: standard 1.32 → 1.57 (rubocop 1.91, so Ruby 3.4 syntax lints), rspec 3.13.2, webmock 3.34, simplecov 1.2, rake 13.4.

What changes

Tests (Ruby 4.0.2, refreshed lock): 1391 examples, only the pre-existing event_dispatcher_integration_spec.rb:291 wall-clock flake (#36); earlier run also hit the plan_orchestrator_spec.rb:243 UUID-redaction flake (#54). standardrb 1.57: no offences. CI's 3.2.4 leg is the gate that matters here; the floor check is the local proxy for it.

Worth a follow-up, not in this PR: json 3.x raises on duplicate keys and comments where 2.x took last-wins. Consumers already get 3.x (the gemspec never pinned json), and every LLM-facing JSON.parse in lib/ is rescued, but nobody has decided whether allow_duplicate_key: true is the intended policy for model output. Two seats raised it independently.

Intended labels: loop:drain, loop:deps.

Panel

  • DHH: cleared (3/3). Lockfile roll plus a dead require deleted; nothing to mimic or abstract. All three flagged the pre-existing tension between the Gemfile's 3.2.4 caps and WORLD.md's "track the latest stable Ruby" as the real smell, owned by deps: raise Ruby floor to >= 3.2 and test a real CI matrix (#15) #27 / CI tests async 2.24 while consumers on maintained Rubies resolve 2.46: the 3.2 caps in Gemfile freeze every matrix leg #42.
  • Obie Fernandez: objected-then-cleared. Round 1 (3 seats): 2/3 objected on unhandled failure modes: parallel 2.3.0 and simplecov 1.3.2 need Ruby 3.3, so CI's frozen install on 3.2.4 dies before rake. Fixed in 787feda (caps + re-lock, floor check clean). Round 2: cleared 3/3, having re-run the floor check and probed async 2.37's Barrier/Queue/Semaphore against the orchestrator and json 3.1's stricter parse against every JSON.parse in lib/.
  • Vladimir Dementyev: objected-then-cleared. Round 1: 3/3 objected on the same floor break (deterministically red, not flakier). Round 2: cleared 3/3 after re-running the floor check; PLATFORMS (ruby + arm64-darwin-23) and BUNDLED WITH unchanged, prism 1.9 is the only new native build and is cache-keyed, lint ruleset pinned by .standard.yml so local and CI agree.
  • The gem consumer: cleared (3/3). Gemfile caps and lock are dev-only; gemspec untouched; Base64 referenced nowhere in lib/spec/exe; nothing serialised changes shape.

🤖 Generated with Claude Code

minerva-sky and others added 2 commits October 17, 2026 05:43
`bundle update` honouring every cap already in the Gemfile moves 51 gems:
json 2.7 -> 3.1, zeitwerk 2.6 -> 2.8, dry-schema 1.13 -> 1.16 (dry-core
1.0 -> 1.2, dry-types 1.7 -> 1.9), async 2.24 -> 2.37 (the Gemfile cap the
lock never reached), thor 1.3 -> 1.5, standard 1.32 -> 1.57 (rubocop 1.91),
rspec 3.13.0 -> 3.13.2, webmock 3.23 -> 3.34. These are the versions a
fresh `gem install agentic` already resolves to; CI was testing the old
numbers.

The refresh drops the orphan base64 entry that vcr 6.3 pulled in, which is
the only thing that let authentication_system.rb's dead `require "base64"`
load on Ruby >= 3.4 (base64 is a bundled gem there). The require goes; the
file never calls Base64.

Suite on the refreshed lock (Ruby 4.0.2): 1391 examples, the two
pre-existing flakes only (plan_orchestrator_spec:243 UUID redaction, codenamev#54;
event_dispatcher_integration_spec:291 wall clock, codenamev#36). standardrb 1.57
reports no offences.

Closes codenamev#64.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The refresh resolved on Ruby 4.0.2 and let parallel 2.3.0 (via rubocop
1.91) and simplecov 1.3.2 into the lock; both declare
required_ruby_version >= 3.3, so CI's frozen install on 3.2.4 would fail
before a spec ran. Same cap pattern as async/console/dry-configurable/
io-event: parallel < 2 (1.28.0, floor 2.7), simplecov < 1.3 (1.2.0, floor
3.2). Every locked spec now satisfies 3.2.4.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

loop:deps Dependency / language upgrade loop loop:drain Implemented from the improvements ledger by the drain loop

Projects

None yet

1 participant