Add in-depth repository analysis document#5
Merged
Conversation
Documents the architecture, loading pipeline, and plugin bridge; assesses current health (test suite, CI, lockfile compatibility); catalogs nine empirically confirmed bugs with file/line references; and lists design flaws, security considerations, and prioritized improvements. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159sPGBuYwWZLMknPaw6AK4
- Registry#register now passes its block through to the Command, so commands registered via the public API actually run their blocks - Command::Runner memoizes plugin executors per plugin name, so commands referencing multiple plugins no longer all resolve to the first one - Command::Option#value only falls back to the default when unset (nil), so switches with truthy defaults can be turned off with --no-<switch> - Command::Option implements #hash to match #eql?, so option Sets dedupe - System::Command#name splits on whitespace instead of word characters, so RunError messages include the failed command's name - Logger chomps the log file path read from git config - Plugin#find_command searches the commands Array instead of indexing it like a Hash - The github plugin's setup command uses personal access token auth (the old username/password + OTP flow was removed by GitHub in 2020) and fixes the 'promt' typo; README example updated to match - CLI logs the requested command name when it isn't found, instead of nil Also implements the README-documented 'git cmd help [command]' subcommand, adds regression specs for each fix, and fixes the two feature-spec failures on modern Rubies by normalizing captured output to UTF-8 in CommandHelpers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159sPGBuYwWZLMknPaw6AK4
- Declare required_ruby_version >= 3.2 - Bump dev dependencies: rake ~> 13.0, rdoc ~> 6.5, rspec ~> 3.12 - Relax the bundler runtime dependency to >= 2.1 - Regenerate Gemfile.lock with Bundler 4 (the old lockfile pinned stringio 3.0.1, which fails to build on Ruby >= 3.2) and add darwin platforms for the macOS CI runners - Update .ruby-version from 3.1.0 to 3.3.6 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159sPGBuYwWZLMknPaw6AK4
- Test matrix now covers Ruby 3.3, 3.4, and 3.5 on Ubuntu and macOS (fixes the stray trailing space in the old '3.1.0 ' entry) with fail-fast disabled so all matrix legs report - Update actions/checkout to v4 - Point CodeQL at the main branch (it targeted the nonexistent master) and upgrade github/codeql-action from the sunset v1 to v3 - Remove the stale Travis CI config Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159sPGBuYwWZLMknPaw6AK4
- Declare logger as a runtime dependency: Ruby 3.5 moved it from default gems to bundled gems, so it must be declared to be loadable under Bundler (this also silences the deprecation warning on 3.4) - Add ostruct to the Gemfile's test group for the plugin loader spec fixture, which is a bundled gem as of Ruby 3.5 for the same reason - Match NoMethodError messages with either quoting style in the raw loader spec: Ruby 3.4 changed `danger!' to 'danger!' Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159sPGBuYwWZLMknPaw6AK4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documents the architecture, loading pipeline, and plugin bridge; assesses
current health (test suite, CI, lockfile compatibility); catalogs nine
empirically confirmed bugs with file/line references; and lists design
flaws, security considerations, and prioritized improvements.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_0159sPGBuYwWZLMknPaw6AK4