Skip to content

v0.3.7

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 00:05
· 199 commits to main since this release
  • Fabric starts when you log in (macOS and Windows). It starts without a window, so agents and the board keep
    running; turn it off in Settings → «Компьютер». Settings shows the row only where Fabric registers a login item (not
    on Linux or in a development build) and says when the system itself does not start Fabric (turned off in Login Items
    or Startup apps, or waiting for your approval).
  • An agent's history reads as what it did. In Агенты the picked agent's history is newest first and in words (a
    task it moved, a decision it recorded, its stage), with who did it, and it now includes what the agent wrote itself.
  • Other products can ask Fabric which project a folder belongs to. Fabric's hub answers fabric.project.resolve
    with the shared rules all three products agreed on (DEC-0089), so Observatory and Switchboard attribute a folder by
    the same rules. When Git cannot be read in time the answer is pending with git-unreadable (DEC-0092), never a guess; a
    relative path is refused and one call is bounded at 8 s.
    Fabric's own enrollment of agents moves onto the same rules in 0.3.8 (CO-339).
  • A task is no longer stuck after its agent ended. When an agent's process has ended but Fabric cannot prove its
    provider stopped, the console offers «Работа закончена»: the task goes back to the queue and can be taken again, and
    «Отменить» on the act line holds it again and puts the console back, so it offers «Работа закончена» again.
    After the press the console says «Вы отметили: работа закончена», not that Fabric confirmed the stop (ADR-0170).
  • A console is your own setup. Claude Code in a Fabric console now has your MCP servers (Observatory, your plugins)
    beside Fabric's, and Codex runs with your own AGENTS.md, plugins, trust and sign-in instead of an empty copy,
    without copying your sign-in. A console also finds the same programs your terminal does. An agent you create in a
    project, and a console in a project that declares MCP servers of its own, still see only the servers they declare and
    run Codex in their own home with a copy of the sign-in (ADR-0169).
  • Every coding agent starts as a console, with fewer prompts by default. A project's console can now start any
    coding agent of the catalogue this computer has (Gemini CLI, OpenCode, Goose, Cursor, Pi, OpenClaw and the rest),
    not only the five Fabric connects to its surface. Settings has «Разрешения агентов»: «Меньше подтверждений», chosen by default,
    or «Проверять вручную», one choice for every agent, and each agent's row shows how it starts. OpenCode's own
    fabric-mcp registration is accepted (ADR-0168).
  • Fewer generated-looking touches. Thick coloured side stripes on notices and selected rows became a thin
    outline, and buttons and links no longer end in an arrow («Продолжить», not «Продолжить →»).
  • A quieter top bar and a denser rail. The top bar holds the place's name and the open consoles, nothing else:
    search is ⌘K, the profile block and the conversation button are gone, and a line about this computer appears at the
    foot of the rail only when something needs a look. Projects take less room on the rail (OF-04, OF-05).
  • Consoles open inside Fabric, as tabs along the top. «Консоль» no longer opens a separate window: the console
    fills the main area, and each open console is a tab in the top bar with its project's name and its coding agent, so
    you see which are open and switch with one press. Closing a tab never stops the session. «Открыть в отдельном окне»
    on the console still gives it a window of its own.
  • A console whose agent has ended says so. It said «Остановка не подтверждена» and offered to force a stop of a
    process that was already gone; now it says «Сессия завершилась» with the exit code.
  • «Where you stopped» stays where you stopped. It used to jump to whichever project an agent last touched; now it
    is the project of your own last act, and it still counts what happened there since.
  • Claude Code no longer asks «Do you trust this folder?» in Fabric's consoles. When Fabric starts Claude Code in a
    project's folder, it marks the folder trusted first, as Orca does. Folders already trusted stay trusted.
  • A console no longer closes itself when it opens. Opening a coding agent's console again sent the terminal's own
    answers into the agent, and Claude Code read them as «Esc» on its «Do you trust this folder?» question and quit.
  • Many coding agents at once no longer push each other out. With dozens of Claude Code sessions open in
    different projects, they took turns disconnecting one another and then waited on Fabric's rate limit. The limit of
    eight sessions now counts one project, and each session gets its own share of calls; one coding agent still holds
    at most 64 sessions across all projects, and past that the oldest is ended.
  • One rail, five places (SCN-162). The left of the window holds «+ Создать», Главная, Агенты, История and
    Настройки, then your projects: favourites first, then by latest activity, a green dot where an agent works and a
    count where something waits for you. The tab strip, the Back button, the per-project links and the bar above each
    screen are gone; ⌘[ goes back and ⌘] forward; ⌘K opens search. Board, Plan, Messages between projects, account
    limits, Help and Fabric's name and look are reached from where they belong (Главная, the project page, Настройки).
  • «Создать» opens in the window with three choices: open a projects folder, create a project, create an agent.
    Drafts you left unfinished are listed there to go on with.
  • История lists every act you take, newest first by day, with «Отменить» where it can be taken back
    and the reason where it cannot. After an act, one quiet line at the foot of the place says what was done, with
    «Отменить».
  • No more «are you sure?» (ADR-0160). Stop, force stop, releasing a task, removing a folder, discarding a draft and
    replacing your words with a shortcut happen at once and can be undone. A link opened while the first run was on
    screen opens what it links to. An agent's request to use a product, the usage-count question and the warning that
    the local database is reachable from your network are questions on Главная, never a pop-up or a banner.
  • «Отключить» for a coding agent that joined on its own (SCN-167). Агенты shows each coding agent that joined
    from a terminal, with the fact that Fabric cannot prove which program it is. «Отключить» revokes its access, ends
    its consoles and keeps it out of every project until you press «Пустить снова»; either can be undone.
  • Docker no longer brings back services Fabric does not use. Containers an older full start had left (the
    database studio, its logs, mail and file storage) started again with every Docker or OrbStack restart and took about
    1.4 GB of memory. Fabric now removes them when it starts its local database; the data stays.
  • An agent started deep inside a repository adds the repository, not the folder it started in, and removing one
    copy of a repository from a project no longer keeps every other copy of it out. This is the first step of one
    shared answer to "which project is this folder" across Fabric, Switchboard and Project Observatory (ADR-0166).
  • Any folder an agent starts in becomes a project by itself, not only a Git repository: a plain folder is added
    the same way, with the agent named in the operations log; the add is listed in История with the agents' own acts in 0.3.8. Only a container is skipped (the
    disk root, the home folder, a folder right under it such as Documents, or a folder that already holds projects).
  • Every act can be taken back (ADR-0160, SCN-168, SCN-169). Moving a task, releasing
    a claim, removing or adding a folder, renaming a project, answering a question, stopping a console and discarding a
    draft are each recorded with who did it and how to undo it: a task moves back, a claim is taken again, a folder
    is attached again, the old name returns, a question is opened again, a console starts again where it stood, a
    draft is restored. An undo is itself recorded and can be undone. What cannot be taken back says why: a task
    closed, a release published, an agent's key revoked.
  • An answered question can be reopened. The question is open again, what it blocks is blocked again, and a new
    answer is a new decision; agents no longer read the withdrawn answer as a current decision.
  • A task held by an unfinished run says so (CO-323): fabric_work_claim and fabric_task_claim no longer refuse a
    task whose launched session exited with «another agent claimed it in the same moment»; they name the run that holds it,
    its session, since and until when, and that its stop is not proved; fabric_work_list lists that task as held,
    not open. An expired claim of a session that is gone is taken over by the next claim, as before.
  • A coding agent opened in an unknown folder gets its project automatically through Fabric's enrollment: exact,
    ancestor, worktree and remote identity attach to the existing project, an otherwise unknown repository or plain
    folder is created once, and session.enroll is allowed at once on the operator's own machine. Containers (the disk
    root, the home folder, a folder right under it, a folder that holds projects) and ambiguity are refused; detached or
    archived projects are not brought back. Every create, attach and access decision is recorded and revocable
    (ADR-0136, ADR-0160).
  • Usage counts go to PassionCode's own analytics host (analytics.passioncode.ai, docs/ANALYTICS.md),
    no longer to the operator's personal instance; what is counted, and the switch that stops it, are unchanged.
  • Fabric waits for Docker at start. Started at login before OrbStack or Docker Desktop is ready, Fabric waits up
    to 90 s for Docker to answer, saying so on the splash, instead of showing the startup failure at once.
  • A slow or prompting shell setup no longer holds Fabric's start. The login shell's PATH is read with a 3 s
    deadline that holds; when the shell does not answer, the launch PATH keeps its old order.
  • The count of Comms threads with new messages is shown again, on Настройки in the rail and on «Переписка между
    проектами», now that Comms is reached from Настройки → Ещё.
  • Act sentences name the chosen answer and the agent in your language, never an option's id or a raw runner id.
  • «Где идёт работа» is gone as a screen. Who is doing what is on Главная and on each project's page (SCN-141
    retired).
  • For agents: revision references hash the canonical JSON of their object (CT-26, DEC-0043). A hub call's
    envelope names the binding and the hub as revisioned objects, and contentHash is sha256: over the RFC 8785
    canonical JSON of that object, so any verifier can reproduce it.

Database

  • The database moves to schema 94 (from 89): five migrations, applied in order:
    20261017000112_acts_and_reopened_answers.sql (count 90: act.recorded@1, the record of an act with its inverse,
    and reopen_answered_question; three partial journal indexes, no stored row rewritten),
    20261018000113_project_repo_identity.sql (count 91: normalized remote and repository-kind identity, detach
    tombstones; it rewrites every stored project_repos row once, and creates the estate-path unique index only where no
    duplicate paths exist, with a warning otherwise), 20261018000114_private_archive_source.sql (count 92: schemas 91
    and 92 as private-archive sources), 20261019000115_run_over_attestation.sql (count 93: «Работа закончена», ADR-0170,
    and 93 as an archive source) and 20261020000116_withdrawn_answer_closes_decision.sql (count 94: a withdrawn
    answer closes its decision, and answers taken back at schemas 90 to 93 are corrected during the upgrade; three
    journal indexes for an agent's history; 94 as an archive source). The arithmetic is in
    release-mac.md.

Upgrading. A database at schema 89 (0.3.6) is upgraded to 94 before 0.3.7 opens it: install 0.3.7 and start it
once (it refuses, and copies its migrations into Fabric's stack folder), quit it, make a verified backup, rehearse on a
copy, then run supabase migration up --local in that folder and start 0.3.7 again
(release runbook).
Until then 0.3.7 refuses to start its workspace services and says which schema it found. An older database takes the
same procedure; supabase migration up applies every missing migration in order. 0.3.6 cannot open a database at 94:
keep the backup if you may need to go back.

Verify

gpg --verify SHA256SUMS.asc SHA256SUMS      # key 63B30DC324BD697487AA31944FAFB8AEC803B6A7
shasum -a 256 -c SHA256SUMS --ignore-missing
gh attestation verify <file> --owner passioncode-ai --signer-repo passioncode-ai/.github

The organization's public key: https://github.com/passioncode-ai/.github/blob/main/release-signing/passioncode-release-signing.asc