Releases: CHATS-lab/VibeLens
Releases · CHATS-lab/VibeLens
v1.0.3
Fixed
- npm wrapper Python discovery on Windows:
npm/bin/vibelens.jspreferred thepylauncher overpython3/pythonon Windows, which could resolve to a different Python interpreter than the one on PATH wherepip install vibelensran. The wrapper now prefers PATH-basedpython3/pythonfirst and falls back topyonly if neither has vibelens installed. A two-pass search (vibelens-installedfirst, thenany Python ≥3.10) keeps thenot installederror path working for end users who haven't installed the package yet.
Changed
- Publish workflow (
.github/workflows/publish.yml) now creates a GitHub Release (with changelog-extracted release notes and dist/ artifacts attached) after PyPI upload succeeds. Previously the workflow only pushed to PyPI and the GitHub Releases page was not auto-updated.
v1.0.2
Fixed
- Windows install: lazy-import
fcntl(POSIX-only) and add amsvcrt.lockingfallback sovibelensinstalls and runs on Windows. The previous top-levelimport fcntlinutils/json.pycrashed the CLI at startup. Path.home()captured at import time:StorageConfig/UploadConfig/DonationConfigdefault paths and thePLATFORMSdict both froze the user home at module import, so tests monkey-patchingHOMEorPath.homesaw stale state. Defaults now usedefault_factory;PLATFORMSgets arebuild_platforms()helper for fixtures that need a fresh build.test_agents_endpoint/test_plugin_routes: fixtures now callrebuild_platforms()on setup/teardown so the platform table reflects the patched tmp home.
Docs
.github/workflows/npm-publish.yml: header note flagging thatNPM_TOKENmust be a granular automation token with 2FA bypass (classic personal access tokens now get a 403 from the registry).
v1.0.1
Added
- Local extensions tab now manages skills, subagents, commands, and plugins under one "Local" header with a pill-style type selector. Each type gets install, uninstall, sync-to-agents, and (for editable types) inline editing. Cards click through to a full detail page.
- Extension detail page (shared by Local and Explore) with a collapsible file-tree sidebar, per-file preview/code modes, optional Save in code mode, and a sticky "On this page" TOC that follows scroll. Non-markdown files (
json,yaml,py,sh, …) render in syntax-highlighted code blocks; JSON is pretty-printed. - Explore pill-style type selector replacing the type dropdown. Plugin pill sits between Skill and Subagent; Local tab mirrors the same ordering.
- Per-type tree/file API:
GET /api/extensions/{type}s/{name}/treeand/files/{path}expose the on-disk directory for any locally-installed extension. Path-traversal guarded, 500-entry walk cap, 200 KB file-read cap. Catalog gets an equivalent/catalog/{id}/tree+/files/{path}pair that walks GitHub's Contents API. - Claude plugin discovery across every marketplace.
ClaudePluginStorenow scans~/.claude/plugins/cache/<marketplace>/<name>/<version>/instead of a singlevibelens/bucket, so plugins installed via/plugin install(superpowers, local-plugins, etc.) surface in Local. Plugins auto-import into the central VibeLens store on startup, mirroring the skill flow. - Uninstall confirmation dialog shared by the card and the detail page. Lists every agent the item is synced to and warns that confirming removes it from all of them.
- Topics "+N more" toggle on the detail page when an item has more than 5 topics.
scripts/build_catalog.pyconvertsagent-tool-huboutput into the bundled two-tier catalog (summary + offsets + per-type JSONs).MCP_SERVERextension type.SessionToolUsagemodel +tool_usage_cachemodule backing the per-session warming cache.build_partial_session_indexfor path-scoped trajectory-index rebuilds.
Fixed
- Explore detail content returned "No content available" for every subagent and command. The catalog emits
tree/.../file.mdURLs for ~5,700 single-file items;_resolve_contentappended/SKILL.mdto any tree URL, producing 404s. A newis_github_single_file_treeheuristic (extension whitelist) routes single-file sources through the correct raw URL. - Catalog plugin install + content fetch for bare-repo URLs. Around 10% of catalog plugins use
https://github.com/owner/repowithout a/tree/suffix. AddedGITHUB_REPO_RE+ a sharedparse_github_urlnormalizer;download_directory,list_github_tree, andfetch_github_tree_fileall accept bare-repo URLs now (walked from default branch root). - Plugin content display.
_resolve_contenthas a plugin branch that fetchesREADME.mdfirst, then.claude-plugin/plugin.json, instead of always looking forSKILL.md. Non-plugin bare-repo URLs fall back to the repo's top-level README at HEAD. - Subagent / command install layout. Single-file items land at
{dir}/{name}.md, matching whatuninstall_extensionexpected. Directory-shaped items keep the{dir}/{name}/layout. - Recommendation L4 crash when catalog items had
description=None. Extracted template building into_build_rationale_candidateswithitem.description or ""coercion; the pipeline now returns rationales end-to-end instead of raisingAttributeError. - LiteLLM pricing: Kimi / DeepSeek / Qwen rates corrected against official sources;
claude-opus-4-7pricing added + normalizer prefix extended. - Files that produce no parseable trajectory (Claude Code Desktop file-history snapshots, etc.) are memoized in the index cache and skipped on subsequent startups, eliminating the per-startup parse-and-fail loop.
Changed
- Catalog schema migrated to
agent-tool-hubformat.AgentExtensionItemfield names aligned to the hub;tags → topics,license_name → license. Detail-only fields (scores,item_metadata,readme_description,repo_description,author,author_followers,contributors_count,created_at,discovery_origin,validation_errors) load on demand via byte offsets. - Catalog list API drops
categoryandplatformquery parameters (accepted-but-ignored for backward compatibility). Metadata endpoint returnstopicsinstead ofcategories. - Catalog scoring weights rebalanced (relevance 50%, quality 30%, popularity 15%, composability 5%) since platforms is unavailable this release.
- Plugin store layout: central store remains at
~/.vibelens/plugins/(canonical Claude layout); Claude agent store widens to~/.claude/plugins/cache/and walks two levels (<marketplace>/<name>/). - Cache gating in
services/extensions/catalog:_content_cache/_tree_cacheonly cache successful results, so a transient GitHub 503 no longer pins an hour of errors. - Type selector (Local + Explore) uses the DESIGN.md Apple-style pill pattern (
bg-controltrack withbg-panel shadow-smactive pill) instead of the old segmented toggle or dropdown. - Recommendation card background matches the Explore list card (
border-card bg-panel hover:bg-control/80). - Startup latency increases ~1–3s to warm the new catalog. The legacy
~/.vibelens/catalog/user cache is deleted on startup (contents not migrated). - Trajectory-index cache uses per-file invalidation instead of all-or-nothing. Touching one session JSONL re-parses only that file (~200 ms) rather than rebuilding the whole index (~12 s). Cache file
~/.vibelens/session_index.jsonschema bumps to v3; pre-existing v2 caches are discarded cleanly on first startup. - Dashboard tool-usage warming uses a persisted per-session cache at
~/.vibelens/tool_usage_cache.json. Warm restarts skip ~99% of trajectory loading and complete in <1 s instead of ~2 m 43 s. Cold start cost is unchanged but writes the cache for subsequent runs.
Removed
- Catalog
install_content/install_methodpayloads. Every install now fetches fromsource_urlat install time. - Frontend "Category" and "Platform" filter dropdowns in the Explore tab.
Disabled (temporarily)
_enrich_continuation_refsis commented out — the chain extractor has a bug that misses some links. Re-enable once the bug is fixed.
Unsupported this release
- HOOK install from the catalog returns 501. Hook items still browse and view fine.
- MCP_SERVER install from the catalog returns 501.
- REPO install from the catalog returns 501 (the hub does not emit REPO items).
v1.0.0
Highlights
- Unified extensions system with
BaseExtensionService[T], consolidated API package, and typed frontend client - Catalog install via services — skills, commands, subagents, and hooks route through their respective services for central + agent sync
- Install/manage UI — reusable
CatalogInstallButtonwith diff-based sync target dialog replaces static "Installed" badges - GitHub auth —
GITHUB_TOKENenv var support raises API rate limit from 60 to 5,000 req/hr - Recommendation pipeline — L1-L4 engine with TF-IDF retrieval, multi-signal scoring, and frontend view
- Light mode — full light/dark/system theme with semantic color tokens
- Catalog explorer — browse, search, filter, and install from 1,499 catalog items
- Domain-based logging — 8-domain routing table with per-domain log files and configurable levels
See CHANGELOG.md for full details.