refactor(platform-integrations): namespace shared lib under lib/evolve-lite/#258
refactor(platform-integrations): namespace shared lib under lib/evolve-lite/#258illeatmyhat wants to merge 3 commits into
Conversation
…e-lite/ The shared lib (entity_io, config, audit) now renders to lib/evolve-lite/ on every host instead of a bare lib/ — and .bob/lib/evolve-lite/ for bob, replacing .bob/evolve-lib/. Skill scripts resolve it by walking ancestors for lib/evolve-lite/, so multiple plugins can share a host's lib/ directory without their modules colliding. The canonical source stays flat (plugin-source/lib/); build_plugins.py applies a shared target rewrite to namespace it at render time. install.sh and the platform-integration tests are updated to the new layout. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthroughStandardizes the plugin shared-library layout to lib/evolve-lite/ across build output, platform integrations (Bob, Claude, Claw, Codex), installer, tests, and docs; scripts now search ancestor paths for lib/evolve-lite/entity_io.py and the build emits lib/evolve-lite/ via a shared rewrite. ChangesShared Library Path Standardization
🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
plugin-source/_bob/README.md (1)
23-23: ⚡ Quick winUse consistent path notation with line 22.
Line 22 documents the skills directory as
~/.bob/skills/(absolute path with tilde), but this line uses.bob/lib/evolve-lite/(relative path). For consistency, since Bob installs to the user's home directory, both should use the same notation.📝 Suggested fix
-- Shared library in `.bob/lib/evolve-lite/` +- Shared library in `~/.bob/lib/evolve-lite/`🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugin-source/_bob/README.md` at line 23, Update the path notation for the shared library entry so it matches the absolute-tilde style used on line 22: replace the string ".bob/lib/evolve-lite/" with "~/.bob/lib/evolve-lite/" in the README (ensure you update the exact text ".bob/lib/evolve-lite/" to the tilde-prefixed "~/.bob/lib/evolve-lite/" so both entries use the same notation as "~/.bob/skills/").
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@platform-integrations/install.sh`:
- Line 1072: The printed status message is inconsistent: the existence check
uses (plugin_dir / 'lib' / 'evolve-lite' / 'entity_io.py') but the printed label
shows "lib/entity_io.py"; update the printed label to match the actual path
being checked (e.g., "lib/evolve-lite/entity_io.py") in the print statement so
the output accurately reflects the checked file; locate the print(...) call that
contains "lib/entity_io.py" and change only the displayed path string to match
the checked path.
---
Nitpick comments:
In `@plugin-source/_bob/README.md`:
- Line 23: Update the path notation for the shared library entry so it matches
the absolute-tilde style used on line 22: replace the string
".bob/lib/evolve-lite/" with "~/.bob/lib/evolve-lite/" in the README (ensure you
update the exact text ".bob/lib/evolve-lite/" to the tilde-prefixed
"~/.bob/lib/evolve-lite/" so both entries use the same notation as
"~/.bob/skills/").
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 178777f9-09ba-47ce-8c34-496242a4ab14
📒 Files selected for processing (66)
platform-integrations/INSTALL_SPEC.mdplatform-integrations/bob/evolve-lite/README.mdplatform-integrations/bob/evolve-lite/lib/evolve-lite/__init__.pyplatform-integrations/bob/evolve-lite/lib/evolve-lite/audit.pyplatform-integrations/bob/evolve-lite/lib/evolve-lite/config.pyplatform-integrations/bob/evolve-lite/lib/evolve-lite/entity_io.pyplatform-integrations/bob/evolve-lite/skills/evolve-lite-learn/scripts/save_entities.pyplatform-integrations/bob/evolve-lite/skills/evolve-lite-provenance/scripts/log_influence.pyplatform-integrations/bob/evolve-lite/skills/evolve-lite-publish/scripts/publish.pyplatform-integrations/bob/evolve-lite/skills/evolve-lite-recall/scripts/retrieve_entities.pyplatform-integrations/bob/evolve-lite/skills/evolve-lite-subscribe/scripts/subscribe.pyplatform-integrations/bob/evolve-lite/skills/evolve-lite-sync/scripts/sync.pyplatform-integrations/bob/evolve-lite/skills/evolve-lite-unsubscribe/scripts/unsubscribe.pyplatform-integrations/claude/plugins/evolve-lite/lib/evolve-lite/__init__.pyplatform-integrations/claude/plugins/evolve-lite/lib/evolve-lite/audit.pyplatform-integrations/claude/plugins/evolve-lite/lib/evolve-lite/config.pyplatform-integrations/claude/plugins/evolve-lite/lib/evolve-lite/entity_io.pyplatform-integrations/claude/plugins/evolve-lite/skills/evolve-lite/learn/scripts/save_entities.pyplatform-integrations/claude/plugins/evolve-lite/skills/evolve-lite/provenance/scripts/log_influence.pyplatform-integrations/claude/plugins/evolve-lite/skills/evolve-lite/publish/scripts/publish.pyplatform-integrations/claude/plugins/evolve-lite/skills/evolve-lite/recall/scripts/retrieve_entities.pyplatform-integrations/claude/plugins/evolve-lite/skills/evolve-lite/subscribe/scripts/subscribe.pyplatform-integrations/claude/plugins/evolve-lite/skills/evolve-lite/sync/scripts/sync.pyplatform-integrations/claude/plugins/evolve-lite/skills/evolve-lite/unsubscribe/scripts/unsubscribe.pyplatform-integrations/claw-code/plugins/evolve-lite/lib/evolve-lite/__init__.pyplatform-integrations/claw-code/plugins/evolve-lite/lib/evolve-lite/audit.pyplatform-integrations/claw-code/plugins/evolve-lite/lib/evolve-lite/config.pyplatform-integrations/claw-code/plugins/evolve-lite/lib/evolve-lite/entity_io.pyplatform-integrations/claw-code/plugins/evolve-lite/skills/evolve-lite/learn/scripts/save_entities.pyplatform-integrations/claw-code/plugins/evolve-lite/skills/evolve-lite/provenance/scripts/log_influence.pyplatform-integrations/claw-code/plugins/evolve-lite/skills/evolve-lite/publish/scripts/publish.pyplatform-integrations/claw-code/plugins/evolve-lite/skills/evolve-lite/recall/scripts/retrieve_entities.pyplatform-integrations/claw-code/plugins/evolve-lite/skills/evolve-lite/subscribe/scripts/subscribe.pyplatform-integrations/claw-code/plugins/evolve-lite/skills/evolve-lite/sync/scripts/sync.pyplatform-integrations/claw-code/plugins/evolve-lite/skills/evolve-lite/unsubscribe/scripts/unsubscribe.pyplatform-integrations/codex/plugins/evolve-lite/lib/evolve-lite/__init__.pyplatform-integrations/codex/plugins/evolve-lite/lib/evolve-lite/audit.pyplatform-integrations/codex/plugins/evolve-lite/lib/evolve-lite/config.pyplatform-integrations/codex/plugins/evolve-lite/lib/evolve-lite/entity_io.pyplatform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/learn/scripts/save_entities.pyplatform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/provenance/scripts/log_influence.pyplatform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/publish/scripts/publish.pyplatform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/recall/scripts/retrieve_entities.pyplatform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/subscribe/scripts/subscribe.pyplatform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/sync/scripts/sync.pyplatform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/unsubscribe/scripts/unsubscribe.pyplatform-integrations/install.shplugin-source/_bob/README.mdplugin-source/build_plugins.pyplugin-source/skills/evolve-lite/learn/scripts/save_entities.pyplugin-source/skills/evolve-lite/provenance/scripts/log_influence.pyplugin-source/skills/evolve-lite/publish/scripts/publish.pyplugin-source/skills/evolve-lite/recall/scripts/retrieve_entities.py.j2plugin-source/skills/evolve-lite/subscribe/scripts/subscribe.pyplugin-source/skills/evolve-lite/sync/scripts/sync.pyplugin-source/skills/evolve-lite/unsubscribe/scripts/unsubscribe.pytests/platform_integrations/AGENTS.mdtests/platform_integrations/test_audit.pytests/platform_integrations/test_bob_sharing.pytests/platform_integrations/test_codex.pytests/platform_integrations/test_config.pytests/platform_integrations/test_entity_io.pytests/platform_integrations/test_entity_io_core.pytests/platform_integrations/test_idempotency.pytests/platform_integrations/test_plugin_structure.pytests/platform_integrations/test_subscribe.py
… path notation Address CodeRabbit review on #258: - install.sh: codex status line label now matches the path it checks (lib/evolve-lite/entity_io), consistent with the bob status line. - _bob/README.md: shared-library path uses ~/.bob/ tilde notation to match the skills-directory entry above it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codex ReviewTarget: branch diff against main The relocated Bob library path is not included in Bob's uninstall/purge cleanup, leaving installed artifacts behind after uninstall. The main runtime lookup changes otherwise appear internally consistent. Review comment
|
What
The shared lib (
entity_io,config,audit) now renders tolib/evolve-lite/on every host instead of a barelib/— and.bob/lib/evolve-lite/for bob, replacing.bob/evolve-lib/.Skill scripts resolve the lib by walking ancestors for
lib/evolve-lite/, so multiple plugins can share a host'slib/directory without their modules colliding. This establishes a namespacing standard (lib/<plugin>/) for plugins to coexist.How
plugin-source/lib/).build_plugins.pygains aSHARED_TARGET_REWRITESrule (^lib/→lib/evolve-lite/) applied to every platform at render time, so a new platform inherits it automatically..j2): resolution snippet simplified to a single ancestor-walk forlib/evolve-lite/, dropping the oldlib/evolve-libdual candidates.install.sh: bob copies the lib to.bob/lib/evolve-lite/; bob + codex status lines updated.tests/platform_integrations/.INSTALL_SPEC.md,plugin-source/_bob/README.md,tests/platform_integrations/AGENTS.md.Verification
build_plugins.py check— clean (no drift)🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Refactor
Tests