Skip to content

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 #1490
  • Desktop: extract settings + credentials modules, add backend-mode config by @skadauke in #1491
  • Desktop: first-run onboarding with GUI-driven local Docker install by @skadauke in #1492
  • Desktop: web-container main window, single-instance, move-to-Applications by @skadauke in #1493
  • Auto-provision the desktop tray token from the signed-in web session by @skadauke in #1494
  • Desktop: manage the local backend lifecycle (start/stop/watchdog) by @skadauke in #1495
  • Desktop: package as Syrus.app — signing-ready config + bundled installer by @skadauke in #1496
  • Desktop: auto-update + tag-driven release pipeline by @skadauke in #1497
  • Website: macOS app download path by @skadauke in #1498
  • Brand icons: replace the red-dot placeholder with the winged stylus by @skadauke in #1499
  • Desktop: bundled CLI, in-app GitHub App setup, install resilience & UX polish by @skadauke in #1500
  • Brand: unify the product accent on terracotta by @skadauke in #1553
  • Windows desktop app: feature-complete port + cross-platform auth/UX overhaul + hardened release CI by @skadauke in #1555
  • Land Epic #153: Internationalization — English, German, and Latin by @tkadauke-syrus[bot] in #1590
  • Fix phantom gap between Dashboard and Spending nav items by @tkadauke-syrus[bot] in #1584
  • Release permanently stuck blocked_by_epic jobs when job deps resolve by @tkadauke-syrus[bot] in #1585
  • Add Mark as read / unread to chat sidebar context menu by @tkadauke-syrus[bot] in #1583
  • Clear landing_failure_reason when retrying a failed landing step by @tkadauke-syrus[bot] in #1587
  • Release CI: one manual, atomic pipeline for CLI + apps + image + notes by @skadauke in #1594
  • Fix search field showing base64 dashboard filter value by @tkadauke-syrus[bot] in #1593
  • Accept job and epic slugs in all CLI commands by @tkadauke-syrus[bot] in #1589
  • Release: dry runs sign, faster image build, drop signing-test workflow, node24 actions by @skadauke in #1599
  • Release: reusable website deploy, build-backend rename, disk+cache fixes, near-atomic publish by @skadauke in #1602
  • Desktop: one universal macOS DMG, Windows x64-only by @skadauke in #1603
  • Release: tag-driven versioning + dispatch copy fixes by @skadauke in #1604
  • Image: install prebuilt Ruby (drop the ~13-min source compile) by @skadauke in #1605
  • Rename backend image syrus-local → syrus-backend; publish with GITHUB_TOKEN (no PAT) by @skadauke in #1606
  • Fix release-blocking curl (43) in syrus_verify_pushed: verify via imagetools, not a base64'd bearer token by @skadauke in #1609
  • Remove duplicated :position hash key (silences a compile warning) by @skadauke in #1611
  • Fix release blocker: publish ran gh release create release create … by @skadauke in #1612
  • Build backend natively per-arch (kill QEMU); dry run now tests both arches by @skadauke in #1610
  • Release polish: trim redundant assets + Claude-written notes (optional review gate) by @skadauke in #1616

New Contributors

Full Changelog: v0.0.6...v0.1.0