Skip to content

Releases: atomantic/PortOS

v0.11.17

07 Feb 20:34
dbb097d

Choose a tag to compare

Release v0.11.17 - Changelog

Released: YYYY-MM-DD

Overview

This release focuses on security improvements, bug fixes for the AI runner system, and enhanced AI provider model management.

🎉 Features

Universal Model Refresh for AI Providers

  • Model Refresh Button: Added "Refresh Models" button to AI providers on the /devtools/providers page
  • Multi-Provider Support: Refresh now works for both API and CLI providers including:
    • API providers: OpenAI, LM Studio, Ollama (with provider-specific endpoint detection)
    • CLI providers: Claude/Anthropic (returns latest model list)
  • Smart UI: Button is hidden for providers that don't require model specification (e.g., Gemini CLI)
  • User Feedback: Toast notifications show success/failure messages with descriptive error handling
  • Loading States: Button shows "Refreshing..." state during model fetch operations
  • Graceful Degradation: Providers without refresh support show appropriate error messages

Implementation Details:

  • Updated portos-ai-toolkit to support provider-specific refresh strategies
  • Added _refreshAPIProviderModels() for API-based providers with multi-format support
  • Added _refreshCLIProviderModels() with provider detection and API integration
  • Client shows refresh button for all providers (previously API-only)
  • Enhanced error handling with user-friendly toast notifications

Files Modified:

  • portos-ai-toolkit/src/server/providers.js - Universal refresh implementation
  • client/src/pages/AIProviders.jsx - UI updates with toast notifications

Digital Twin Interview & Enrichment Guide

  • Redesigned "Interview" tab as a single-page assessment analyzer + enrichment guide
  • Paste AI personality assessments for automated analysis and twin profile updates
  • Enrichment gap dashboard shows which areas need the most attention
  • Direct navigation from gaps to specific enrichment categories
  • Automatically maps traits to Big Five, values, and communication dimensions
  • Creates new documents for personality dimensions not yet captured
  • Removed session-based chat interface in favor of simpler paste-and-analyze flow

Digital Twin Enrichment UX Improvements

  • Deep-link Enrich buttons: All "Enrich" buttons on gap cards and completeness missing sections now navigate directly to the specific enrichment category (e.g., /digital-twin/enrich?category=values) instead of the generic landing page
  • "Start Enrichment Session" targets top gap: The main CTA button uses the most critical gap's category for immediate action
  • "Enrich Soul" quick action uses top gap: The overview quick action card navigates to the highest-priority gap's category when available
  • Next Action Banner on Overview: New contextual banner at the top of the overview tab with three modes:
    • No profile yet: Suggests pasting a personality assessment via the Interview tab
    • Gaps exist (Q&A): Shows an inline question from the top gap's category with submit/skip, Ctrl+Enter shortcut, and link to full enrichment
    • Gaps exist (list-based): Shows a navigate prompt for list categories (books, movies, music)
    • All caught up: Confirms the twin is well-defined and links to behavioral tests

Likert-Scale Trait Scoring for Digital Twin Enrichment

  • Immediate Trait Feedback: Enrichment now includes 1-5 Likert-scale questions that directly update trait scores and confidence when answered, closing the loop between enrichment answers and personality modeling
  • 18 Scale Questions: Covers Big Five (10 items), communication style (2), daily routines (2), values (2), and decision heuristics (2) — each mapped to a specific trait dimension
  • Weighted Moving Average: Scale answers blend with existing scores using a 0.3 weight factor, preventing any single answer from dominating while still moving the needle
  • Confidence Boost: Each scale answer adds +0.15 to the relevant dimension's confidence score, so 3-4 answers can cross the 0.6 gap threshold and remove that dimension from recommendations
  • Inline Scale UI: New ScaleInput component renders 5 touch-friendly buttons with labels, working in both the full EnrichTab and the NextActionBanner's quick-enrich mode
  • Backward Compatible: questionType defaults to text, existing text question flow is completely unchanged, old client submissions still work

🐛 Bug Fixes

CLI Runner Security & Reliability

  • Security Warning Fix: Resolved Node.js DEP0190 deprecation warning in CLI runner by removing unsafe shell: true option from child process spawning
  • Improved Argument Handling: CLI commands now use direct argument passing instead of shell interpretation, preventing potential security vulnerabilities from unescaped arguments
  • Enhanced Logging: Added detailed logging for CLI execution showing full command and prompt preview to aid debugging
  • Context: The /devtools/runner page was generating security warnings when executing Claude CLI commands. The fix removes shell interpretation which was unnecessary and insecure, while maintaining full functionality

Technical Details:

  • Created override in server/services/runner.js for executeCliRun() function
  • Removed shell: true option from spawn() call (recommended by Node.js security guidelines)
  • Arguments are now properly passed as array without shell metacharacter interpretation
  • Added runtime patching in server/index.js to inject fixed implementation into AI toolkit

Files Modified:

  • server/services/runner.js - New secure CLI execution implementation
  • server/index.js - Runtime patching to override toolkit's runner

Brain Inbox Classification Hang on Capture

  • Background Classification: Brain inbox thought capture now returns immediately instead of blocking the UI while waiting for AI classification
  • Real-time Updates: Classification results are pushed to the client via Socket.IO events (brain:classified), with toast notifications showing the result
  • New "Classifying" Status: Added classifying status with animated UI indicator so users can see thoughts being processed in real time
  • No More Hangs: Previously, submitting a thought would hang the UI spinner indefinitely if the AI provider was slow or unresponsive. Now the thought is saved instantly and classified in the background

Files Modified:

  • server/services/brain.js - Split captureThought into immediate return + background classifyInBackground
  • server/services/socket.js - Added brain event forwarding via setupBrainEventForwarding
  • server/lib/brainValidation.js - Added classifying to inbox status enum
  • server/services/brainStorage.js - Added classifying to inbox log counts
  • client/src/components/brain/tabs/InboxTab.jsx - Socket.IO listener for classification results, classifying section UI
  • client/src/components/brain/constants.js - Added classifying status color

Killed Tasks No Longer Requeue

  • DevTools Kill Integration: Killing a CoS agent via the DevTools process manager (DELETE /api/agents/:pid) now delegates to the CoS killAgent() function, which properly blocks the task instead of letting the close handler treat it as a retryable failure
  • Immediate Task Blocking: Both terminateAgent() and killAgent() in direct mode now immediately update the task to blocked with user-terminated category, matching the runner mode behavior. Previously, task blocking was deferred to the close handler, creating a window where server restarts could cause requeue
  • Orphan Handler Guard: handleOrphanedTask() now skips tasks already marked as user-terminated, preventing any residual requeue path

Task Enhancement Empty Result No Longer Throws Error

  • Graceful fallback: When an AI provider returns an empty response during task prompt enhancement, the server now returns the original description instead of throwing a 500 error
  • Reduced log noise: Empty enhancement results log a warning instead of surfacing as route errors
  • Client unchanged: The client already handled enhancement failures gracefully; this fix prevents unnecessary error noise server-side

AI Providers Status Unreachable on Health Page

  • Route shadowing fix: The /api/providers/status endpoint was being intercepted by the AI toolkit's GET /:id route (treating "status" as a provider ID), returning "Provider not found" instead of the actual status data
  • Root cause: PortOS mounted the toolkit's parameterized routes before its own /status route, so Express matched the toolkit's /:id first
  • Fix: Reordered route registration so PortOS-specific routes (including /status) are defined before mounting the toolkit's catch-all routes

Quick Enrich Repeats Already-Answered Questions

  • AI fallback no longer recycles answered questions: When all predefined and scale questions for a category are exhausted and AI question generation fails, the system now serves a generic follow-up ("What else should your digital twin know about your [category]?") instead of repeating the first predefined question
  • Fallback only asked once: The generic fallback question is now only served once per category; after being answered, the category signals completion instead of repeating
  • Category exhaustion UI: EnrichTab now shows a "all questions answered" completion view when a category has no more questions, instead of silently falling back to category selection
  • Deduplicated near-identical questions: values and non_negotiables categories previously had nearly identical first questions; values now asks a distinct question about top three guiding values

Quick Enrich Shows "Unable to Load Question" for Exhausted Categories

  • Auto-advance to next gap: When a category's questions are exhausted (all predefined, scale, and fallback answered) and AI generation isn't available, the NextActionBanner now automatically advances t...
Read more

v0.10.29

06 Feb 01:18
4d1c02c

Choose a tag to compare

Release v0.10.29 - Changelog Documentation System

Released: 2026-01-XX

Overview

This release introduces a structured changelog documentation system for creating rich, detailed release notes. The system follows best practices from our other projects and integrates seamlessly with GitHub Actions to automatically create professional release descriptions.

🎉 New Features

Changelog Documentation System

  • Structured Release Notes: Added .changelog/ directory with v{major}.{minor}.x.md naming pattern
  • Comprehensive README: Created detailed documentation for changelog format and best practices
  • GitHub Actions Integration: Updated release workflow to automatically use changelog files with version substitution
  • Fallback Support: Maintains automatic commit-based changelogs when manual changelog is not provided
  • Automatic File Rename: Pattern files (e.g., v0.10.29.md) automatically renamed to versioned files (e.g., v0.10.5.md) on release, preserving git history

Documentation Updates

  • CLAUDE.md Updates: Added detailed release changelog process instructions
  • Best Practices Guide: Documented when and how to create changelog files
  • Format Templates: Provided clear structure with emoji-based sections for visual organization

Chief of Staff - ETA Countdown

  • Agent ETA Display: Running agents now show remaining time (e.g., "~2m 30s left") based on historical task completion times
  • Overtime Indicator: When tasks exceed their typical duration, shows "+Xm Xs over estimate" in yellow with a pulse animation
  • Progress Bar Enhancement: Improved progress bar with clearer "X% complete" and prominent ETA display
  • Visual Polish: Slightly thicker progress bars and better typography for the countdown display

Chief of Staff - Arcane Sigil (3D) Avatar

  • New Avatar Style: Added an additional Three.js avatar option, "Arcane Sigil (3D)", alongside the existing Cyberpunk 3D style
  • State-Reactive Animation: Sigil intensity, rune ring motion, and scan effects respond to agent state (sleeping/thinking/coding/investigating) and speaking activity

Chief of Staff - Esoteric (3D) Avatar

  • New Avatar Style: Added "Esoteric (3D)" avatar option featuring a mystical octahedron core with distortion effects, orbiting runic shards, ancient halo rings, and floating sparkle particles
  • State-Reactive Visuals: Core wireframes in investigation mode, increased distortion during thinking, shard orbit speed increases during coding/thinking states
  • Speaking Animation: Core pulses rapidly when the agent is speaking

Chief of Staff - Dynamic Avatar Switching

  • Dynamic Avatar Mode: New toggle in CoS Config > Appearance that automatically switches the avatar style based on the active task's context
  • Context-Aware Rules: Avatar resolves based on priority order: provider (Codex → Esoteric, LM Studio/Gemini → Sigil), self-improvement type (security/code-quality → Cyberpunk), task type (internal → Sigil), and priority (CRITICAL → Esoteric)
  • Seamless Transitions: Avatar changes when an agent spawns and reverts to the configured default when the agent completes or CoS stops
  • Provider ID in Metadata: Agent metadata now includes providerId for accurate provider-based avatar resolution

Dashboard - Activity Streak

  • Current Streak Display: Shows consecutive days of activity with dynamic emoji (fire for 7+ days, lightning for 3+, sparkles for less)
  • Longest Streak Tracking: Displays your personal best streak alongside current streak
  • Personal Best Badge: Green "Personal best!" badge appears when you match or beat your longest streak
  • 7-Day Activity Bar: Visual mini-chart showing activity for the past week with green/gray bars
  • Gamification: Motivates consistent usage through streak tracking and progress visualization

PortOS Stack Template - AI Provider Integration

  • AI Toolkit Integration: New projects created with the PortOS Stack template now include @portos/ai-toolkit by default
  • Provider Management UI: Scaffolded projects include an AI Providers page (/providers) for adding, editing, testing, and deleting providers
  • Navigation Integration: New apps have icons in the sidebar with active state highlighting for Home, AI Providers, and About routes
  • Provider Management API: /api/providers endpoints for managing AI providers (CLI or API-based)
  • Run Tracking: /api/runs endpoints for executing and tracking AI runs
  • Prompt Templates: /api/prompts endpoints for managing reusable prompt templates
  • Automatic Symlink: Template creates symlinks to PortOS's ai-toolkit package in root, server, and client node_modules

Create App Improvements

  • Default Directory Path: The Create App page (/apps/create) now defaults to the PortOS parent directory
  • Folder Browser: Added a folder picker button to browse and select project directories visually
  • Templates Auto-Default: Templates page now automatically sets the target directory without requiring folder selection

Digital Twin - Identity System

  • Digital Twin Documents: New /digital-twin page for managing identity scaffold documents that define persona, values, and cognitive style
  • Document Management: View, edit, create, and delete digital twin markdown documents organized by category (core, audio, behavioral, enrichment)
  • Multi-Model Behavioral Testing: Run 14 behavioral alignment tests against multiple AI providers/models simultaneously with side-by-side comparison
  • Enrichment System: Guided questionnaire across 14 categories (memories, favorites, values, routines, non-negotiables, decision heuristics, error intolerance, personality assessments, etc.) that generates document content from answers
  • Export Formats: Export digital twin for use in external LLMs as System Prompt, CLAUDE.md, JSON, or individual files
  • CoS Integration: Digital twin context automatically injected into Chief of Staff agent prompts when enabled
  • Identity Navigation Group: Brain and Digital Twin now grouped under "Identity" section in navigation

Digital Twin Enhancement: Reliable Identity Scaffolds

  • Completeness Validator: New API endpoint and UI showing percentage of required identity sections covered (identity, values, communication, decision making, non-negotiables, error intolerance) with actionable suggestions for missing sections
  • Contradiction Detector: AI-powered analysis to detect inconsistencies and conflicting statements across digital twin documents with severity levels and resolution suggestions
  • Dynamic Test Generation: Generate behavioral tests automatically based on digital twin content - tests values in action, communication style, non-negotiables, and decision patterns
  • Writing Sample Analysis: Paste writing samples to extract your authentic voice patterns (sentence structure, vocabulary, formality, tone) and automatically generate a WRITING_STYLE.md document
  • Creation Wizard: 5-step guided wizard for new users covering identity basics, core values, communication style, decision making, and non-negotiables
  • Document Weighting: Priority slider (1-10) on each document - higher weighted documents are preserved first when context limits force truncation
  • New Enrichment Categories: Added non_negotiables, decision_heuristics, error_intolerance, and personality_assessments categories with 3 preset questions each
  • Best Practices Documentation: Added DIGITAL_TWIN_GUIDE.md with comprehensive guidance on creating effective digital twin documents

Digital Twin - Mobile Responsive Design

  • Mobile-First Layout: Complete responsive redesign of the Digital Twin page and all tabs for mobile devices
  • Adaptive Document Editor: Documents list and editor use stacked layout on mobile with back navigation
  • Touch-Friendly Controls: All buttons and interactive elements have 40px+ minimum touch targets for accessibility
  • Responsive Grids: Category grids, test provider selections, and export options adapt from multi-column to single-column on small screens
  • Horizontal Tab Scrolling: Tab navigation scrolls horizontally on narrow screens with hidden scrollbar
  • Mobile-Optimized Forms: Enrichment questionnaire, wizard, and all modals display properly on mobile with appropriate spacing

Digital Twin - Personality Assessments

  • New Enrichment Category: Added personality_assessments enrichment category for capturing Myers-Briggs, Big Five (OCEAN), Enneagram, DISC, StrengthsFinder, and other personality type results
  • Preset Questions: Three guided questions covering MBTI type variations, Big Five trait scores, and other assessment results
  • PERSONALITY.md Target: Answers enriched into a dedicated PERSONALITY.md core document
  • Support for Type Variance: Questions acknowledge that people may test differently at different times (e.g., ENTJ/ENTP/INTJ/INTP for those near the middle on E/I and J/P dimensions)

Digital Twin Rebranding

  • Soul → Digital Twin: Renamed the entire "Soul" feature to "Digital Twin" for clearer terminology
  • Route Changes: /soul routes now at /digital-twin
  • API Endpoints: /api/soul endpoints now at /api/digital-twin
  • Data Directory: data/soul/ renamed to data/digital-twin/
  • Backwards Compatibility: Legacy function names and imports aliased for backwards compatibility

Digital Twin - Quantitative Personality Modeling (M34 Phase 1 & 2)

  • Big Five Trait Extraction: AI-powered analysis extracts OCEAN personality scores (0-1 scale) from digital twin documents with supporting evidence notes
  • Values Hierarchy: Automatically extracts and ranks core values with conflict detection between values
  • Communication Profile: Quantifies writing style including formality (1-10), verbosity (1-10), emoji usage, preferred tone, and distinctive markers
  • **C...
Read more

v0.9.19

01 Feb 02:55
39b76d4

Choose a tag to compare

Release Notes - v0.9.19

Release Date: 2026-01-31

🎉 Features

AI Toolkit Package (@portos/ai-toolkit)

  • Created shared library for AI provider patterns: New npm workspace package at packages/ai-toolkit/

    • Server services: Provider management, run execution, prompt templating
    • Express routes: REST API for providers, runs, and prompts
    • React components: ProviderDropdown with theming support
    • React hooks: useProviders and useRuns for state management
    • API client: Configurable fetch-based client with error handling
    • Zod validation schemas for type safety
    • Comprehensive test suite with 6 passing tests
    • Full documentation: README, INTEGRATION guide, and inline JSDoc
    • Ready for extraction to standalone package or use in other PortOS-style apps
  • Integrated toolkit into PortOS server: Replaced local AI services with toolkit

    • Created compatibility shims for existing service imports
    • Extended toolkit routes with PortOS-specific vision testing endpoints
    • Added prompts route wrapper to maintain PortOS API contract
    • Added hooks for usage tracking and error event emission
    • Backed up original files (.old.js suffix) for reference
    • Server successfully restarted with toolkit integration
    • All existing functionality maintained
  • Integrated toolkit into FableLoom: Used npm link to test cross-project compatibility

    • Created TypeScript declarations for toolkit services
    • TypeScript wrapper maintains type safety
    • Both JavaScript (PortOS) and TypeScript (FableLoom) projects now using shared library
  • Full CRUD for prompt stages: Added create and delete operations to toolkit

    • New createStage() and deleteStage() methods in prompts service
    • POST /api/prompts endpoint for creating stages with config and template
    • DELETE /api/prompts/:stage endpoint for removing stages
    • Automatic cleanup of template files on deletion
    • Updated TypeScript declarations

Prompt Management UI

  • Create/Delete Prompt Stages: Added stage management UI to /prompts page

    • "+" button to create new stages with modal form
    • Delete button (trash icon) on each stage in the list
    • Modal form includes: stage key, display name, description, model selection, returns JSON toggle, template editor
    • Real-time validation and error handling
    • Removed unused placeholder stages (code-analysis, command-suggestion)
  • System Stage Protection: Protect critical prompt stages from accidental deletion

    • Visual "System" badge on 9 protected stages in the list
    • GET /api/prompts/:stage/usage endpoint returns usage information
    • Enhanced confirmation dialogs showing what features use each stage
    • Backend protection requires ?force=true query param to delete system stages
    • Clear warning messages: "This is a SYSTEM stage used by [features]"
    • Protected stages: CoS (4), Brain (3), Memory (1), App Detection (1)

Template Creation Enhancement

  • Directory Picker for Template Target Path: Replaced freeform text input with interactive directory browser on /templates page
    • Default directory now set to parent of PortOS project (/Users/antic/github.com/atomantic)
    • Visual folder navigation with breadcrumb-style current path display
    • Double-click folders to select or use "Select Current" button
    • "Parent" and "Default" navigation buttons for easy directory traversal

Dashboard Activity Visualization

  • Hourly Activity Heatmap: New visualization showing session distribution across all 24 hours
    • GitHub-style contribution graph with 5-level intensity colors
    • Identifies peak productivity hours with session counts
    • Responsive design with condensed hour labels on mobile
    • Fully accessible with ARIA labels and hover tooltips
    • Displays total sessions tracked for context

Chief of Staff Enhancement (M35)

  • BM25 Hybrid Memory Search: Added BM25 text search algorithm for hybrid memory retrieval

    • server/lib/bm25.js - BM25 with IDF weighting, inverted index, stemming
    • server/services/memoryBM25.js - Index management, persistence to data/cos/memory/bm25-index.json
    • Hybrid search combines BM25 + vector with reciprocal rank fusion for better context retrieval
  • Event-Driven Scheduling: Replaced interval-based loops with cron-compatible event scheduler

    • server/services/eventScheduler.js - Timeout-safe timers (clamps to 2^31-1 ms), cron expressions
    • Converted cos.js from setInterval to scheduleEvent() calls
    • Supports interval, cron, and one-shot event types
  • Execution Lanes: Lane-based concurrency control for agent spawning

    • server/services/executionLanes.js - Critical (1 slot), Standard (2 slots), Background (3 slots)
    • Lane acquisition with waitForLane() timeout and queue management
    • Integrated into subAgentSpawner.js for controlled parallel execution
  • Tool State Machine: Comprehensive lifecycle tracking for tool executions

    • server/services/toolStateMachine.js - IDLE → START → RUNNING → UPDATE → END → ERROR states
    • Tracks timing, state history, and metadata per execution
    • Enables better error recovery and execution analytics
  • Thinking Levels: Dynamic model selection based on task complexity

    • server/services/thinkingLevels.js - off, minimal, low, medium, high, xhigh levels
    • Hierarchy resolution: task → agent → provider for thinking level
    • Integrated into selectModelForTask() for automatic model upgrades
  • Error Recovery Strategies: Structured error analysis and recovery

    • server/services/errorRecovery.js - retry, escalate, fallback, decompose, defer, investigate strategies
    • Analyzes error types (network, rate-limit, auth, validation, etc.)
    • Returns actionable recovery recommendations
  • Agent Run Cache: TTL-based caching for agent outputs

    • server/services/agentRunCache.js - 10-minute default TTL, key-based storage
    • Memory-efficient with periodic cleanup
    • Prevents redundant re-execution of recent tasks
  • Missions Service: Long-term goal tracking for proactive task generation

    • server/services/missions.js - Mission CRUD, sub-tasks, progress tracking
    • Generates proactive tasks when user queue is empty
    • App-owned missions for autonomous improvement of managed apps
  • Comprehensive Test Suite: 18 new test files with 722 total tests

    • Unit tests for all new services
    • Integration tests for state machine and lane management
    • Missions service test coverage for CRUD and task generation

🔧 Improvements

Chief of Staff Task Management

  • Separate Active Tasks from Pending: Task list now clearly distinguishes between pending, active (in_progress), blocked, and completed tasks
    • Pending tasks shown in yellow section (waiting to be started)
    • Active tasks shown in blue section with animated pulse indicator (currently running)
    • Blocked tasks shown in red section (waiting for external factors)
    • Completed tasks remain collapsible in green section
    • Applies to both User Tasks (TASKS.md) and System Tasks (COS-TASKS.md)
    • Makes it immediately clear which tasks are actively being worked on vs queued

Architecture

  • Monorepo with npm workspaces: Converted root package.json to support workspaces
    • Workspace packages: packages/*, server, client
    • Enables sharing code between main app and reusable packages
    • Foundation for extracting more shared libraries

API

  • Added GET /api/directories endpoint for browsing file system directories
    • Returns current path, parent path (if available), and list of subdirectories
    • Filters out hidden directories (starting with .)
    • Defaults to parent of PortOS project directory when no path specified

UI Components

  • New DirectoryPicker component in client/src/components/DirectoryPicker.jsx
    • Dropdown interface with folder icons and navigation
    • Real-time directory browsing without typing paths
    • Keyboard and mouse navigation support

🐛 Bug Fixes

Chief of Staff - Model Selection

  • Fixed default model selection to respect provider's defaultModel: Standard tasks now use the provider's configured default model instead of always using the medium tier model
    • Changed selectModelForTask() to return provider.defaultModel for standard tasks instead of provider.mediumModel
    • Updated fallback logic to handle 'default' tier in addition to 'heavy', 'medium', and 'light'
    • This ensures that when a provider (like claude-code) has Opus set as the defaultModel, tasks without explicit model specifications will use Opus instead of Sonnet
    • Task-specific model selection (heavy for complex tasks, light for documentation) continues to work as before

Chief of Staff - Multi-Provider CLI Support

  • Fixed Codex CLI provider support: Agent spawner was hardcoded to use Claude CLI arguments regardless of selected provider
    • Added buildCliSpawnConfig() function for provider-specific CLI invocation
    • Codex CLI now correctly uses: codex exec --model <model>
    • Claude CLI continues using: claude --dangerously-skip-permissions --print --model <model>
    • Updated cos-runner to accept cliCommand and cliArgs parameters
    • Maintains backwards compatibility with legacy claudePath parameter

v0.8.10

10 Jan 05:11
105971e

Choose a tag to compare

Changes

  • fix: address PR review feedback
  • feat: auto-allocate ports and improve PM2 config in scaffold
  • feat: add memory editing and app display to UI
  • feat: add app association to memories
  • feat: inject CLAUDE.md instructions into CoS agent prompts
  • perf: fix N+1 queries and add caching optimizations
  • fix: add 30s grace period for agents without PID before marking zombie
  • fix: app cooldown only applies to system tasks, not user tasks
  • fix: don't run self-improvement when user tasks exist
  • feat: queue self-improvement tasks as system tasks
  • fix: track agent errors in stats
  • fix: improve Media audio detection and zombie agent handling
  • fix: resolve race condition in Media page video display
  • feat: execute tasks in queue order, prioritize critical auto-fix tasks
  • fix: add Array.isArray check for screenshots metadata
  • fix: improve AI agents mobile layout with compact PID and styled kill button
  • feat: add Media page for camera and microphone access
  • fix: improve AgentCard mobile layout and button visibility
  • feat: add configurable task intervals for self-improvement tasks
  • feat: extend comprehensive self-improvement to managed apps
  • fix: improve accessibility across PortOS UI

Installation

git clone https://github.com/atomantic/PortOS.git
cd PortOS
npm run install:all
pm2 start ecosystem.config.cjs

v0.7.15

09 Jan 17:40
6504eec

Choose a tag to compare

Changes

  • fix: address PR review feedback
  • refactor: DRY port configuration with flat PORTS object pattern
  • fix: reposition notification dropdown to sidebar footer
  • feat: add pending memory approval system and user notifications
  • refactor: extract shared utilities for DRY compliance
  • fix: prevent duplicate AI provider failure tasks
  • security: fix command injection vulnerabilities
  • fix: resolve truncated memory and double script execution issues
  • feat: add Weekly Digest UI tab to Chief of Staff page
  • feat: add weekly digest system for CoS activity tracking
  • feat: implement PortOS Stack template scaffolding
  • fix: add commit instructions to all task runner prompts
  • feat: add task learning system and dependency updates task type
  • test: add coverage reporting and new library tests
  • docs: update PORTS.md and CONTRIBUTING.md
  • commit each feature/fix
  • refactor: remove verbose GET /api/apps logging
  • refactor: reduce ChiefOfStaff polling to 30s, add apps:changed listener
  • more easily readable tasks
  • feat: replace apps polling with WebSocket events
  • feat: add adaptive task learning and performance optimizations
  • feat(cos): improve memory extraction and show memory status in UI
  • feat(cos): show estimated task duration for pending tasks
  • refactor: reduce /api/apps logging to single line per request
  • fix: prevent false orphan detection by checking PID before marking agents
  • fix(security): prevent command injection vulnerabilities
  • refactor: code quality improvements
  • feat: add CoS today's activity dashboard and script command validation
  • fix: improve accessibility across React components
  • docs: update documentation for M25 Task Learning and M26 Scripts
  • feat: add proactive CoS with goal-driven self-improvement
  • docs: add API reference, architecture overview, and troubleshooting guide

Installation

git clone https://github.com/atomantic/PortOS.git
cd PortOS
npm run install:all
pm2 start ecosystem.config.cjs

v0.6.7

07 Jan 18:56
7d7a8bd

Choose a tag to compare

Changes

  • fix: correct error truncation logic in DevTools
  • fix: bind browser CDP to localhost for security
  • fix: address third round of PR review feedback
  • fix: address second round of PR review feedback
  • fix: address PR review feedback
  • refactor: rename .browser to browser and commit code directly
  • feat: mobile responsive redesign and clear failed runs

Installation

git clone https://github.com/atomantic/PortOS.git
cd PortOS
npm run install:all
pm2 start ecosystem.config.cjs

v0.5.8

07 Jan 05:23
20064af

Choose a tag to compare

Changes

  • fix: remove unused variables and imports
  • docs: simplify setup with one-command script
  • docs: add GitHub Actions and PM2 documentation
  • feat: always-on CoS architecture with UI improvements
  • docs: update screenshots and add PM2 save button
  • fix: correct uptime calculation in pm2 service
  • fix: make sidebar fixed to viewport height and improve port display
  • feat: add persistent browser service and port allocation standard

Installation

git clone https://github.com/atomantic/PortOS.git
cd PortOS
npm run install:all
pm2 start ecosystem.config.cjs

v0.4.9

05 Jan 19:14
b39b1e7

Choose a tag to compare

Changes

  • feat: add Chief of Staff autonomous task manager
  • refactor: update system health check report with current metrics
  • feat: add delete button to history entries, alphabetize nav menu
  • fix: use app.id for workspace selection, filter out autofixer, use Code2 icon
  • fix: use Code2 icon for Code nav item
  • refactor: rename Runner to Code, default workspace to PortOS
  • fix: collapsed sidebar - hide version, center logo without arrow overlap
  • fix: remove duplicate autofixer from process list (now loaded from apps.json)
  • fix: change autofixer ports from 6000/6001 to 5560/5559 (Chrome blocks 6000)
  • feat: add autofixer to sample apps.json for new installations
  • feat: add autofixer daemon and UI with Tailscale-compatible dynamic hostnames

Installation

git clone https://github.com/atomantic/PortOS.git
cd PortOS
npm run install:all
pm2 start ecosystem.config.cjs

v0.3.11

02 Jan 01:32
00e0ca3

Choose a tag to compare

Changes

  • fix: add error handling and secure API endpoints for app actions
  • fix: remove unused imports and superfluous argument
  • feat: enhanced DevTools, Apps page, and detection improvements
  • feat(M8): add Prompt Manager for customizable AI prompts
  • feat(M9): streaming import detection with websocket
  • style: use single-line emoji logging on server
  • feat: improve Add App UX and plan M8-M9
  • feat: add Templates page and improve Add App UX
  • feat: add launch button to open app UI in new browser tab
  • Add /gitup command for rebasing over CI version bumps
  • Add custom SVG logo with multiple variants
  • Redesign nav with lucide icons, collapsible DevTools, and version footer

Installation

git clone https://github.com/atomantic/PortOS.git
cd PortOS
npm run install:all
pm2 start ecosystem.config.cjs

v0.2.1

01 Jan 19:33
da11f73

Choose a tag to compare

Changes

  • Add write permissions to CI and release workflows
  • Fix health test to use supertest instead of live server
  • Add /pr custom command for release workflow
  • Add CLAUDE.md for Claude Code guidance
  • Add docs folder with versioning and contributing guides
  • Add auto-versioning workflow (Major.Release.Build)
  • Add linkable routes for DevTools tabs
  • Add GitHub Actions CI and release workflows
  • Replace window.confirm with inline confirmations
  • Add Tailscale link to README
  • v0.2.0 - Complete feature set with AI detection

Installation

git clone https://github.com/atomantic/PortOS.git
cd PortOS
npm run install:all
pm2 start ecosystem.config.cjs