Releases: Neilblaze/portscope
Releases · Neilblaze/portscope
Release list
v1.8.5
What's new in PortScope v1.8.5
Added
- Multi-Port Log Interleaving — The
logscommand now supports unified tailing. By passing multiple comma-separated ports (e.g.,portscope logs 3000,5000) or using the--allflag (portscope logs --all), PortScope will dynamically multiplex logs from all active development processes into a single terminal window. Each stream is color-coded and prefixed (e.g.,[node :3000]), and the internal line-buffer ensures that high-throughput outputs, like JSON stack traces, do not tear or inject tags mid-line.
v1.8.4
What's new in PortScope v1.8.4
Added
- Instant Provider Revocation — The
/revokecommand now supports an optional provider argument (e.g./revoke openai). Passing the provider name automatically bypasses the interactive confirmation prompts and instantly revokes the associated key for seamless workflow. - Live Mode for
listCommand — Completely redesigned thelist --livepolling architecture. Separated the heavy background process/port polling (updates every 2 seconds) from the terminal UI rendering loop (updates every 1 second). This allows processUPTIMEto tick flawlessly per-second for a significantly smoother and more responsive terminal experience.
Changed
- Release Automation Formatting — Restructured the
release.tomlfile to inject the official PortScope Hero Banner and standardized markdown headings natively into GitHub Release notes for future automated versions. - Robust Signal Handling — Deep architectural reliability optimizations targeting OS-level signal handling to ensure graceful process termination and interrupt catches across varied terminal environments.
Fixed
- Usage Metrics Persistence — Fixed a critical bug where
/usagemetrics were resetting entirely upon exiting the interactive session. Telemetry data now correctly syncs to~/.portscope/metrics.jsonvia nativefsmethods, accurately tracking LLM token consumption, costs, and context compactions indefinitely. - Windows Watch Mode Interrupts — Resolved an issue affecting Windows users where interrupting
watchmode failed to correctly catch signals and terminate associated sub-processes, resulting in stalled terminal states.
v1.8.3
Added
- Dependabot Automation — Configured
.github/dependabot.ymlfor weekly ecosystem package updates and automatic PR generation for both the core CLI tool and the React website. - Website CI Checks — Added a
test-websitejob to.github/workflows/pr-checks.ymlthat automatically lints and builds the React website on every pull request. - Explicit Cancellation Option — Added a
0(Exit/Cancel) option to the model selection prompt in interactive mode, allowing users to back out gracefully without selecting a model. - Live Pricing Synchronization — Enhanced the
/usagedashboard to auto-sync LLM pricing data seamlessly in the background. The CLI now performs an unawaited, asynchronous fetch to pull the latestllm-pricing.json(maintained every 12h via GitHub Actions) directly from the repository if the local user cache is older than 24 hours. This ensures cost estimates remain completely accurate for existing users without requiring a CLI update.
Changed
- Node 18 CI Deprecation — Dropped Node 18 from the GitHub Actions (
pr-checks.yml) test matrix to focus CI test cycles exclusively on active LTS (Node 20) and current (Node 22) environments. - PNPM CI Migration — Fully migrated GitHub Actions pipelines (
pr-checks.yml,coverage.yml,deploy-website.yml,release.yml) fromnpmtopnpmusing native cache configuration for significantly faster builds. - Model Discovery Strict Filtering — Overhauled the model fetching logic (
src/config/models.js) with a strictcleanModelListsanitizer. Actively filters out non-chat capabilities (e.g.,transcribe,tts,diarize,search,image, and experimentalossvariants) ensuring only relevant conversational models are displayed in the CLI. AddedmodelsUrltoschema.jsfor OpenAI and Gemini for dynamic discovery. - Advanced Pricing Resolution — Rewrote cost estimation logic in
src/ai/usage.jsto ingest the dynamically syncedsrc/data/llm-pricing.json. Replaced basic fallback mapping with an intelligentgetRates()resolver that automatically accounts for provider prefixes and model variations. - UI Aesthetics & Alignment — Upgraded the provider-flow prompts to use rich
chalk.bgGreen(✔) andchalk.bgRed(✕) block icons for action feedback. Fixed terminal spacing and alignment for API key outputs. Adjusted ASCII banner spacing. - Test Coverage & Error Styling — Expanded native Node.js test suite with robust UI formatting (
src/ui/format.js) and error sanitation (src/config/sanitize-error.js) coverage. Replaced basicsanitizeErrorglobally with styledformatChatError. Reached 296 total tests with 100% test coverage in targeted files, pushing overall line coverage past 50.90%.
Fixed
- Documentation Links — Fixed malformed paths to the
CONTRIBUTING.mdandAI_USAGE_POLICY.mdfiles acrossREADME.mdandCODE_OF_CONDUCT.md.

