Skip to content
CAI
Software that uses CAICheck a score

stoneforge-ai/stoneforge

47.5

Weak · 21 September 2026

313.3k

lines of production code

TypeScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a multi-agent orchestration platform that manages the lifecycle of AI coding agents, including directors, workers, and stewards. It provides a web interface for configuring agent pools, monitoring token usage and costs, and managing tasks and workflows. The system supports team collaboration, external synchronization with services like GitHub and Linear, and enforces human approval workflows for restricted agent actions.

Features

Add GitHub external sync provider and task adapter

Users can now sync Stoneforge tasks with GitHub Issues. This adds a new GitHub provider that includes a REST API client, a task adapter for bidirectional sync, and field mapping configurations for priorities, task types, and statuses. The adapter automatically creates 'sf:' prefixed labels on the target repository before assigning them to issues, and maps Stoneforge statuses to GitHub's open/closed states and labels.

packages/quarry/src/external-sync/providers/github · high confidence

Add Linear external sync provider for task synchronization

Users can now sync tasks to and from Linear. This change introduces the Linear provider implementation, including a GraphQL API client, a task adapter for bidirectional sync, and field mapping utilities that convert between Stoneforge and Linear priority and status values. The provider supports creating, updating, and listing issues, with native priority mapping and workflow state type mapping for status synchronization.

packages/quarry/src/external-sync/providers/linear · high confidence

Add Notion external sync provider

Users can now sync documents to and from Notion. The new Notion provider implements bidirectional synchronization, converting between markdown and Notion block formats, handling API rate limits and transient errors, and supporting page creation, updates, and content replacement within a Notion database.

packages/quarry/src/external-sync/providers/notion · high confidence

Add ability to create and edit agent pools via the web UI

Users can now create new agent pools and modify existing ones through the web interface. This change introduces CreatePoolDialog and EditPoolDialog components, along with a shared AgentTypeConfigRow for configuring agent types (including provider, model, and role-specific settings like worker mode or steward focus). The PoolCard component was also updated to display provider and model information for each agent type. This provides a complete UI for managing pool configurations, mirroring the capabilities previously only available via API/CLI.

apps/smithy-web/src/components/pool · high confidence

Add agent pool management to the Agents page

The Agents page now includes a 'Pools' tab where users can create, edit, and delete agent pools. The page's 'Create' button now conditionally opens either the agent/steward creation dialog or the new pool creation dialog depending on the active tab. The page also supports opening the director panel with a specific director selected.

apps/smithy-web/src/routes/agents · high confidence

Add comparison pages infrastructure and content

A new comparison section has been added to the website, featuring a main index page that lists all available comparisons and individual pages for each specific comparison. Users can now view detailed, structured comparisons between Stoneforge and other AI development tools, with each comparison page displaying titles, descriptions, features, FAQs, and verdicts via a dedicated layout.

apps/website/src/pages/compare · high confidence

Add first-load preset selection UI to dashboard

A new PresetSelectionModal component has been added to the settings area, providing a full-screen overlay for selecting a workflow preset (Auto, Review, or Approve) on first dashboard load or via the Settings page. The component includes a PresetCard for each option and an InlinePresetSelector export, enabling users to configure how agents interact with their codebase.

apps/smithy-web/src/components/settings · high confidence

Add folder-based document sync provider

Users can now sync documents from a local folder using the new 'folder' external provider. This adds a \FolderDocumentAdapter\ that maps between Stoneforge documents and markdown files with YAML frontmatter, supporting read, write, and list operations. The provider validates the folder path, handles title-to-filename slugification, and organizes synced documents into folders by library membership. Tests cover the filesystem client, document adapter, and provider logic.

packages/quarry/src/external-sync/providers/folder · high confidence

Add integrations listing and detail pages

The website now includes a dedicated section for AI coding agent integrations. A new index page at /integrations displays a grid of supported agents (such as Claude Code, Codex, and OpenCode) with their logos, names, and descriptions. Each card links to a dynamic detail page at /integrations/\[slug\] that renders the specific content for each agent, including configuration snippets, feature lists, and documentation links.

apps/website/src/pages/integrations, apps/website/src/pages/use-cases · high confidence

Add model pricing configuration and cost calculation service

Added a new model pricing configuration and cost calculation service in the core package. This introduces a JSON-based pricing data structure for providers like Anthropic and OpenCode, along with TypeScript utilities to look up model-specific pricing (including partial name matching) and calculate token-based costs for input, output, cache read, and cache creation. The change includes the implementation, the pricing data file, and comprehensive unit tests for the cost calculation logic.

packages/core/src/config · high confidence

Add provider and model analytics to the metrics page

The metrics page now displays provider and model analytics, including token usage, error rates, and cost breakdowns. This change introduces a new 'Provider and Model Analytics' section that aggregates data from the API, showing total input/output tokens, cache hit rates, and estimated costs. The UI has also been updated to use container query breakpoints (@sm) for improved responsive layout in existing components.

apps/smithy-web/src/routes/metrics · high confidence

Add use-case pages for AI coding, code review, documentation, and more

Added eight new MDX content files in apps/website/src/content/use-cases/ to document specific AI agent capabilities: free open-source AI coding, code review automation, documentation generation, framework migrations, large-scale refactoring, parallel feature development, test generation, and bug triage/fixing. Each file provides a title, description, problem statement, FAQ, and usage examples for that feature.

apps/website/src/content/use-cases · high confidence

Added Demo Mode settings and fixed Kanban column counts

Users can now enable 'Demo Mode' in the Settings page, which switches all agents to the opencode provider with the minimax-m2.5-free model, and the Kanban board now displays accurate task counts per column that respect the global search query.

apps/quarry-web/src · high confidence

Added new UI components for the website

Introduced a set of reusable UI components for the website application, including Badge, Breadcrumbs, Button, CodeBlock, DocsLink, Icon, RelatedContent, and SectionLabel. These components provide consistent styling and functionality for elements such as navigation breadcrumbs, code snippets with copy-to-clipboard, and structured links to documentation.

apps/website/src/components/ui · high confidence

Adds Plausible analytics tracking and scroll-reveal animations to the marketing site

The marketing site now includes a new analytics script (apps/website/src/scripts/analytics.ts) that integrates Plausible Analytics to track custom events such as CTA clicks, outbound links to docs and GitHub, page views for comparison and use-case pages, blog scroll depth, and install command copies. Additionally, a new script (apps/website/src/scripts/reveal.ts) implements scroll-reveal animations for elements with \[data-reveal\] attributes, respecting the user's reduced-motion preference.

apps/website/src/scripts · high confidence

Adds cost calculation service and demo mode for agents

Introduces a new CostService that calculates estimated LLM usage costs based on model pricing and token metrics, and a new DemoModeService that allows users to temporarily switch all agents to a free demo provider/model (opencode/minimax-m2.5-free) for testing, with the ability to save and restore previous configurations.

packages/smithy/src/services · high confidence

Agent management enhancements: disable/enable, triggers, and executable paths

Users can now disable and enable agents directly from the agent card, with a visual disabled state and badge. The agent card also displays the agent's executable path if set. A new ChangeTriggerDialog allows stewards to have cron and event triggers configured via the card's menu. The ChangeProviderDialog and CreateAgentDialog now support setting a custom executable path for agents. Additionally, the CreateAgentDialog includes a targetBranch field for directors and a workflow template (playbook) dropdown for custom stewards.

apps/smithy-web/src/components/agent · high confidence

Bulk task operations and image drag-and-drop support

Users can now perform bulk actions on multiple tasks simultaneously, including changing status, priority, or deleting selected tasks via the new BulkActionMenu component. Additionally, image drag-and-drop functionality has been added to the task description editor and the reopen dialog, allowing users to insert images directly into the text area by dragging and dropping image files.

apps/smithy-web/src/components/task · high confidence

Expanded configuration system with external sync, merge, workflow, and agent settings

The configuration system in the quarry package has been significantly expanded to support new features. Users can now configure external sync behavior (including polling intervals, conflict strategies, and auto-linking to GitHub or Linear), set up automatic merging with target branches and approval requirements, define workflow presets, and restrict agent bash commands. The sync export debounce has also been increased from 500ms to 5 minutes. Additionally, workspace name and base branch validation have been added.

packages/quarry/src/config · high confidence

Expanded database schema and error handling for storage layer

The storage package now includes new database tables for server-side settings, operation logging, and LLM provider metrics, alongside updated error handling that maps SQLite errors to Stoneforge error types. Specifically, the inbox items table now supports 'thread\_reply' as a source type, and the provider\_metrics table tracks cache token usage. These changes are accompanied by comprehensive test coverage for error mapping and type definitions.

packages/storage/src · high confidence

Expose logger and rate-limit utilities from the Smithy package

The Smithy package now exports its internal logger and rate-limit parsing utilities to external consumers. Users can now import \createLogger\, \getLogLevel\, \Logger\, \LogLevel\, and \parseRateLimitResetTime\ directly from the package, enabling custom logging configurations and rate-limit handling in their own implementations.

packages/smithy/src · high confidence

Expose model pricing and cost calculation capabilities

The core package now exports the 'config' module, which contains model pricing and cost calculation logic. This makes the pricing configuration and associated cost calculation services available to consumers of the core package.

packages/core/src · high confidence

Exposes AutoExportService and external sync providers

The quarry package now exposes the AutoExportService, its creation function, and options type, allowing users to configure automatic JSONL exports. Additionally, the package now re-exports all modules from the external-sync directory, making the provider registry and sync providers available for direct import.

packages/quarry/src · high confidence

First-load preset selection for activity page

The Activity page now prompts users to select a workflow preset on their first visit. A PresetSelectionModal is displayed when no preset is configured, allowing users to choose a preset before proceeding. Additionally, the Active Agents section now includes a data-testid for testing purposes.

apps/smithy-web/src/routes/activity · medium confidence

Introduce external sync engine with conflict resolution and auto-linking

The external sync module now includes a sync engine that orchestrates push, pull, and bidirectional synchronization between Stoneforge and external services like GitHub, Linear, and Notion. The update adds a conflict resolver that detects and handles simultaneous local and remote changes using configurable strategies (last-write-wins, local-wins, remote-wins, or manual). An auto-link utility automatically creates external issues and links them back to Stoneforge tasks. The system also supports filtering untitled documents and closed/tombstone tasks during sync operations.

packages/quarry/src/external-sync · high confidence

Introduce external sync type definitions and migrate branded IDs to string-based types

The core types package now includes new type definitions for bidirectional synchronization with external services (GitHub, Linear, Notion, Slack, etc.), including enums for sync adapters, directions, and conflict strategies, along with interfaces for external tasks, documents, and messages. Additionally, all branded ID types (e.g., ChannelId, DocumentId, ElementId) have been migrated from TypeScript's unique symbol-based branding to simple string-based branded types, which may affect how these IDs are constructed or compared in the codebase.

packages/core/src/types · high confidence

Introduce new SEO tooling suite for keyword research, SERP analysis, and competitor insights

A new set of SEO automation scripts has been added to the \tools/seo\ directory, enabling keyword research, SERP analysis, competitor backlink analysis, and content calendar generation. The tools integrate with the DataForSEO API for keyword and SERP data, and the Google Search Console API for search performance metrics. Configuration is managed via a new \config.ts\ and \.env\ template, supporting multiple site URLs for GSC. The suite includes \keyword-research.ts\, \serp-analysis.ts\, \competitor-analysis.ts\, \content-calendar.ts\, and \search-console.ts\, along with a directory submission tracker for marketing outreach.

tools · high confidence

Introduce shared document and task sync adapter utilities

Added new shared utility modules for external sync operations: \document-sync-adapter.ts\ and \task-sync-adapter.ts\ in \packages/quarry/src/external-sync/adapters\. These modules provide provider-agnostic logic for converting between internal Stoneforge documents/tasks and external representations (e.g., Notion, GitHub, Linear). The document adapter handles title, category, and library path resolution, while the task adapter manages status, priority, and label mapping. Corresponding unit tests (\\*.bun.test.ts\) were added to verify the field mapping and filtering logic.

packages/quarry/src/external-sync/adapters · high confidence

Introduce team collaboration mode with user presence, sync status, and org/team data models

The prototype now supports a team collaboration mode alongside the existing solo workflow. This is enabled via a mode toggle in the Activity Rail, which switches the app between 'solo' and 'team' states. In team mode, the UI displays team member presence indicators, sync status, and org/team data structures (orgs, teams, users). The \TeamContext\ provides state for team-specific features like real-time change toasts, conflict resolution UI, and user presence tracking. Mock data for team members, organizations, and presence is included to demonstrate the collaborative features.

apps/smithy-next · high confidence

Introduces a restricted tool permission model with human approval workflow

Agents running with the 'restricted' permission model now require human approval for certain tool actions. The system creates approval requests in a SQLite-backed service, blocking execution until a human approves or denies the request. Safe tools (Read, Write, Edit, etc.) and specific bash commands (git, npm, sf) are auto-allowed. The permission hook intercepts tool use, creates an approval request, and waits for resolution. Tests cover the permission checking logic, approval service, and hook behavior.

packages/smithy/src/runtime · high confidence

Launch homepage and blog RSS feed

The website now includes a new homepage (index.astro) that assembles the site's primary sections, including a LatestBlog component, and an RSS feed (rss.xml.ts) that aggregates published blog posts for subscribers.

apps/website/src/pages · high confidence

Launch of the Stoneforge website with blog, use cases, and comparison pages

The website app is now live at stoneforge.ai, built on Astro with static output and MDX support. Users can now read 3 SEO-optimized blog posts, explore 7 use-case pages with dynamic routing, and compare features across Claude Code Teams, Cursor, Copilot Workspace, and multi-agent vs single-agent approaches. The site includes a blog content pipeline with SEO checklists, related content, and JSON-LD FAQ schema, alongside cross-site internal linking components (DocsLink, RelatedContent, Breadcrumbs). A race condition in Plausible custom events has been fixed, and all 8 use-case pages have been keyword-optimized for SEO.

apps/website · medium confidence

Launch of the blog system with tag-based filtering

The website now includes a new blog section accessible at /blog. Users can view a list of all posts, filter them by tags via a clickable tag cloud on the index page, and read individual articles on dedicated pages. The blog content is sourced from the site's content collection, and each post displays metadata such as title, description, date, author, and tags.

apps/website/src/pages/blog · high confidence

Multi-director support and new UI components for layout and notifications

The layout now supports multiple concurrent director sessions via a new tabbed interface (DirectorTabBar and DirectorTabContent), allowing users to switch between and reorder director tabs with drag-and-drop. A new RateLimitBanner component displays a warning when the dispatch daemon is paused due to rate limits, providing options to wake the daemon or configure settings. The notification system has been expanded with a slide-in NotificationSidebar that includes a new ApprovalRequestCard for handling agent approval requests, and the existing NotificationCenter dropdown has been simplified to trigger this sidebar.

apps/smithy-web/src/components/layout · high confidence

New CLI commands for external sync, docs, and operation logs

The CLI now includes several new commands to manage external service synchronization, documentation infrastructure, and operational history. The \sf external-sync\ command group provides subcommands for linking, unlinking, pushing, pulling, and syncing tasks and documents with external services like GitHub and Linear, including bulk operations (\link-all\, \unlink-all\) and a dry-run mode. The \sf docs\ command group allows users to initialize a Documentation library and directory, add documents, and view the directory. Additionally, the \sf log\ command queries the operation log table to display recent system events, with filtering by level, category, task, and agent. These commands are supported by new helper modules (\auto-link-helper.ts\) and extensive test coverage for the new functionality.

packages/quarry/src/cli/commands · high confidence

New blog content pipeline and template for SEO-optimized posts

The website now includes a structured content pipeline for blog posts, starting with a reusable MDX template that enforces SEO best practices (title, description, tags, internal links) and includes an FAQ section. Several new blog posts have been added, including a guide on running multiple AI coding agents in parallel, a comparison of the best AI coding agents in 2026, a deep dive into context window optimization, and an introduction to the Stoneforge platform.

apps/website/src/content/blog · high confidence

New blog post card and image components

Added new Astro components for the blog system: a PostCard for displaying article previews with title, description, author, date, and tags; a PostMeta component that calculates and displays reading time; a TagList for rendering clickable tag links; and a BlogImage component that uses Astro's built-in image optimization to serve responsive, WebP images. Additionally, an ImagePlaceholder component was introduced to display a styled placeholder with a prompt when images are not yet available.

apps/website/src/components/blog · high confidence

New comparison pages for AI coding tools

Added comparison pages for Claude Code Teams, Copilot Workspace, Cursor AI, Devin AI, and a guide on multi-agent vs single-agent AI coding. Each page compares the tool against Stoneforge, covering architecture, workflow, pricing, and features to help users choose between self-hosted orchestration and proprietary alternatives.

apps/website/src/content/comparisons · high confidence

New content structure for blog, use cases, integrations, and comparisons

The website's content management system has been restructured to support four distinct content types: blog posts, use cases, integrations, and comparisons. Each type now has a dedicated schema in \content.config.ts\ that defines the required fields, such as titles, descriptions, authors, and specific metadata like competitor details for comparisons or feature lists for integrations. This change enables the creation of structured, rich content pages for these sections of the site.

apps/website/src · high confidence

New dark-mode design system and animation utilities for the website

The website now includes a complete set of CSS styles that establish a dark-mode design system and visual effects. A new tokens file defines color, typography, and spacing variables, while global styles set up the base layout, atmospheric gradients, and utility classes for cards and text. A dedicated animations file introduces scroll-reveal effects, floating and shimmering keyframes, and respects reduced-motion preferences. Additionally, prose styles are added to format rendered MDX blog content with consistent headings, links, and code blocks.

apps/website/src/styles · high confidence

New homepage sections showcase Stoneforge's features and workflow

The homepage now includes new sections that highlight key capabilities: a comparison table contrasting Stoneforge with a previous 'ccat' setup, a features grid detailing real-time communication, issue tracking, documentation, workflows, and multi-provider support, a problem timeline explaining issues like merge conflicts and zero visibility, a quick-start guide with three setup commands, a demo video section, a blog post preview, and social proof links to GitHub and npm. These components provide a structured overview of the platform's orchestration, isolation, and visibility features.

apps/website/src/components/sections · high confidence

New hooks for token metrics, approval workflows, and task management

The web app now includes dedicated React Query hooks for fetching per-agent token usage (useAgentTokens) and provider metrics (useProviderMetrics), enabling granular cost and usage tracking. A new useApprovalRequests hook and its associated watcher provide the UI with the ability to fetch, resolve, and monitor approval requests from agents. Additionally, useDirectors replaces the previous single-director hook to support multiple directors, and useMergeRequests is updated to handle the new 'awaiting\_approval' status. The toolkit also adds useBulkUpdateTasks for batch task operations and useWakeDaemon to resume daemons paused by rate limits.

apps/smithy-web/src/api/hooks · high confidence

New integration pages for Claude Code, Codex, and OpenCode

Added new documentation pages for three AI coding agent integrations: Claude Code, Codex, and OpenCode. Each page explains how Stoneforge orchestrates the respective agent, covering parallel task dispatch, worktree isolation, context handoff, and automated merging. The content includes configuration snippets, usage examples, and links to relevant guides.

apps/website/src/content/integrations · high confidence

New onboarding tour for guided dashboard walkthrough

Introduced a new guided onboarding tour that walks first-time users through key areas of the dashboard. The feature includes a sequential tooltip-based walkthrough with a backdrop overlay, progress bar, and Next/Back/Skip controls. It leverages React Query cache injection to populate mock data (agents, tasks, plans, documents, messages) so the tour displays populated pages even in empty workspaces. Helper functions programmatically interact with UI elements (e.g., Workflow Template editor) to demonstrate features, and the tour supports conditional steps, cross-page navigation, and auto-advance.

apps/smithy-web/src/components/onboarding · high confidence

New responsive, image, onboarding, and provider-check hooks

Added four new React hooks in the \apps/smithy-web/src/hooks\ directory. \useContainerBreakpoint\ and its helpers (\useContainerWidth\, \useContainerIsMobile\, etc.) provide container-aware responsive sizing, allowing components to adapt to the main content area's width rather than the full viewport. \useImageDrop\ enables drag-and-drop and paste functionality for uploading images. \useOnboardingTour\ manages the state and persistence for a guided onboarding walkthrough. \useProviderCheck\ detects missing or uninstalled providers and offers a verification mechanism. Additionally, the \useBreakpoint\ hook was updated to align its breakpoint thresholds with Tailwind CSS v4 defaults.

apps/smithy-web/src/hooks · high confidence

New server routes for assets, approvals, diagnostics, metrics, and external sync

Added new server-side API endpoints for managing assets (upload and serve images), handling approval requests, providing runtime diagnostics (rate limits, stuck tasks, merge queue, error rates, agent pool status), querying provider metrics (by provider, model, or agent), and triggering external sync operations (push, pull, sync) with status reporting. These routes introduce new capabilities for asset storage, approval workflows, system health monitoring, usage analytics, and third-party integration synchronization.

packages/smithy/src/server/routes · high confidence

Added new Astro components for the website's visual and structural elements: a \Nav.astro\ header with desktop and mobile navigation, a \Footer.astro\ with product, community, and legal links, and a \DashboardPreview.astro\ component that renders a static, illustrative preview of the application's dashboard interface. These components establish the site's layout and provide a visual representation of the product's capabilities.

apps/website/src/components · high confidence

New website layout templates for blog, comparison, integration, and use-case pages

The website now supports structured pages for blog posts, feature comparisons, third-party integrations, and specific use cases. Each layout includes dedicated metadata (Open Graph, Twitter cards, and JSON-LD schema for software, articles, FAQs, and breadcrumbs) to improve SEO and social sharing. The base layout also adds Plausible Analytics tracking and preloads critical fonts for better Core Web Vitals.

apps/website/src/layouts · high confidence

Shared bulk task update and delete routes

The shared-routes package now exposes a new \createTaskRoutes\ factory that registers bulk update (PATCH) and bulk delete (POST) endpoints for tasks. This centralizes the logic for updating or deleting multiple tasks by ID, allowing both the quarry and smithy servers to reuse the same route definitions and avoid duplication. Additionally, the test suite for documents has been migrated from the \bun:test\ runner to \vitest\.

packages/shared-routes/src · medium confidence

Structured logging and rate-limit parsing utilities

The smithy package now includes a structured logger utility that supports DEBUG, INFO, WARNING, and ERROR log levels, configurable via the LOG\_LEVEL environment variable. Additionally, new utilities detect and parse Claude Code rate-limit messages, extracting reset times in multiple formats (time-only, date+time, and tomorrow) with optional IANA timezone support, and provide a fallback reset time when parsing fails.

packages/smithy/src/utils · high confidence

Synced dependency and element data for the Stoneforge sync system

The \.stoneforge/sync\ directory now contains \dependencies.jsonl\ and \elements.jsonl\ files that store the current state of the sync system's internal data. The \dependencies.jsonl\ file maps out the relationships between elements, including blocks, replies-to, parent-child, and references. The \elements.jsonl\ file contains detailed metadata about each element, including their type, creation and update timestamps, and specific attributes like agent roles and session history. These files are essential for the proper functioning of the Stoneforge sync system.

.stoneforge/sync · high confidence

Tasks page refactors bulk actions into a shared menu component

The tasks list page now uses a new BulkActionMenu component to handle bulk operations, replacing the previous inline UI for deleting tasks. This change introduces the ability to update task status and priority in bulk, alongside the existing delete functionality, by wiring up new useBulkUpdateTasks mutation hooks and handler functions.

apps/smithy-web/src/routes/tasks · high confidence

Workspace-wide executable path inputs and onboarding tour restart

The Settings page now includes a new section for configuring custom executable paths for each agent provider, allowing users to override system defaults. Additionally, an Onboarding Tour section has been added to the preferences tab, enabling users to restart the guided dashboard walkthrough.

apps/smithy-web/src/routes/settings · high confidence

API

Expose identity management and verification middleware

The quarry package now exports identity-related utilities and middleware from its main index. Specifically, the \resolveActor\, \validateSoftActor\, \ActorSource\ type, and \createVerificationMiddleware\ are now publicly available for use by consumers of the library.

packages/quarry/src/systems · high confidence

Behavioural changes

Activity dashboard cards now display per-session token usage and cost

The activity page cards have been redesigned into two variants—InteractiveAgentCard for directors and persistent workers, and HeadlessAgentCard for stewards and ephemeral workers. The cards now display live token counts (input, output, cache read/creation) and estimated costs per session, replacing the previous 7-day agent aggregate metrics. The dashboard layout also shifts from a grid to a flex column layout.

apps/smithy-web/src/components/activity · high confidence

Add 'Awaiting Approval' merge status to the UI domain

The UI domain now supports an 'awaiting\_approval' state for merge operations. This new status is reflected in the type definitions, with a corresponding display name ('Awaiting Approval') and a specific indigo color scheme for the UI. This allows the interface to visually and textually represent merges that are pending approval.

packages/ui/src/domain · high confidence

Added --color-surface-elevated token for elevated surface states

A new CSS custom property, --color-surface-elevated, has been added to the UI style tokens. This token provides a distinct color for elevated surface states across light and dark themes, complementing the existing --color-surface and --color-surface-hover tokens to support deeper visual hierarchy in the interface.

packages/ui/src/styles · high confidence

Added automatic JSONL export and moved task routes to shared package

The server now initializes an AutoExportService that automatically exports sync data to JSONL files in the .stoneforge/sync directory. Additionally, the bulk task update and delete routes have been moved from the server file to the shared-routes package, and task creation endpoints now receive the IdGeneratorConfig to ensure consistent ID generation.

packages/quarry/src/server · medium confidence

CLI enhancements: agent disable/enable, daemon sleep/wake, and task merge verification

The CLI now supports disabling and enabling agents via new 'sf agent disable' and 'sf agent enable' commands, which update the agent's metadata to control scheduler dispatch. The 'sf daemon' command gains 'sleep' and 'wake' subcommands to pause and resume the dispatch daemon, and 'sf daemon status' now displays rate-limit and sleep status. The 'sf task merge' command now performs post-merge verification to ensure commits landed on the target branch before marking the task as merged. Additionally, the 'sf task merge-status' command includes a '--force' flag to bypass verification failures. The 'sf agent register' command now accepts a '--target-branch' option for directors. The 'sf pool create' command's agent type config now supports provider and model fields. The 'sf task sync' command now checks for origin remote availability and uses the task's target branch for syncing.

packages/smithy/src/cli · high confidence

CLI option parsing and command registration updates

The CLI parser now accepts kebab-case long options (e.g., --reply-to) alongside the existing camelCase forms (e.g., --replyTo) for improved CLI conventions, and displays help text using kebab-case. The plugin loader now supports pre-registered plugins via globalThis to work around pnpm strict isolation issues. Additionally, new commands (create, list, externalSync, metrics, log, docs) are registered, and several user-friendly aliases (add, new, ls, complete) are added.

packages/quarry/src/cli · high confidence

Enhanced ID generation and plan blocking logic in Quarry API

The Quarry API now supports adaptive ID generation with collision detection, ensuring unique identifiers as the database grows. Additionally, the \ready()\ query now filters out tasks belonging to plans that are blocked by other plans, providing defense-in-depth for task visibility. The API also exposes an \IdGeneratorConfig\ for internal use and adds methods for retrieving an organizational chart and sending direct messages.

packages/quarry/src/api · high confidence

Enhanced image styling and workflow route parameter support

Images within markdown content now feature rounded corners and vertical spacing for improved visual presentation. Additionally, the workflow template route now supports an 'action' query parameter, enabling deeper navigation states for workflow templates.

apps/smithy-web/src · medium confidence

Expanded agent configuration, approval workflow, and metrics types

The API type definitions were updated to support new agent capabilities and monitoring. Director agents can now specify a target branch, and all agents support a custom executable path and a disabled state. Steward agents now use a workflow template ID (playbookId) alongside legacy playbook content. A new 'awaiting\_approval' status was added to merge tasks, and a full approval request model was introduced to track pending, approved, and denied states. Additionally, provider metrics types were expanded to include cache read/creation token counts and cost breakdowns, enabling detailed analytics on usage and pricing.

apps/smithy-web/src/api · high confidence

Exposes workflows module and resolves export conflicts

The @stoneforge/ui package now re-exports the workflows module, making it accessible via the main entry point. To prevent naming collisions between the workflows and domain layers, the main barrel explicitly re-exports specific types (TaskStatus, Workflow, WorkflowStatus) and components (WorkflowCard) from the domain and plans modules, ensuring the correct definitions are used when importing from the package root.

packages/ui/src · high confidence

Fix workspace scroll regression and add token usage display

The workspace pane now displays per-session token usage (input/output counts and session count) in the agent header, and the 'Start Session' button is visually disabled when the associated agent is disabled. Additionally, the StreamViewer component's auto-scroll behavior was corrected to prevent the scroll-to-top regression caused by layout-induced scroll events, and file uploads (including images) now trigger an automatic terminal refresh.

apps/smithy-web/src/components/workspace · medium confidence

Headless sessions now support custom executables via login shell and enforce permissions for interactive sessions

The headless provider now accepts a custom executable path, routing through a login shell (e.g., /bin/bash -l) to ensure shell functions and aliases are available. Interactive sessions now ensure the node-pty spawn-helper binary has correct execute permissions to prevent runtime failures. Additionally, the headless session close() method now interrupts the SDK query to ensure the agent process is properly terminated.

packages/smithy/src/providers/claude · medium confidence

Improved logging and rate-limit enforcement in server routes

All server route files in apps/smithy-server/src/routes now use a structured logger (createLogger) instead of console.error/warn, providing consistent, level-aware logging across the API. Additionally, session start and resume endpoints now enforce rate limits by returning HTTP 429 with a Retry-After header when all executables are rate-limited. The daemon routes expose rate limit status in the /api/daemon/status response, and new /api/daemon/sleep and /api/daemon/wake endpoints allow manual pausing and resuming of the dispatch daemon. Task reset endpoints now terminate active sessions and clean up worktrees before clearing task state.

apps/smithy-server/src/routes · high confidence

Improved readability of document tags in dark mode

The DocumentTagInput component now uses CSS variables for text and background colors instead of Tailwind's dark: prefix. This ensures that tag labels, input fields, and buttons remain clearly visible and properly contrasted in dark mode, fixing the issue where text was previously unreadable.

packages/ui/src/documents · medium confidence

Introduce recovery steward and workflow preset context to agent prompts

Added a new 'Recovery Steward' prompt that diagnoses and resolves broken worker sessions by completing, handing off, or escalating stuck tasks. Removed legacy 'Health', 'Ops', and 'Reminder' steward prompts. Updated the base and merge steward prompts to use a configurable \{{baseBranch}}\ template variable instead of hardcoded 'master'. Added a \buildWorkflowPresetSection\ function that injects workflow context (auto, review, or approve) and permission model details into agent prompts. Updated the documentation library commands from \sf library add\/\sf document search\ to \sf docs add\/\sf docs dir\. Added tests for the new prompt loading, template rendering, and workflow preset section generation.

packages/smithy/src/prompts · high confidence

LSP manager logging upgraded to structured log levels

The LSP manager in the Smithy server now uses a structured logger with distinct log levels (DEBUG, INFO, ERROR) instead of generic console calls. This allows users to configure the verbosity of server logs, enabling more granular control over diagnostic output during language server operations.

apps/smithy-server/src/services, packages/smithy/src/server/services · high confidence

Migrate messages route to container-based mobile detection

The messages route now uses the new \useContainerIsMobile\ hook instead of the previous \useIsMobile\ hook, and the ChannelList component's responsive styling has been updated to use container query breakpoints (\@sm:\) instead of viewport-based breakpoints (\sm:\).

apps/smithy-web/src/routes/messages · medium confidence

Migrate responsive styles from viewport to container queries and add surface token

The styles for the Smithy web app now use CSS container queries (@container) instead of viewport media queries (@media) to adjust spacing, typography, and layout based on the width of the nearest container rather than the entire screen. This change aligns the JS sidebar breakpoints with Tailwind's container query breakpoints and updates the breakpoint pixel values to match Tailwind CSS v4 defaults. Additionally, a new --color-surface-elevated CSS custom property has been added to the color tokens for all themes.

apps/smithy-web/src/styles · high confidence

Migrate shared components from viewport to container query breakpoints

The command palette, file content search, and quick file open components now render in a fixed overlay outside the container, as indicated by new comments. Additionally, the PageHeader and Pagination components have been updated to use container-based breakpoints (@sm:) instead of viewport-based breakpoints (sm:), ensuring that layout and visibility changes are scoped to the component's container rather than the entire viewport.

apps/smithy-web/src/components/command · medium confidence

Persist and query agent metadata fields in the Orchestrator API

The Orchestrator API now persists and retrieves additional metadata fields for agents: provider, model, and executablePath for all agent types (director, worker, steward), targetBranch for directors, and playbook/playbookId for stewards. These fields are now stored in the database and survive round-trips, ensuring that agent configurations are fully preserved. The updateAgentMetadata method is also exposed publicly.

packages/smithy/src/api · high confidence

Plans page responsive breakpoints updated to container queries

The Plans page now uses container query breakpoints (@lg) instead of viewport-based breakpoints for the detail panel visibility, allowing the component to adapt to its own size rather than the entire viewport. Additionally, a test ID (data-testid) was added to the main page container to support automated testing.

apps/smithy-web/src/routes/plans · medium confidence

Removed node-pty permission fix script and updated TypeScript config

The postinstall script that manually fixed execute permissions for the node-pty spawn-helper binary has been removed, likely because the underlying issue is no longer present or is handled differently. Additionally, the TypeScript configuration for the scripts directory has been updated to use the 'bun' type definitions instead of 'bun-types'.

scripts · high confidence

Removed obsolete Monaco Editor language assets

The build output for the \packages/smithy/web\ directory was corrected to sync with the serving directory by removing outdated JavaScript assets for multiple language grammars (including ABAP, Apex, Bash, Bicep, Clojure, CoffeeScript, C++, C\#, CSP, and CSS). These deleted files, which contained syntax highlighting rules from the Monaco Editor library, are no longer required in the web bundle.

packages/smithy/web · high confidence

Replace console logging with structured log-level framework

The server's logging has been migrated from raw console calls to a structured logger that supports log levels (DEBUG, INFO, WARNING, ERROR). This allows users to configure which messages they see, and the server startup now reports the active log level. Additionally, the server now automatically finds an available port if the configured one is in use, and the start function returns the actual port and daemon status.

packages/smithy/src/server · high confidence

Replace raw console logging with structured log-level support

All console.log/warn/error calls in the Smithy server have been replaced with a structured logger from @stoneforge/smithy, enabling users to filter logs by level (DEBUG, INFO, WARNING, ERROR) for better observability and reduced noise.

apps/smithy-server/src · high confidence

Standardized provider display labels in the UI

A new utility module in the web app's shared library now maps internal provider identifiers to user-facing display labels. This ensures that providers like 'claude-code' are rendered as 'Claude Code' in dropdowns, agent creation dialogs, and settings pages, with a fallback to the raw name if no label is defined.

apps/smithy-web/src/lib · high confidence

Steward focus types and task metadata updated

The StewardFocus type has been updated to replace 'health', 'reminder', and 'ops' with 'recovery' and 'custom', reflecting a shift in steward capabilities. Additionally, the OrchestratorTaskMeta type now includes 'awaiting\_approval' as a valid merge status, alongside new fields for 'targetBranch', 'owningDirector', 'mergeCommitHash', and 'disabled' flags on agent metadata.

packages/smithy/src/types · high confidence

Switch to container query breakpoints for UI visibility

The merge-requests and workspaces pages now use container query breakpoints (@md, @sm) instead of viewport breakpoints (md, sm) to control the visibility of UI elements such as keyboard shortcut hints and button labels. This change ensures that these elements appear or disappear based on the size of their containing element rather than the entire browser window, providing a more consistent experience when the application is embedded in different layouts.

apps/smithy-web/src/routes/merge-requests, apps/smithy-web/src/routes/workspaces · medium confidence

Updated mobile detection hook in document and inbox routes

The Documents and Inbox pages now use the new \useContainerIsMobile\ hook for detecting mobile devices, replacing the previous \useIsMobile\ hook. This change ensures consistent mobile detection logic across these routes.

apps/smithy-web/src/routes/documents, apps/smithy-web/src/routes/inbox · medium confidence

Updated workflow page layout and URL state handling

The workflows page now uses container query breakpoints (@md, @lg) instead of viewport-based breakpoints (md, lg) for its card grids, improving layout consistency across different container sizes. Additionally, the component's URL state management was refined: the 'action' search parameter is now explicitly cleared during navigation to ensure a clean state, and the 'selected' parameter is handled more robustly.

apps/smithy-web/src/routes/workflows · high confidence

The website now includes a \\_redirects\ file that maps old blog URLs to their new paths, ensuring that previous links continue to work. Blog post images are now served via symlinks to the source assets, and a new \logo.svg\ has been added to the public directory. Additionally, a \robots.txt\ file has been created to guide search engine crawlers and point to the site's sitemap.

apps/website/public · high confidence

Fixes

Fix OpenCode provider startup, session management, and interactive CLI arguments

The OpenCode provider now spawns the server process directly using node:child\_process.spawn, which allows passing the working directory (cwd) to the process, fixing ENOENT and spawn failures on Windows. The provider also passes the --prompt flag for initial prompts, uses the --session flag for session resumption, and applies the default model when none is specified. Session creation and abort operations now include proper error handling. Additionally, the test suite was migrated to use bun:test imports, and the shell quoting logic was updated to handle Windows paths correctly.

packages/smithy/src/providers/opencode · medium confidence

Fix blocked cache cascade and support thread\_reply in inbox

The BlockedCacheService now correctly cascades blocking state changes to child elements for all dependency types, ensuring that tasks are blocked when their parent plan or workflow is blocked. Additionally, the InboxService schema and tests have been updated to support the 'thread\_reply' source type, allowing inbox items to be created and filtered by this new category.

packages/quarry/src/services · high confidence

Fix node-pty spawn-helper permissions for PTY spawning

A new postinstall script is added to ensure the node-pty spawn-helper binary has the correct execute permissions (0o755) on macOS and Linux. This prevents failures when spawning PTY processes, which can occur if package managers strip execute permissions from native binaries.

packages/smithy/scripts · high confidence

Fix sf serve failing to start smithy server under pnpm

The \sf serve\ command was failing to start the Smithy server when using pnpm due to strict module isolation preventing dynamic imports. This change pre-registers the Smithy server loader and CLI plugin on the global object, ensuring that quarry can resolve the necessary components without relying on dynamic imports that fail in isolated environments.

packages/smithy/src/bin · high confidence

Fix sync content hash feedback loop and add auto-export service

The sync content hash now excludes the metadata.\_externalSync field, preventing an infinite loop where each push updates the hash and triggers another push. Additionally, an AutoExportService has been introduced to automatically poll for dirty elements and export them to JSONL files, with tests confirming the new behavior and renaming test files to use the .bun.test.ts convention.

packages/quarry/src/sync · high confidence

Fix workflow progress dashboard logic and playbook instantiation endpoint

The workflow progress dashboard now correctly tracks dependencies by using the blocker ID as the key in the blockedBy map, preventing potential crashes or incorrect state. Additionally, the hook for creating workflows from a playbook now calls the correct /playbooks/{id}/instantiate endpoint with the appropriate request body, ensuring workflows are instantiated correctly.

packages/ui/src/workflows · medium confidence

Fixes ID generator collisions under rapid calls

The ID generator in the core package now includes a monotonic counter to ensure uniqueness when multiple IDs are generated within the same millisecond or performance.now() resolution window. This change, accompanied by a test file rename to .bun.test.ts, addresses flakiness in uniqueness tests by preventing collisions that could occur when the high-resolution timer does not advance between successive calls.

packages/core/src/id · medium confidence

Improved git merge and worktree management with better error handling and remote repair

The git module now handles stale worktrees more robustly by pruning and removing them before creation, preventing 'Worktree already exists' errors. The merge logic now supports local-only mode, skipping remote fetch/push when no remote is configured, and detects already-merged branches to avoid redundant operations. Additionally, worktrees now automatically repair missing remote configurations by copying the workspace root's remote URL and fetch refspecs, ensuring consistent remote access across all worktrees.

packages/smithy/src/git · high confidence

Test coverage

Added integration tests for the steward executor; Improved test coverage and reliability for onboarding, settings, and workspace stream viewer; Migrate test suite from Bun to Vitest; Rename test files to use .bun.test.ts extension; Updated end-to-end tests for responsive documents, entities, settings, and kanban board; Updated test context and mock implementations for steward testing.

Dependencies

Update core and framework dependencies

The project has been upgraded to version 1.25.0, with @stoneforge/core, @stoneforge/quarry, @stoneforge/smithy, @stoneforge/smithy-server, @stoneforge/smithy-web, @stoneforge/quarry-server, and @stoneforge/quarry-web all updated to 1.25.0. Additionally, @anthropic-ai/claude-agent-sdk was updated from ^0.2.41 to ^0.2.45, and @opencode-ai/sdk was updated from ^1.1.64 to ^1.2.6. The root package.json now includes a 'dev:smithy' script, and the postinstall script was moved to a new location. The @types/bun dependency was updated from ^1.3.8 to latest, and turbo was updated from ^2.0.0 to ^2.8.14.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 47 → 47 (+0.6)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 59 → 48 (-11.3)
  • Architecture 40 → 48 (+7.7)
  • Maturity 68 → 65 (-2.9)
  • Readiness 41 → 44 (+3.0)
  • Security 75 → 68 (-6.6)
  • Accessibility 58 → 53 (-4.9)

Resolved (38)

  • Coverage not included — suite not readable by the collector
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (apps/quarry-web/package-lock.json)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (apps/quarry-web/package-lock.json)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (apps/quarry-web/package-lock.json)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (apps/quarry-web/package-lock.json)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (apps/quarry-web/package-lock.json)
  • High CVE: [GHSA redacted] (apps/quarry-web/package-lock.json)
  • …and 18 more

New (2903)

  • (anonymous) (cognitive 45) (packages/quarry/web/assets/utils-vendor-CfYKiENT.js)
  • (anonymous) (cyclomatic 47) (packages/quarry/web/assets/utils-vendor-CfYKiENT.js)
  • (anonymous)::(anonymous)::setState (cognitive 23) (packages/quarry/web/assets/utils-vendor-CfYKiENT.js)
  • (anonymous)::onKeyDown (cyclomatic 19) (packages/quarry/web/assets/utils-vendor-CfYKiENT.js)
  • (anonymous)::pe (cognitive 18) (packages/quarry/web/assets/utils-vendor-CfYKiENT.js)
  • ActiveAgentsDashboard.ActiveAgentsDashboard (cognitive 19) (apps/smithy-web/src/components/activity/ActiveAgentsDashboard.tsx)
  • ActiveAgentsDashboard.ActiveAgentsDashboard (cyclomatic 17) (apps/smithy-web/src/components/activity/ActiveAgentsDashboard.tsx)
  • ActiveAgentsStrip.ActiveAgentsStrip (cognitive 59) (apps/smithy-next/src/components/ActiveAgentsStrip.tsx)
  • ActiveAgentsStrip.ActiveAgentsStrip (cyclomatic 77) (apps/smithy-next/src/components/ActiveAgentsStrip.tsx)
  • ActivityCard.ActivityCard (cyclomatic 23) (apps/smithy-web/src/components/activity/ActivityCard.tsx)
  • ActivityFeedItem.ActivityFeedItem (cognitive 21) (apps/quarry-web/src/routes/entities/components/ActivityFeedItem.tsx)
  • ActivityFeedItem.ActivityFeedItem (cyclomatic 35) (apps/quarry-web/src/routes/entities/components/ActivityFeedItem.tsx)
  • ActivityRail.ActivityRail (cognitive 43) (apps/smithy-next/src/components/ActivityRail.tsx)
  • ActivityRail.ActivityRail (cyclomatic 68) (apps/smithy-next/src/components/ActivityRail.tsx)
  • AgentCard.AgentCard (cognitive 25) (apps/smithy-web/src/components/agent/AgentCard.tsx)
  • AgentCard.AgentCard (cyclomatic 35) (apps/smithy-web/src/components/agent/AgentCard.tsx)
  • AgentDetailView.AgentDetailView (cognitive 22) (apps/smithy-next/src/components/overlays/agents/AgentDetailView.tsx)
  • AgentDetailView.AgentDetailView (cyclomatic 26) (apps/smithy-next/src/components/overlays/agents/AgentDetailView.tsx)
  • AgentInboxDrawer.AgentInboxDrawer (cognitive 20) (apps/smithy-web/src/components/agent/AgentInboxDrawer.tsx)
  • AgentInboxDrawer.AgentInboxDrawer (cyclomatic 17) (apps/smithy-web/src/components/agent/AgentInboxDrawer.tsx)
  • …and 2883 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

stoneforge-ai/stoneforge was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 0a7052a9ffa1fb42fafbff9d9b6b83fa48cdad95 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b84573e22831.