# Release v0.13.20 - Changelog

Released: 2026-02-17

## Overview

This release expands the genome dashboard with comprehensive cancer predisposition markers and adds user feedback collection for completed agent tasks.

## Features

### Agent Task Feedback System
- **Thumbs up/down feedback buttons** on completed agent cards — users can rate task outcomes as positive, negative, or neutral
- **Optional comment input** for more detailed feedback with neutral rating option
- **Feedback statistics API** (`GET /api/cos/feedback/stats`) aggregating satisfaction rate, breakdown by task type, and recent comments
- **Real-time visual feedback** confirmation with toast notifications and button state changes
- **Proactive feedback toast notifications** — when agents complete tasks, a toast notification appears with inline thumbs up/down buttons, prompting for immediate feedback without requiring navigation to the Agents tab
- Persisted in agent state for historical analysis and learning improvements
- Addresses COS-GOALS.md requirement: "User satisfaction feedback" metric tracking and "Prompt user for feedback on completed tasks"

### Digital Twin — Cancer Predisposition Marker Expansion
- **37 new cancer predisposition SNP markers** added across 7 new cancer subcategories plus expanded tumor suppression and thyroid categories
- **Breast & Ovarian Cancer** (12 markers): FGFR2, TOX3, MAP3K1, 2q35, LSP1, 5p12/FGF10, SLC4A7, CASP8 (protective), 3 BRCA Ashkenazi founder mutations (FDA-approved), BNC2 (ovarian)
- **Prostate Cancer** (6 markers): Three independent 8q24 region signals, MSMB, HNF1B, 17q24
- **Colorectal Cancer** (4 markers): SMAD7 (protective), EIF3H, 11q23, GREM1
- **Lung Cancer** (3 markers): CHRNA3, CHRNA5, CHRNA3/5 region — nicotinic receptor variants affecting smoking intensity and lung cancer risk
- **Melanoma** (2 markers): MC1R R160W, TYRP1
- **Bladder Cancer** (3 markers): NAT2 slow acetylator tag, 8q24, TP63
- **Digestive Cancer** (3 markers): ABO blood group (pancreatic), NR5A2 (pancreatic protective), MUC1 (gastric)
- **Tumor Suppression** expanded (3 markers): TERT multi-cancer, MDM2 p53 attenuator, CHEK2 DNA damage response
- **Thyroid** expanded (2 markers): NKX2-1, DIRC3 papillary thyroid cancer
- **Reorganized cancer categories**: Replaced single `cancer_risk` with specific cancer type subcategories for clearer organization; moved KRAS to tumor suppression (multi-cancer)

### Moltworld Platform Support
- **New platform: Moltworld** — a shared voxel world (480x480 grid) where AI agents move, build structures, think out loud, communicate, and earn SIM tokens
- **Agent registration** via Moltworld API with automatic `agentId`-based auth (no claim step needed, unlike Moltbook)
- **World actions**: Join/move (heartbeat), explore (random/targeted movement), build (place/remove blocks), think (visible thoughts), say (messaging)
- **SIM token economy**: 0.1 SIM/hour while online; balance tracking via dedicated endpoint
- **Rate limiting**: Per-action cooldowns (join: 5s, build: 1s, think: 5s) plus global 60 req/min sliding window
- **Scheduled automation**: 5 new action types — `mw_heartbeat`, `explore`, `build`, `say`, `interact` — with platform-aware schedule form filtering
- **Platform-aware UI**: Quick actions switch between Moltbook (Engage, Check Posts) and Moltworld (Explore, Build) based on selected account; schedule action dropdown filters by platform
- **Connection testing**: Profile + balance check for Moltworld accounts in the Test Connection flow

### Moltworld "World" Tab
- **Dedicated World tab** on agent detail page — visible only for agents with Moltworld accounts, hidden for Moltbook-only agents
- **World Status card** showing online/offline state, position, SIM balance, earning rate, total earned, and online time with refresh button
- **Nearby Agents panel** populated from join/explore responses with agent names, positions, and distances
- **Recent Messages panel** showing messages and thoughts from nearby agents (expire after 5 min per API)
- **Move/Explore actions** with X/Y coordinate inputs and optional thinking text, plus "Random Explore" for random movement
- **Think action** for sending visible thoughts to nearby agents
- **Build action** with X/Y/Z inputs, block type selection (wood/stone/dirt/grass/leaves), and place/remove toggle
- **Say action** for broadcasting messages or sending DMs to specific agent IDs
- **Rate limit badges** with animated cooldown timers matching ToolsTab pattern
- **Deep-linkable** at `/agents/:id/world`
- New server endpoints: `POST /think` (direct thought API) and `POST /say` (message via join)

### Moltworld Explorer Script
- **Standalone exploration script** (`server/scripts/moltworld-explore.mjs`) — wanders the world, thinks AI-generated thoughts, greets nearby agents, and earns SIM tokens
- **LM Studio integration** — generates contextual thoughts using local `gpt-oss-20b` model (configurable via `LMSTUDIO_MODEL`), with automatic fallback to curated thoughts when unavailable
- **Configurable intervals** — join frequency (default 3-9 min random), model, LM Studio URL, and duration all configurable via env vars
- **COS autonomous job** (`job-moltworld-exploration`) — daily scheduled job to run the explorer script
- **Efficient heartbeat** — joins every 3-9 minutes (within 10-minute expiry window) instead of every 8 seconds, reducing API calls while staying online

### Moltworld Sky Maze Builder
- **Procedural maze builder** (`server/scripts/moltworld-maze.mjs`) — generates and builds a stone maze floating in the sky using recursive backtracking DFS
- **Configurable** — maze size (3-12 cells), position, height (Z), wall height, block type, optional seed for reproducible mazes
- **Rate-limit compliant** — 1.1s between builds, auto-heartbeat every 50 blocks, handles 429 responses with retry
- **Resumable** — progress saved to `data/moltworld-maze-progress.json` after every block; interrupted builds resume from where they left off
- **Progress thoughts** — agent thinks out loud while building ("Placing block 150/449... the maze takes shape")

### Platform Tab Improvements
- **Renamed "Tools" tab to "Moltbook"** (📚 icon) for clarity — tab only visible for agents with Moltbook accounts
- **Conditional platform tabs** — Moltbook and World tabs auto-hide when agent lacks the corresponding platform account

### Moltworld Real-time WebSocket Integration
- **Server-side WebSocket relay** (`server/services/moltworldWs.js`) — connects to `wss://moltworld.io/ws` and streams real-time events (agent movements, thoughts, messages, interactions, presence snapshots) through the existing Socket.IO infrastructure
- **Connection control routes** at `/api/agents/tools/moltworld/ws/` — connect, disconnect, status, plus WebSocket-based move, think, nearby, and interact endpoints for lower-latency actions
- **Live Feed panel** in World tab — scrollable real-time event stream with per-event icons, agent names, event type badges, timestamps, and "(live)" indicator when connected
- **Connection banner** with status dot (green=connected, yellow=connecting, gray=disconnected) and Connect/Disconnect button
- **WebSocket-based actions** — when WS is connected, Move and Think actions route through WebSocket for lower latency; Say DMs use the interact endpoint
- **Real-time Nearby Agents** — presence data from WebSocket automatically merges with REST-fetched nearby agents, with "(live)" indicator
- **Explorer script WS mode** — `MOLTWORLD_USE_WS=true` env var routes movements through the PortOS WS relay when available, with automatic REST fallback
- **Automatic reconnection** with exponential backoff (2s to 60s cap); no auto-connect on server restart (requires explicit Connect click)
- **Activity logging** — interaction events from WebSocket are logged to the agent activity service for the Activity tab

### Moltworld Activity History
- **Persistent activity log** in the World tab — all Moltworld actions (explore, think, say, build, heartbeat) are now logged to the agent activity service and displayed in a scrollable "Activity History" card
- **Filterable by action type** — dropdown to filter by Explore, Think, Say, Build, Heartbeat, or show All
- **Paginated** with "Load More" button for browsing older activity
- **Auto-refresh** after each manual action so new entries appear immediately
- **Consistent `mw_` prefix** for all Moltworld action types (`mw_explore`, `mw_build`, `mw_think`, `mw_say`, `mw_heartbeat`, `mw_interact`) — distinguishes them from Moltbook actions in the global activity view
- Activity logging added to think, say, and join routes (previously only explore and build were logged); WebSocket-initiated actions (move, think, interact) also log activity

### Moltworld Action Queue
- **In-memory action queue** per agent — schedule future actions (explore, think, build, say) from the UI that the explore script picks up and executes
- **Action Queue card** at top of the right column in World tab with real-time status updates via Socket.IO
- **Add Action form** — inline toggleable form with action type dropdown and dynamic parameter fields (coordinates, thought text, message, block type, etc.)
- **Cancel pending items** — click X on any pending queue item to remove it
- **Queue status badges** — pending (gray), executing (blue pulse), completed (green), failed (red)
- **Explore script integration** — before each auto-generated action, the script checks the queue for manually-scheduled items and executes them first, respecting rate limits
- **Queue API endpoints**: `GET /queue/:agentId`, `POST /queue`, `DELETE /queue/:id`, `POST /queue/:id/complete`, `POST /queue/:id/fail`

### Dashboard — Upcoming Tasks Preview Widget
- **New UpcomingTasksWidget** on the main dashboard — shows what tasks the CoS will work on next, providing visibility into the autonomous schedule
- **Ready vs scheduled distinction** — tasks ready to run now highlighted in green, scheduled tasks show countdown timer until eligible
- **Learning-adjusted indicators** — tasks with performance-adjusted intervals show trend arrows (up for high-success fast-tracked tasks, down for struggling tasks with extended cooldowns)
- **Task metadata** — each row shows task icon, description, interval type (daily/weekly/rotation), last run time, and success rate when available
- **New API endpoint** `GET /api/cos/upcoming` returns upcoming tasks sorted by eligibility time with timing info
- **Service function `getUpcomingTasks()`** in taskSchedule.js calculates eligibility, formats timing, and respects learning-based interval adjustments
- Addresses user preference for "quick visual summaries" and helps understand CoS behavior

### Custom PM2_HOME Support for Isolated App Instances
- **Per-app PM2_HOME configuration** — apps can now specify a custom `pm2Home` path to manage processes in a separate PM2 daemon instance, useful for apps that ship with their own PM2 setup (e.g., apps with embedded PM2 ecosystems)
- **Smart process grouping** — the apps list route now groups apps by their PM2_HOME and queries each PM2 instance separately, so process statuses are correctly fetched from the right daemon
- **All PM2 operations support custom home** — start, stop, restart, delete, status, and logs all pass the custom PM2_HOME via environment variable when specified
- **Backwards compatible** — apps without `pm2Home` continue using the default shared PM2 daemon

### Digital Twin — Aesthetic Taste Prompting Spec (brain idea 608dc733)
- **Promoted brain idea 608dc733** ("Prompting Aesthetic Taste Docs via Digital Twin") from dormant idea to concrete P2.5 spec in PLAN.md under M42: Unified Digital Twin Identity System
- **Defined 7 aesthetic domains** for taste capture: movies, music, visual art, architecture, food, plus 2 new domains (fashion/texture and digital/interface aesthetics)
- **Designed conversational prompting flow** — twin reads existing identity documents (BOOKS.md, AUDIO.md, CREATIVE.md, PREFERENCES.md) and enrichment answers to generate personalized follow-up questions that reference things it already knows about the user
- **Specified data model** — taste-profile.json v2.0.0 schema (extended with source tracking, generated question storage, identity context provenance) and aesthetics.json as the canonical synthesized profile
- **Relaxed P1 prerequisite** — P2.5 can read identity documents directly without the Identity orchestrator, unblocking implementation
- **9-step implementation plan** covering new sections, context aggregation, LLM-powered question generation, API routes, UI updates, and data migration

### Load Sample Providers from AI Toolkit
- **"Load Samples" button** on the AI Providers page — discovers new sample providers from `portos-ai-toolkit` that aren't yet in your configuration
- **Per-provider "Add" button** with name, type badge, command/endpoint, models, and env vars displayed for each sample
- **"Add All" bulk action** when multiple samples are available
- **Toolkit `getSampleProviders()` API** — reads toolkit defaults and overlays PortOS-specific samples (e.g., `claude-code-bedrock`), filtering out already-configured providers
- **`claude-code-bedrock` sample provider** — pre-configured Bedrock provider with `CLAUDE_CODE_USE_BEDROCK=1` env var, disabled by default
- Updated `portos-ai-toolkit` to 0.5.0

### Dependency Management
- **Switched `portos-ai-toolkit` from git to npm** — dependency now resolves from npm registry (`^0.5.0`) instead of a GitHub git tag, ensuring consistent version resolution and pulling latest toolkit updates (0.4.0 → 0.5.0)

## Improvements

### Brain Scheduler — Failure Cooldown
- **30-minute retry cooldown** after failed daily digest or weekly review tasks — prevents retry spam by tracking last failure time and skipping missed-task checks during the cooldown period
- Failed catch-up attempts now log "(retry in 30min)" for visibility
- Eliminates excessive retry attempts that would otherwise occur every minute after a failure

### CoS — Consolidated Duplicate Repo Maintenance Jobs
- **Merged `job-git-maintenance` into `job-github-repo-maintenance`** — the two jobs had overlapping scope (local git repo checks vs GitHub API audits) and are now a single unified job covering both local and remote repository maintenance
- Removed `git-maintenance` skill template; consolidated local repo checks (uncommitted changes, stale branches) into the `github-repo-maintenance` skill template
- **Enabled `job-github-repo-maintenance`** — activated the unified GitHub repo maintenance job for weekly automated audits covering security alerts, stale dependencies, missing CI/README/license, uncommitted local changes, and stale branches
- Cleaned up stale `job-git-maintenance` data entry left behind after the merge

### CoS Health Check — Auto-restart Errored PM2 Processes
- **Automated recovery for errored PM2 processes** — the health check now auto-restarts any process in `errored` state instead of just reporting it as an issue
- Attempts `pm2 restart <name>` for each errored process and logs success/failure per process
- Failed restarts surface as `error` issues; successful restarts surface as `warning` issues so the UI reflects what happened
- Eliminates manual intervention for transient crashes (e.g., bituniverse) that PM2's built-in `max_restarts` has already exhausted

### PM2 Standardizer Reliability
- **Fixed timeout race condition** in `executeCliAnalysis` — the promise could be rejected twice (once by timeout, once by the killed child's close event); now uses a `settled` guard and clears the timer on completion
- **Increased default timeout** from 120s to 180s for both CLI and API providers — CLI LLM analysis of projects without existing ecosystem configs often exceeds 2 minutes
- **Added API fetch timeout** — `executeApiAnalysis` now uses `AbortController` with the same provider timeout, preventing indefinite hangs on unresponsive API endpoints
- **Added timing diagnostics** — `analyzeApp` now logs the provider name, type, and elapsed time for each analysis, making slow provider issues easier to diagnose

### CoS Dashboard Activity Calendar
- **GitHub-style activity heatmap** — the CosDashboardWidget now displays a compact contribution-style calendar showing the last 8 weeks of CoS task completion
- **Color-coded intensity** — squares colored by volume (more tasks = brighter) and success rate (green for 80%+, amber for 50-79%, red for <50%)
- **Streak indicator** — shows current daily streak with flame icon badge
- **Interactive tooltips** — hover on any day to see date, task count, and success rate
- **Today highlight** — current day marked with accent ring
- **Summary stats** — total tasks, active days, and overall success rate displayed below the calendar
- **Mini legend** — visual guide showing Less-to-More color scale
- **New API endpoint** — `GET /api/cos/productivity/calendar?weeks=N` returns calendar-optimized daily activity data with intensity calculations
- Directly addresses user preference for "quick visual summaries of recent task completion directly on the dashboard"

### Goal Progress Dashboard Widget
- **Visual goal progress tracking** — new dashboard widget maps completed CoS tasks to goal categories defined in COS-GOALS.md
- **5 goal categories** tracked: Codebase Quality, Self-Improvement, Documentation, User Engagement, and System Health — each with icon, color, and task type mappings
- **Engagement levels** — progress bars show relative task volume per goal (low/medium/high based on completed tasks)
- **Success rate indicators** — each goal shows its success percentage with color-coded status (green >80%, amber 50-80%, red <50%)
- **Insights row** — highlights most active and least active (needs attention) goal areas
- **Parses COS-GOALS.md** — dynamically reads Active Goals section to extract goal names and items
- **Task-to-goal mapping** — analyzes task types and keywords from learning data to attribute tasks to appropriate goals
- **New API endpoints** — `GET /api/cos/goal-progress` (full data) and `GET /api/cos/goal-progress/summary` (compact for dashboard)
- Addresses COS-GOALS.md "Metrics to Track" requirement and user preference for key performance metrics displayed prominently

### Brain Ideas — Status Tracking & Done State
- **Added `status` field to brain ideas** (`active`/`done`) — ideas can now be marked as done/ingested once they've been promoted to PLAN.md or implemented, preventing them from generating duplicate auto-tasks
- **Status filter dropdown** for ideas in the Memory tab — filter ideas by active or done status, matching the existing pattern for projects and admin items
- **Quick "mark done" button** (checkmark icon) on project, idea, and admin record cards — one-click status update without opening the edit form
- **Idea status badges** with color coding (yellow=active, gray=done) in the record list view
- **Updated autonomous job prompts** — project-review job now queries `?status=active` to skip done projects; brain-processing job skips done ideas when creating CoS tasks
- **Marked genome-related brain items as done** — Genome Section Integration project (0e6a0332), Aesthetic Taste idea (608dc733), and Chronotype Trait idea (284dd487) all marked done with notes indicating ingestion into PLAN.md M42
- Prevents the duplicate task generation loop where done brain items kept generating new CoS tasks for already-spec'd work

### Genome Section UI — Upload Flow, Category Navigation & Status Dashboard
- **Step-by-step 23andMe upload instructions** — guided flow showing exactly how to download raw data from 23andMe with numbered steps
- **Post-upload pipeline overview** — 3-step visual showing Upload → Scan → Explore to set expectations for new users
- **Category overview dashboard** — visual grid of all marker categories with proportional status bars (beneficial/typical/concern/major), clickable to jump to that category
- **Status legend** — color key explaining the meaning of each status in the overview grid
- **Sticky category quick-nav bar** — horizontal scrollable bar that sticks to the top when scrolling, with emoji-labeled buttons for each category
- **Scroll-to-category** — clicking any category in the overview grid or quick-nav bar smooth-scrolls to that category's marker cards
- Unblocks downstream Chronotype, Aesthetic Taste, and Goal Tracker implementations by establishing the genome section as a navigable, category-organized reference

### Braille Spinner Loading Indicators
- **New `<BrailleSpinner>` component** — compact, monospace-friendly animated spinner using braille unicode frames (`⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏` at 80ms) that fits PortOS's dark terminal aesthetic
- **Replaced plain "Loading..." text** across 16 loading states — Dashboard, Apps, Uploads, Chief of Staff, Prompt Manager, Agent Detail, Agent List, all agent tabs (Overview, Tools, World, Published, Schedules, Activity), DevTools (History, Runs, Processes, Git, Usage), and the lazy-load fallback in App.jsx
- Zero new dependencies — the braille frame data is inlined directly (~100 bytes), inspired by the `unicode-animations` npm package concept without the supply-chain risk

### CyberCity UX Improvements
- **Improved building status colors** — stopped buildings now use red (#ef4444) with a faster pulse for urgency instead of amber; not-started uses violet (#8b5cf6) for better distinction from online; archived uses lighter slate (#64748b) for visibility against the dark background
- **Enhanced HUD readability** — increased font sizes across all HUD panels, stronger background opacity (85%) and border contrast, larger touch targets (40px settings button, 32px agent bar items)
- **Collapsible activity log** — click header to collapse/expand; entries now show colored level indicators (dot per severity), hover-to-expand truncated messages, improved scrollbar styling
- **Settings panel polish** — section descriptions explain each group's purpose, tooltip descriptions on every toggle and slider, sticky header when scrolling, visual section dividers, corrected slider gradient for min-offset ranges
- **Building click navigation** — clicking a building now navigates to that specific app's page (`/apps/:id`) instead of the generic apps list
- **Holographic building labels** — show process count, status icons, and "CLICK TO VIEW" hint; stopped buildings use red border for consistency
- **Status legend** — new HUD panel explaining building color meanings (online/stopped/not started/archived)
- **Improved loading screen** — larger title with glow, animated progress bar, and loading subtitle
- **Ground improvements** — larger grid cells (2x) with brighter section lines, enhanced fog density for depth
- **Agent bar improvements** — larger touch targets with glow on status dots, better scrollbar styling, tooltip with agent state details

## Fixes

### GitHub Repo Maintenance Skill Template — Improved Reliability
- **Fixed Dependabot alert detection** — the skill template now specifies the correct `dependabot/alerts` API endpoint with open-state filtering, replacing the non-functional `vulnerability-alerts` endpoint that caused the Feb 15 first run to report 0 security alerts (actual: 196 across 6 repos)
- **Increased repo list limit** from 100 to 200 — the account has 100+ repos; lower limits caused the Feb 16 run to only audit 40 of 97 non-archived repos
- **Added open PR auditing** (step 5) — checks for accumulated bot PRs (Dependabot, Snyk) and human PRs needing attention; the Feb 16 run found 45 open PRs across 6 repos that were invisible to the original template
- **Added result verification** — if all repos return 0 security alerts, the template now instructs the agent to verify against known-alert repos before reporting "all clear"
- **Added duplicate task prevention** — template now instructs agents to check existing CoS tasks before creating new ones to avoid duplication across weekly runs

### Agent Resume — System Task Support
- **Resume button now available for system agent tasks** — previously the Resume button was hidden for system (CoS-internal) agents; now both user and system agents show the Resume button on completed agent cards
- **Task type preservation** — resumed system tasks correctly create new `internal` type tasks (written to `COS-TASKS.md`) instead of defaulting to user tasks; ensures system task workflows maintain their proper task type
- **Visual indicator** — the Resume modal shows "Resume System Agent Task" title when resuming a system agent, clarifying what type of task will be created

### Dashboard — Suppress "Not Found" Toast Errors for Optional Widgets
- **Fixed multiple "Not found" toast errors** appearing when navigating to the dashboard — the CosDashboardWidget and GoalProgressWidget fire API calls for supplementary data (activity calendar, learning summary, goal progress, etc.) that correctly handle missing data via `.catch(() => null)`, but the centralized `api.request()` function was showing error toasts before the error was thrown and caught
- **Added `silent` option to `api.request()`** — callers can pass `{ silent: true }` to suppress automatic toast notifications for non-critical requests, while still throwing errors for programmatic handling
- Updated CosDashboardWidget (4 API calls) and GoalProgressWidget (1 API call) to use `{ silent: true }` since these widgets gracefully degrade when data is unavailable

### Autofixer — PATH Inheritance for nvm Environments
- **Fixed `pm2 jlist` failing with "env: node: No such file or directory"** — the autofixer process spawns child shells via `exec()` that didn't inherit the nvm PATH; added `PATH: process.env.PATH` to the autofixer's PM2 env config so child processes can find node/pm2

### PM2 Scripts — Removed Project-Local PM2_HOME Isolation
- **Simplified PM2 npm scripts** — removed `PM2_HOME=.pm2` and local binary path from all pm2:* scripts; now uses global pm2 installation directly
- **Native pm2 commands work** — `pm2 logs`, `pm2 status`, `pm2 monit` etc. now work without wrappers since PortOS shares the global `~/.pm2` daemon
- **Cleaned up stale local .pm2 directory** — the project-local PM2 daemon was causing "invalid pid" errors when state got out of sync with the global daemon

### CoS Sub-Nav Overflow Scroll Arrows
- **Horizontal scroll arrows for CoS tab navigation** — the 12-tab sub-nav now shows left/right chevron buttons with gradient fades when tabs overflow, allowing navigation to all tabs (Briefing through Config) without collapsing the side panel
- **Scroll detection** — arrows appear only when there's content in that direction; smooth scroll animation on click
- **Desktop-friendly** — previously users had no visible way to scroll on desktop; now scroll arrows provide clear navigation affordance

### Custom PM2_HOME Auto-Detection
- **Automatic pm2Home extraction during app detection/ingestion** — the streaming detector now parses ecosystem.config.js for `const PM2_HOME = ...` declarations and extracts the custom path
- **Template literal support** — handles common patterns like `` `${require("os").homedir()}/.pm2-grace` `` by resolving the homedir at detection time using `[^`]+` regex pattern that properly captures nested quotes
- **Refresh config updates pm2Home** — the `/api/apps/:id/refresh-config` endpoint now auto-populates pm2Home when re-parsing the ecosystem config, so existing apps can pick up custom PM2_HOME settings without re-ingestion
- **Detection uses correct PM2_HOME for status checks** — when detecting a new app with a custom PM2_HOME, the PM2 status check runs against the correct daemon instance instead of the default
- **Fixed template literal parsing** — the regex now correctly handles nested quotes in template literals (e.g., `require("os")`) instead of stopping at the first quote character
