Skip to content

Releases: tkadauke/syrus

Syrus v0.1.4

Choose a tag to compare

@github-actions github-actions released this 19 Jul 00:40

Syrus 0.1.4

Highlights

  • Walkthrough Videos → Epics: Record or drag in a narrated screen recording; Gemini analyzes it and chat proposes a matching Epic. Includes live red-pen screen annotation, hold-to-draw, and an OCR handoff so Claude can read stills flagged by Gemini. Ships behind a Labs feature flag (default off).
  • Coding Mode: A new chat mode that grants the agent write tools against a real checkout, with a live file tree, diff viewer, and an "Open in Coding Mode" take-over workflow for existing Jobs.
  • Local Mode: Run agent work against your own machine via a new reverse-tunnel CLI daemon (syrus local), with a take-over workflow, connection status, and a diff panel in chat.
  • Test coverage analysis: Parse LCOV/Cobertura reports, annotate diffs with coverage, track trend over time, post PR comments, and auto-schedule coverage-improvement jobs on regressions.
  • Main branch health monitoring: Continuous grading of main, automatic landing-queue pause/resume on breakage, auto-repair jobs, and health status/history surfaced throughout the UI.
  • Desktop side-by-side channels: Stable and test builds can now be installed and run at the same time, each with its own CLI profile.
  • Full i18n pass: English, German, and Latin translations wired across nearly every route and component in the app.

Chat

  • New scratchpad: jot down ideas, stash/queue between the scratchpad and the message queue, /scratch slash command, and a Tab-to-stash shortcut.
  • New Jobs tab in the chat workspace with a live status feed for jobs linked to the conversation.
  • Hover-preview cards for Job/Epic slugs referenced in chat and elsewhere in the app.
  • Chat delete flow renamed and reworked: hard delete with worker-side cleanup.
  • Coding Mode / Local Mode toggles with mode-aware system prompts and short in-context hints.
  • Send media with no accompanying text; walkthrough videos now appear in the media panel.
  • Paste-to-attach in the composer, plus subtle flag-gated animations.

Desktop app

  • Side-by-side stable/test channels, with an in-app TEST badge and a "Reset Test Setup" option on test builds.
  • Install progress bar, redesigned uninstall menu flow, and Docker image cleanup.
  • CLI is now actually bundled and installed with the app; "Open in Syrus" focuses the running window.
  • DMG installer prefers /Applications and asks before replacing an existing install; hardened against several edge cases.
  • Streamed backend-update notice with progress phases and connectivity-aware gating.
  • Recording HUD floats in its own draggable window; true OS-level hold-to-draw for the red pen.

Web app

  • New marketing website rebuilt on Next.js under website/, replacing the old Astro-based docs site, deployed via GitHub Pages.
  • Rebuilt /credentials page around the setup flow's provider cards.
  • Coverage card, diff annotations, source hit map, and trend sparkline on jobs and repositories.
  • Main branch health status and history shown on the dashboard, repository, and job views, with manual "Check CI Now" and repair actions.
  • Epic progress replaced with a colorful progress bar on the dashboard and kanban cards.
  • "Create Epic & Start Implementing" gated to developer/admin users.

CLI

  • New syrus local reverse-tunnel daemon subcommand powering Local Mode.
  • Test-channel builds ship their own CLI profile (syrus-test), derived from argv0.

Docker and deployment

  • New queue-partitioning configs (config/queue.compute.yml, config/queue.home.yml) for multi-node deployments.
  • Workspace pruning and disk-health reporting are now per-worker; single-host Docker installs keep correct disk-usage banners.
  • Admin-configurable global agent-concurrency cap.
  • Trimmed Docker build context; bin/deploy updated for the multi-worker split topology — operators running multi-worker setups should review the updated deployment docs before upgrading.

Fixes

  • Merge train: rebuild instead of unapproving on stale-base failures, incremental rebase recovery on moved bases, guards against reopening failed trains and against assembling with open unapproved siblings.
  • Resume now reopens the failed step instead of spawning a new Manual workflow; latest-workflow selection now uses finish time instead of creation time.
  • More resilient stale-run reaping (aware of live progress) and reconciliation of workflows stuck after hard step failures.
  • Fixed dropped first character on scratchpad Enter-submit and a scratchpad badge that failed to clear when all items were deleted.
  • Fixed the overflow menu opening off-screen on mobile.
  • Numerous CI stability fixes (timeouts, stale test setup) for React and RSpec suites.

Internal

  • Major refactor of the frontend: the 4,700-line Chat.tsx and 2,300-line JobDetail.tsx were split into focused modules and components; large ChatsController, DashboardPayload, and Job model concerns extracted for readability.
  • Consolidated duplicated helpers (withRoutePrefix, formatDate, errorMessage, formatBytes, inputClass) into shared libraries.
  • Replaced several type-switch anti-patterns (providers, policies, pending actions) with registry-based dispatch.
  • CI: shared reusable _build-app.yml build spine, test-release renamed to test-build, and desktop builds parallelized (~40% faster).
  • Dead-code removal across Ruby and TypeScript, plus new test coverage for previously untested models and services.

Full changelog

What's Changed

  • Fix merge-train stale-base failures to rebuild instead of unapproving by @tkadauke-syrus[bot] in #1622
  • Weekly anti-pattern scan: 5 policy-type switch instances flagged by @tkadauke-syrus[bot] in #1614
  • Wire i18n t() calls in Dashboard and EpicDetail routes by @tkadauke-syrus[bot] in #1600
  • Wire useT() hook and i18n placeholders across 16 route files by @tkadauke-syrus[bot] in #1601
  • Remove dead code and deduplicate across Ruby and TypeScript by @tkadauke-syrus[bot] in #1613
  • Wire t() calls in Admin routes for i18n by @tkadauke-syrus[bot] in #1597
  • Wire i18n t() calls in DirectJobNew and JobDetail routes by @tkadauke-syrus[bot] in #1598
  • Extract and wire i18n strings in utility components by @tkadauke-syrus[bot] in #1630
  • Wire i18n through GitHub integration modals by @tkadauke-syrus[bot] in #1632
  • Extract and translate navigation/filtering component strings by @tkadauke-syrus[bot] in #1631
  • 0.1.3: ship the CLI for real, Epic start button, sidebar notices, chat rename/delete, tab-to-complete by @skadauke in #1629
  • Fix Resume to reopen the failed step instead of creating a Manual workflow by @tkadauke-syrus[bot] in #1635
  • Order latest workflow by finish time, not creation time by @tkadauke-syrus[bot] in #1636
  • Website: Next.js marketing site under website/ + GitHub Pages deploy by @martinkadauke in #1639
  • Don't fail agentic steps on provider cleanup timeouts by @tkadauke-syrus[bot] in #1637
  • Remove edit button on deleted epic bundle proposals by @tkadauke-syrus[bot] in #1638
  • Land Epic #158: Chat scratch pad by @tkadauke-syrus[bot] in #1645
  • Gate "Create Epic & Start Implementing" to developer/admin users by @tkadauke-syrus[bot] in #1641
  • Collapse multi-dependency chips to prevent title starvation by @tkadauke-syrus[bot] in #1644
  • Walkthrough videos → Epics: narrated screen recordings analyzed by Gemini, Epics proposed by the chat agent by @skadauke in #1627
  • Desktop: DMG self-install prefers /Applications and asks before replacing an existing install by @skadauke in #1650
  • Desktop: fix silent hold-to-draw, rectangular auto-sized recording HUD, subtle pen indicator by @skadauke in #1654
  • CI: test-release workflow — deterministic full build, GHCR test image, no publishing by @skadauke in #1652
  • Chat composer easy wins: paste-to-attach + flag-gated subtle animations by @skadauke in #1655
  • Land Epic #160: Chat scratch pad follow-on by @tkadauke-syrus[bot] in #1680
  • Install dialog names real versions; test-release tags read consistently by @skadauke in #1688
  • Fix overflow menu opening off-screen on mobile by @tkadauke-syrus[bot] in #1678
  • Guard merge_train_assemble against open unapproved siblings by @tkadauke-syrus[bot] in #1664
  • Desktop: visible backend-update progress + never report "not connected" during the outage by @skadauke in #1690
  • Credentials page: rebuild around the setup flow's provider cards by @skadauke in #1691
  • CI: rename test-release → test-build; run desktop in parallel (~40% faster) by @skadauke in #1696
  • Land Epic #156: Coding Mode for Syrus Chat by @tkadauke-syrus[bot] in #1700
  • Buffer grader output to line boundaries before logging by @tkadauke-syrus[bot] in #1697
  • Fix scratch pad panel: always show dismiss button and fix visibility after cl...
Read more

Syrus v0.1.3

Choose a tag to compare

@github-actions github-actions released this 08 Jul 06:46

Syrus 0.1.3

Highlights

  • Epics: Create & Start Implementing — create a new epic and kick off implementation in one step.
  • Chat gets a refresh — renamed UI, tab-to-complete suggestions for next steps, and true hard-delete of chat sessions with worker-side cleanup.
  • Desktop app ships the real CLI — the bundled CLI is now properly staged and installed, and "Open in Syrus" now focuses the running app instead of spawning a duplicate window.

Desktop app

  • The CLI is now actually shipped and installed with the desktop app (fixed staging/packaging).
  • New shell-notice bridge lets the desktop shell surface native notices inside the web app.
  • "Open in Syrus" now focuses the existing app window/tab instead of opening a new one.
  • Added a dedicated web app window/preload path with its own IPC surface.
  • Expanded desktop test coverage: auto-update, CLI install, IPC channel parity, tray "Open in Syrus", shell-notice bridge, and web container behavior.

Web app

  • New sidebar notices in the app chrome, driven by app readiness checks.
  • Setup flow fixes in the app chrome.
  • Chat: renamed UI, hard delete with worker-side cleanup, and tab-to-complete suggestions for next steps.
  • Epics: new "Create & Start Implementing" action from the epic form.

Internal

  • Added AppApi::ReadinessChecks service backing the new sidebar readiness/notices.
  • Added ChatSessionCleanupJob for worker-side hard-delete cleanup of chat sessions.
  • Added SuggestNextStepTool for the chat MCP sidecar to power tab-to-complete suggestions; new suggested_next_step column on chat sessions.
  • Extended WorkflowWorkspacePruneJob and ChatWorkspace service.
  • Updated release workflow (.github/workflows/release.yml).
  • Significant expansion of the test suite across desktop, jobs, models, requests, and services.
  • Documentation updates for desktop, API, and features.

Full changelog

Full Changelog: v0.1.2...v0.1.3

Syrus v0.1.2

Choose a tag to compare

@github-actions github-actions released this 07 Jul 23:54

Syrus 0.1.2

Highlights

  • New uninstall scripts for a clean, complete removal of Syrus — uninstall.sh and uninstall.ps1 join install.sh/install.ps1, and are also wired into the desktop app's uninstall flow.
  • Desktop install progress bar with real-time, JSON-based pull progress reporting during backend image download.
  • Automatic recovery from stale GHCR credentials during install/pull, avoiding manual re-authentication.

Desktop app

  • Added an install progress bar in onboarding, driven by structured JSON pull progress from Docker.
  • New in-app "Uninstall" menu flow that removes containers, images, and local data.
  • Added Docker image cleanup logic to reclaim disk space after uninstall/upgrade.
  • Fixed DMG background/layout issues (updated background art, Finder window layout script).
  • Version and build-time badges are now shown in the app, reflecting the actual release build.
  • Disk space warning now reflects real, measured disk usage instead of an estimate.

CLI / Installers

  • install.sh / install.ps1: added automatic recovery when cached GHCR credentials are stale or invalid.
  • install.sh / install.ps1: pull progress is now reported as structured JSON for better UI integration.
  • New uninstall.sh / uninstall.ps1 scripts to fully remove Syrus (containers, images, volumes, and data) on Linux/macOS and Windows.
  • bin/docker-image-lib, bin/publish-image, bin/build-local-image: internal updates supporting the new pull-progress and credential-recovery behavior.

Docker and deployment

  • Dockerfile updated to support build-time version/badge metadata.
  • Docker Compose deployment docs updated to reflect installer and uninstall changes.

Fixes

  • Disk space alerts in the app now reflect true available disk space rather than a rough estimate.

Internal

  • Extensive new test coverage for image cleanup, pull progress parsing, uninstall command flow, packaging, and install/uninstall parity between shell and PowerShell scripts.
  • Desktop shell and bootstrap serializer updated to expose version/build metadata to the frontend.
  • Documentation updates for desktop app and troubleshooting guides covering install/uninstall behavior.

Full changelog

Full Changelog: v0.1.1...v0.1.2

Syrus v0.1.1

Choose a tag to compare

@github-actions github-actions released this 07 Jul 00:45
81e370c

Syrus 0.1.1

Highlights

  • Collaboration modes for cross-fork and upstream PRs. Syrus can now review and approve pull requests opened from forks (modes 2b/3), poll for reviewer feedback, and route it back into the job automatically.
  • PR feedback handling end-to-end. New comment ingestion, attribution, and classification pipeline detects reviewer feedback on open PRs and feeds it back into the active job, with per-repository feedback_policy (confirm or auto) controlling whether Syrus acts on it automatically or waits for confirmation.
  • Grace period & rejection handling. Jobs now track PR rejection signals, enter a grace period before giving up, and can recover automatically if a closed PR is reopened.
  • Feature branch lifetime tracking. Post-upstream-PR branches now track iteration count and lifetime, surfaced in job details and timeline.

Desktop app

  • Windows: Syrus now installs Docker Desktop for you — unattended, per-user install with license pre-acceptance, removing a major manual setup step.
  • Windows install can resume after a reboot, with clearer first-start guidance for Docker and better per-user install detection.
  • Onboarding and runtime setup flows updated to support the new Docker Desktop installer and resume behavior.

Web app

  • Job detail and dashboard pages surface fork-review PR status, feedback, and branch lifetime/iteration info.
  • Repository settings now include configuration for feedback_policy and grace period behavior.

Fixes

  • Fixed stale GHCR credential guidance shown when pulling images fails.

Internal

  • Added specs covering previously untested service classes (job timeline, PR comment ingestion/attribution, fork review approval, grace period expiry, and more).
  • bin/test-react now runs in parallel for faster CI.
  • Updated ARCHITECTURE.md and CLAUDE.md to reflect collaboration modes, i18n, CLI slugs, and Windows desktop changes.
  • Added a new "Collaboration" docs section covering all four collaboration modes.

Full changelog

What's Changed

  • Add specs for six untested services and parallelize test-react by @tkadauke-syrus[bot] in #1615
  • Update ARCHITECTURE.md for changes since 2026-07-01 by @tkadauke-syrus[bot] in #1608
  • Land Epic #149: PR Feedback Loop, Fork Review Workflow, and Collaboration Mode Documentation by @tkadauke-syrus[bot] in #1621
  • CLAUDE.md: document i18n, CLI slugs, and Windows desktop by @tkadauke-syrus[bot] in #1607
  • Field fixes: stale-GHCR-login pull guidance (the 0.1.0 install failures) + Sonnet 5 release notes by @skadauke in #1623
  • Windows install: auto-resume after reboot, Docker first-start guidance, per-user install detection by @skadauke in #1624
  • Windows: Syrus installs Docker Desktop itself (unattended, no UAC, license pre-accepted) by @skadauke in #1626

Full Changelog: v0.1.0...v0.1.1

Syrus v0.1.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 11:44
1198e7f

Syrus 0.1.0

This release introduces native desktop apps for macOS and Windows, shared repositories with team review policies, full internationalization (English, German, Latin), and a substantially reworked release pipeline.

Highlights

  • Desktop apps for macOS and Windows. Install and run Syrus from a native app with first-run onboarding, a GUI-driven local Docker install, backend lifecycle management, tray inbox, auto-update, and a bundled CLI you can install with one click.
  • Shared repositories. Repositories can now be shared across a team, with per-membership installation and agent provider settings, epic/job authorization, and configurable review policies (self, two-person, and final-say approvals).
  • Internationalization. The web app and backend are fully localized in English, German, and Latin, with a language switcher and a saved per-user locale preference.

Desktop app

  • First-run onboarding with GUI-driven local Docker install, runtime setup, port-conflict handling, and an install-failure escape hatch.
  • Manage the local backend lifecycle directly from the app; retry image pulls before failing an install.
  • Web-container main window with dock, single-instance handling, and DMG polish; one universal macOS DMG.
  • Auto-update with a tag-driven release pipeline.
  • Tray inbox groups jobs by Epic with checkout; context-aware retry actions and tray badge.
  • Automatic tray-token provisioning from the signed-in web session, including on in-page navigations, with stale-token healing.
  • Register the GitHub App through the default browser; install the App at add-repository time.
  • Connect flow is URL-only with live validation; adopt an existing instance or take over stale offers.
  • Windows app: local install via install.ps1, bundled CLI, tray parity, one-click WSL, and Azure Artifact Signing (x64).
  • Bundle and one-click install the Syrus CLI; offer CLI + skill install after setup.
  • Packaged as Syrus.app with signing-ready electron-builder config and a bundled installer.
  • Preferences and setup surfaces compacted; "Run Setup Again" escape hatch.

CLI

  • syrus checkout EPIC-N gains a --complete flag.
  • Accept job and epic slugs (JOB-N, EPIC-N, bare ID) across all commands.
  • New skill command and agent-aware skill offer; open-url support.
  • Humanized login flow and email-format hint.

Web app

  • Filter/search jobs and epics by slug (JOB-N, EPIC-N, bare ID).
  • New Owner filter chip for jobs and epics, replacing the Mine/Team/Claimable tabs.
  • Copyable slug in Epic and Job page titles/headers.
  • Epic detail: segmented progress bar with an ordered legend, standardized headings.
  • Notify the agent when pending actions are confirmed, rejected, or dismissed.
  • Hover timestamps on chat message bubbles; Mark as read/unread in the chat sidebar context menu.
  • Context-aware job retry actions.
  • Standardized button styles, form input dark-mode/focus styles, detail panel metadata layout, tag pills, and admin subpage widths; Repository overview restructured to a 2/3 + 1/3 sidebar layout.
  • New brand mark (winged stylus) and unified terracotta accent.
  • Latin flavor throughout: status pill tooltips, error-page subtitles, Roman calendar cron dates, PR-description quotes, and a few easter eggs.

Merge train & workflows

  • Rebuild the merge train when the base moves, restoring approvals, with explanations for rebuild blockers.
  • Harden merge-train land retries; refresh git tokens on auth failure.
  • Sync GitHub PR review approvals to job approvals.
  • Cross-fork PR creation with fork-to-upstream routing and PR repository tracking; sync forks with upstream at prepare time.
  • Release epic-blocked jobs once dependencies complete; skip redundant amend/test-plan turns when upstream has already submitted.

Docker and deployment

  • New bin/build-local-image builds an installable backend from your working tree in one command.
  • Install script gains a GUI-drivable Docker path and hardened machine interface.
  • Renamed backend image syrus-localsyrus-backend; publish with GITHUB_TOKEN instead of a PAT.
  • Install prebuilt Ruby (MISE_RUBY_COMPILE=0), cutting image build from ~13 min to seconds.
  • Backend image built natively per-arch (no QEMU).

Fixes

  • Release epic-blocked and permanently stuck blocked_by_epic jobs when dependencies resolve; clear landing_failure_reason on retry.
  • Fix stale association cache bypassing epic dependency blocks.
  • Fix job self-approval when owner_user_id is nil.
  • Fix duplicate filter suggestions and search fields showing base64 filter values.
  • Remove remaining Telegram remnants from the May 2026 migration.
  • Fix deprecated Context tab in repository navigation and various layout/spacing glitches.

Upgrade notes

  • Global repository uniqueness. A migration adds a repository_memberships table and makes repository uniqueness global. If you have repositories with duplicate [owner, name] rows, review your data before upgrading; the migration deduplicates existing rows.
  • New migrations add slugs to jobs and epics, review policies, job approvals, target/PR repository tracking, and per-user locale. Run migrations as part of the upgrade.

Full range: v0.0.6..HEAD


Full changelog

What's Changed

  • Fix stale association cache bypassing epic dependency block by @tkadauke-syrus[bot] in #1529
  • Make epic slug copyable in detail page header by @tkadauke-syrus[bot] in #1530
  • Move copyable slug into Job page title by @tkadauke-syrus[bot] in #1533
  • Land Epic #151: Epic grouping in desktop tray inbox by @tkadauke-syrus[bot] in #1535
  • Remove remaining Telegram remnants from May 2026 migration by @tkadauke-syrus[bot] in #1531
  • Fix deprecated Context tab in repository navigation by @tkadauke-syrus[bot] in #1536
  • Standardize admin subpage widths to max-w-6xl by @tkadauke-syrus[bot] in #1537
  • Restructure Repository overview to sidebar layout by @tkadauke-syrus[bot] in #1538
  • Allow job/epic filter search by slug (JOB-N, EPIC-N, bare ID) by @tkadauke-syrus[bot] in #1539
  • Land Epic #148: Team Collaboration: Shared Repository Model, Fork Workflows, and Review Policies by @tkadauke-syrus[bot] in #1542
  • Add Owner filter chip for epics; replace Mine/Team/Claimable tabs by @tkadauke-syrus[bot] in #1540
  • Remove "Awaiting your approval" sidebar folder by @tkadauke-syrus[bot] in #1544
  • Fix spurious separator line between standalone landing queue jobs by @tkadauke-syrus[bot] in #1543
  • Add Owner filter chip for jobs; replace Mine/Team/Claimable tabs by @tkadauke-syrus[bot] in #1541
  • Fix job self-approval blocked when owner_user_id is nil by @tkadauke-syrus[bot] in #1558
  • Fix owner_approved? ignoring nil owner_user_id in ReviewPolicies by @tkadauke-syrus[bot] in #1560
  • Show segmented progress bar and ordered legend chips on Epic detail by @tkadauke-syrus[bot] in #1556
  • Show hover timestamp on chat message bubbles by @tkadauke-syrus[bot] in #1547
  • Fix duplicate filter suggestions caused by FK value type mismatch by @tkadauke-syrus[bot] in #1546
  • Notify agent when pending actions are confirmed, rejected, or dismissed by @tkadauke-syrus[bot] in #1562
  • Add Latin tooltip to StatusPill for each job and run state by @tkadauke-syrus[bot] in #1563
  • Land Epic #152: UI consistency pass by @tkadauke-syrus[bot] in #1582
  • Update triaging tooltip to augury reference in STATE_LATIN by @tkadauke-syrus[bot] in #1570
  • Add Latin tooltips for mergeable/unmergeable status pills by @tkadauke-syrus[bot] in #1565
  • Add Latin subtitles and Latinize quotes on error pages by @tkadauke-syrus[bot] in #1566
  • Add random Latin Publilius Syrus quote to PR descriptions by @tkadauke-syrus[bot] in #1567
  • Add Ides of March easter egg to AgentActivityIndicator by @tkadauke-syrus[bot] in #1569
  • Add Curia Latin tooltip to Admin navigation link by @tkadauke-syrus[bot] in #1568
  • Add Roman calendar tooltip to cron task next-fire-at dates by @tkadauke-syrus[bot] in #1572
  • Add Latin subtitles to onboarding empty state steps by @tkadauke-syrus[bot] in #1571
  • Sync GitHub PR review approvals to job_approvals table by @tkadauke-syrus[bot] in #1559
  • Fix epic header title truncation and alignment in desktop tray by @tkadauke-syrus[bot] in #1557
  • Skip summarize_amend and test_plan agent turns when upstream already submitted by @tkadauke-syrus[bot] in #1579
  • Restore PubliliusSyrusFooter with expanded quotes and tooltip by @tkadauke-syrus[bot] in #1564
  • install.sh: GUI-drivable Docker install (+ spaces-in-path portability fixes) by @skadauke in https://github.com/tkadauke/syrus/pull/...
Read more

Syrus v0.0.6

Choose a tag to compare

@tkadauke tkadauke released this 03 Jul 21:11

Syrus v0.0.6

Highlights

  • Read-only chat sharing — Share a chat with teammates via share links; recipients get a read-only view.
  • Chat slash commands — New /copy, /search, /pin, /branch, /report (file a GitHub issue), and bookmark-picker commands, plus editable proposal cards inline in chat.
  • Switch agent providers mid-chat — Change a chat's provider (Claude ⇄ Codex) from the UI; the switch runs as an async job and per-chat provider selection is persisted.
  • Agent memory — Worker runs now read from memory: a read_memory MCP tool in the worker sidecar and memory context injected into worker prompts.
  • Automatic branch cleanup — Syrus deletes its own branches after PRs merge (immediately, with a daily reaper sweep as backstop).

Chat

  • Temporal markers in message streams and compact history carried into resumed turns.
  • Per-chat provider selection controls and a gear icon in the chat header for Chat Settings.
  • Pinning with sidebar ordering (via slash command and sidebar context menu).
  • New chats default to your most recently used repository and preserve the default repository.
  • Structured Codex tool events are now persisted; ChatMessage content is canonicalized to Anthropic content-blocks, with transcript_jsonl reduced to a derived cache rehydrated on resume.
  • Hardened stop handling: stopped turns are reconciled after process exit, queued messages are promoted after terminal turns, and stale chat turns are reaped.
  • Compose polish: accessible icon buttons, compact attachment popup that stays open on tab change, empty thinking-only assistant bubbles hidden, constrained agent-question card width, and a Copy button beside Bookmark.
  • Proposal outcomes now surface as system events and broadcast live so sidebar indicators update in place.
  • Fixed Excalidraw crash by remapping the sticky shape type to rectangle.

Web app

  • Epic detail redesigned into a two-column layout with a progress bar, state chips, a clearer action hierarchy, and an Add Job link.
  • Job detail redesigned: state badge, red Cancel, menu, sidebar Claim, improved blocking banner and dependency panel, typeahead dependency search, and a timeline toggle.
  • Summary tab moved to a content-first two-column layout.
  • Action Cable connection lost/reconnected indicator, with app queries refetched after reconnect.
  • ANSI terminal styles now render in transcripts.
  • Admin: confirm before revoking an invitation, copy invitation share URLs to the clipboard, and hide the empty clearable-secrets section on Admin Settings.
  • SPA shell responses are no longer browser-cached.

Terminal

  • Rewrote TerminalRelay for multi-client broadcast with scrollback; the frontend handles replay frames.
  • Multiple terminal viewport/sizing fixes for reliable initial fit and resize.

Reliability & fixes

  • Reject cron expressions with a zero day-of-month or month field.
  • Skip parsed dependencies for non-issue jobs, with repair for stale rows.
  • Recover queued workflows that were left blocked without runs, and warn when this happens.
  • Fail fast on MCP sidecar startup failures and fix the sidecar bundle boot.
  • Dynamic push-rebase recovery, plus guards for retry workflows and branch divergence.
  • Landing fixes: correct queue positions for blocked jobs and continue landing after a clean local mergeability check.
  • Normalize job and epic slug presentation; fix proposal-card confusion and wrong pending counts on slug reuse.
  • Fix chat sidebar sort order being corrupted by updated_at bumps.
  • Fix the restart action for direct/cron jobs and wrap it in a transaction.
  • Cascade rejected Epic proposals to their proposed child Jobs.

Docker & deployment

  • Fixed release image passthrough in bin/release-image.

Internal

  • Removed the legacy repository-note system (models, MCP tools, and API endpoints).
  • Refreshed architecture notes for recent workflow changes.

Upgrade notes

  • Syrus now deletes its own branches after PRs merge. If you relied on merged Syrus branches persisting, note that they are now removed immediately and swept daily.
  • The legacy repository-note feature has been removed, including its MCP tools and API endpoints.

Syrus v0.0.5

Choose a tag to compare

@tkadauke tkadauke released this 01 Jul 15:16

Syrus v0.0.5

Highlights

  • Chat provider selection. Syrus Chat now runs on either Claude or Codex. Pick your provider in Credentials; the choice persists per user and per chat session, with availability checks so unconfigured providers aren't offered.
  • Adversarial review loop. The initial workflow can now run an adversarial review step that critiques the agent's own work before opening a PR. The number of review rounds is read from repo config (.syrus.yml).
  • Role-aware Epic workflows. Accounts now carry a selectable role (product owner / developer). Product owners get scoped Epic advancement and job triage; developers get an Epic elaboration mode. Epics also gain version history with an audit display.
  • Native desktop notifications. The desktop app can raise native OS notifications on job state changes, with per-event preference controls in notification settings.

Web app

  • Chat compose page supports attachments.
  • Dependency references render as clickable Job slugs.
  • Scheduled job headers link back to their source ScheduledTask.
  • Chat exposes a "question" tool at the start of a turn.
  • Fixed generated titles for chat sessions that haven't started yet.

Configuration

  • New repo config knobs: adversarial review rounds, and hooks.post_checkout schema cleanup so schema files are restored after post-checkout hooks run.

Fixes

  • Fixed contradictory chat run failure title.
  • Fixed role-aware Epic proposal actions.
  • Hardened terminal relay readiness and branch-patch-presence guard behavior.

Internal

  • Extracted chat provider strategies (ChatProviders::Claude / Codex) and an agent environment snapshot service.
  • Removed duplicated ownership and terminal helpers; consolidated terminal session APIs.
  • Refreshed architecture and agent-guide documentation for current workflow paths.

Syrus v0.0.4

Choose a tag to compare

@tkadauke tkadauke released this 29 Jun 16:37

v0.0.4

Highlights

  • Job dependencies from chat — chat proposals can now declare dependencies between proposed Jobs (including cross-proposal and Epic-proposal dependencies), and the chat MCP sidecar gained add_job_dependency / remove_job_dependency tools plus dependency support in propose_job.
  • Auto-generated direct job titles — direct Jobs now get a concise title generated from their prompt text by the agent, produced asynchronously so Job creation stays fast.
  • Image annotation in chat — attach images to a chat and annotate them inline; thumbnails show an edit affordance on hover.
  • Smarter unified search — search terms are parsed with Google-style semantics, chat matches are grouped in unified results, and match toggles use chevron icons.

Web app

  • Chat drafts persist across navigation; pending proposal indicators appear in the chat sidebar, with a jump banner in the compose area when a proposal needs attention.
  • Pending feedback actions render inline within the chat message stream, anchored to the current message.
  • New chats are created lazily from the sidebar, reuse unstarted chats, and default to your most recently used repository. Repository chips moved above the composer input and can be removed; the empty-compose layout was aligned.
  • Detaching a chat attachment now requires confirmation.
  • Source browser preserves folder expansion when selecting a file and highlights file contents with syntax highlighting.
  • Job detail surfaces a link to the originating chat.
  • Memory content in settings renders as Markdown, with full content viewable in a modal and an always-available expansion action.
  • Proposal outcomes notify chat agents when they resolve; notification read state broadcasts live; healthy MCP status messages are suppressed.
  • Inactive chat bookmarks now show in sidebar menus with working links; bookmarks refresh when menus open.
  • Jobs with an active workflow are hidden from actionable lists; saved smart-folder labels are aligned and the folder drag handle stays reachable.
  • Admin Features page added as a proper SPA route; several missing SPA shell routes registered so hard reloads resolve.
  • Epics with all child Jobs closed can be marked done.

CLI

  • syrus checkout runs configurable hooks.post_checkout commands after a branch checkout.
  • syrus status reworked: renamed status jobs and added local branch / checkout status.

Desktop app

  • New Job detail tabs (summary and feedback); PR review feedback and local checkout status shown in the tray history.
  • Job title tooltips on hover; a dismissible checkout success toast; tray link to the originating chat message.
  • Job menu flips near the tray edge to stay on-screen; test-plan code spans render inline; header brand focus outline removed.
  • Fixed tray feedback submission (with fallback) and tray renderer startup.

Terminal

  • Terminal sessions survive reconnects: the relay and PTY stay alive, relay threads wake on stop, and scrollback is restored across route remounts.

Configuration & docs

  • .syrus.yml supports hooks.post_checkout; configuration, CLI, features, API, recipes, and troubleshooting docs updated. Architecture documentation refreshed.

Fixes

  • Reconcile orphaned queued steps after a worker dies.
  • Chat image attachments emit absolute paths in prompts; Git askpass env is passed to Claude chat turns; chat repository checkouts refresh on each turn.
  • Duplicate chat sidebar pagination entries removed.

Operational notes

  • Fixed the terminal_sessions migration for MySQL — relevant if you are upgrading a MySQL deployment that had not yet applied it.

Syrus v0.0.3

Choose a tag to compare

@tkadauke tkadauke released this 28 Jun 06:47

Syrus v0.0.3

Highlights

  • Interactive terminal sessions (labs). A new worker-side PTY relay lets operators open browser terminal sessions that survive navigation. Sessions are persisted, exposed through a JSON API and Action Cable relay channel, and surfaced in the web app as a terminal route with session tabs and a badge. The whole feature is off by default and gated behind the terminal feature flag. See the deployment docs for relay host discovery configuration on Kubernetes and Docker Compose.
  • Job feedback from the desktop tray and web app. A new direct app API accepts job feedback, with an inline submission form in the web Job detail and a dedicated tray feedback view in the desktop app.

Web app

  • Added a diff mode to the job source browser.
  • Search now finds Jobs and Epics by slug.
  • Chat JOB- and EPIC- slugs link to their detail pages, and pending-action job slugs are now linked too.
  • Unified the chat confirmation card presentation.

Desktop app

  • New tray notifications page with an unread bell and a compacted tray header.
  • Inbox repository groups now remember their collapsed state.
  • Chat message fields focus automatically when starting a new chat.
  • Fixed tray feedback header title sizing.

Chat

  • Split chat MCP tools into a deferred sidecar.
  • Redirected chat memory guidance toward the Syrus MCP tools.

Docker and deployment

  • Docker builds now ignore release artifacts and the local bundle directory.
  • Added terminal relay host discovery configuration for Kubernetes and Docker Compose.

Fixes

  • Forced the chat message cursor index on MySQL.
  • Restored the v2 UI feature declaration and handled missing feature flags gracefully in the app chrome.
  • Fixed Electron runtime install for desktop development and avoided stale desktop release artifacts.
  • Removed a duplicate terminal relay enqueue.

Internal

  • Release tooling now prevents reuse of a release version.

Syrus v0.0.2

Choose a tag to compare

@tkadauke tkadauke released this 27 Jun 22:40

Local Syrus release v0.0.2.