Repository navigation
Releases: saynain/trestl
Release list
Trestl v0.6.0
Trestl v0.6.0
Trestl v0.6.0 adds screenshots and Markdown diagrams to work item discussions.
- Use Add image or paste a screenshot into a work item description or comment. The editor inserts an image link at the cursor, and the saved item displays the image inline.
- Render fenced
mermaidandflowchartdiagrams in descriptions, comments, and comment previews. Flowcharts, sequence diagrams, and other Mermaid diagram types use the same Markdown rendering path. - Keep images within work item access rules. PNG, JPEG, GIF, and WebP files are supported up to 8 MB each, with 1 GB of image storage per workspace. Removing an image link revokes access for other work item viewers.
See PR #35 for screenshots of descriptions, comments, and rendered diagrams.
Upgrade notes
Back up the installation database before upgrading. The server creates its image table automatically; no new environment variable or manual migration is required. Uploaded image bytes live in the installation database and count toward its storage and backup size. Deleting a work item deletes its attached images; unused uploads are removed after seven days on a later upload.
Project transfers include Markdown text but not uploaded image bytes. Re-upload screenshots after importing a project into another installation. The image API adds POST /api/v1/images and GET /api/v1/images/{id} under the existing /api/v1 prefix; existing endpoints remain compatible.
Downloads and desktop alignment
The web image is ghcr.io/saynain/trestl:v0.6.0 for linux/amd64. Pin the published digest in deployment repositories. The CLI archive trestl-cli-0.6.0.tgz and SHA256SUMS are attached to this release, with the same package mirrored at ghcr.io/saynain/trestl-cli:v0.6.0.
The desktop app, bundled server, root package, CLI package, Tauri config, and Cargo manifest are aligned to 0.6.0. Signed desktop installers and the updater feed remain pending signing configuration. Test installers from successful Desktop installers workflow runs require repository access; they are not signed release downloads. See the desktop guide for platform requirements and signing status.
Verify locally
From a checkout of v0.6.0, run pnpm install --frozen-lockfile, pnpm test, pnpm build, and pnpm desktop:version. Start pnpm dev with an isolated data directory. Create a work item, paste a screenshot into its description, and save it. Add another image in a comment. Confirm both render after reload. Add a fenced mermaid flowchart and sequence diagram in a description and comment, and confirm the comment preview and saved item display them.
Trestl v0.5.0
Trestl v0.5.0
Trestl v0.5.0 adds live canvas collaboration, canvas and milestone references, clearer work-item relationships, and server version information.
- Reference canvases from work item descriptions, comments, and project descriptions.
- Reference milestones from work item descriptions and comments without assigning work to them.
- Add dependencies using Blocked by, alongside Blocks and Related to.
- Find current-project work items first in relationship and reference pickers, while keeping cross-project results available.
- Inspect the running server version and compare it with the latest release in Administration.
Live canvas collaboration
Draw together on the same project canvas with live edits, named cursors, selections,
and an editor count. Share copies a link for colleagues who already have project
access. Shapes, text, images, titles, backgrounds, and grid settings synchronize;
zoom, pan, appearance, and undo history remain personal.
The embedded Excalidraw editor connects to Trestl's existing Fastify server over
WebSockets. The server merges changed elements, saves the canvas in the existing
database, then broadcasts the committed scene. Saved confirms that commit.
Edits to different shapes are retained; concurrent edits to the same shape resolve
to one complete element using Excalidraw versions, without character-level text
merging. Clients retain pending edits in an open tab and automatically reconnect.
Unsaved edits do not survive closing the tab or a browser crash.
No separate service or paid account is required. Keep one Trestl app instance and
configure the reverse proxy to forward WebSocket upgrades on /api/. The current
limits are 40 open editors per canvas, 8 MiB per scene, and 20,000 elements including
deletion tombstones. Full scene snapshots are broadcast, so large canvases cost more
to synchronize. The public website demo remains local to each visitor.
See live canvas collaboration for setup, the edit and
reconnect flow, access checks, and operational limits.
Upgrading from v0.3.0
This is the next published release after v0.3.0 and also includes the hierarchy,
milestone, and API/CLI improvements developed for v0.4.0:
- Choose or clear parent work items, convert work to subtasks, and organize nested
lists and board cards with completed-subtask counts. - Assign work to project milestones and inspect linked items and completion
progress in milestone details, Roadmap, Gantt, and the CLI. - Use CLI parent commands, relation removal, and revision-checked item deletion.
The API returns incoming and outgoing relations with display information. - API compatibility:
PATCH /api/v1/items/{id}returns{ "item": ... }.
Read the updated item and revision fromresponse.item. Item creation still
returns the item directly. Update the CLI and Raycast extension with the server.
Downloads and desktop alignment
The web image is ghcr.io/saynain/trestl:v0.5.0 (linux/amd64). Pin its verified
image digest in deployment repositories. The CLI archive trestl-cli-0.5.0.tgz
and SHA256SUMS are attached to this release, with the same package mirrored at
ghcr.io/saynain/trestl-cli:v0.5.0.
The desktop application, bundled server, root package, CLI package, Tauri config,
and Cargo manifest/lockfile are aligned to 0.5.0. The existing updater public
key is unchanged. All four desktop build targets passed installer and packaged
runtime checks in CI.
Signed desktop installers and the updater feed are pending signing setup.
They are not included in this web/CLI release. Test installers are available
from successful Desktop installers workflow runs and require repository
access. They are not signed release downloads. Once Apple, Windows, and updater
signing are configured, desktop artifacts can be published from the same immutable
tag without changing the version or updater key. See the
desktop guide for platform requirements, local data, and signing.
Test locally
From a checkout of v0.5.0, install dependencies with pnpm install --frozen-lockfile and start pnpm dev. The development UI runs at http://127.0.0.1:5173 by default. For a second instance, use PORT=4318 WEB_PORT=5174 pnpm dev and open http://127.0.0.1:5174.
Use a separate checkout without an existing .env or .data directory to get an isolated local database. Create a local test account on the first-run screen; optionally enable demo data. Do not point a test checkout at a production database.
Manual checks
- Create two projects, each with work items. In a work item, open Add relationship: current-project items should appear first and other projects should remain available.
- Select Blocked by, choose another item, and save. Confirm the inverse Blocks display on the other item and persistence after reload.
- Create a canvas. Type
!in a work item description or comment, choose the canvas, save, and open its link. Repeat in the project description. - Create a milestone. Type
%in a work item description or comment, choose the milestone, and save. Follow its link and verify that the work item's Milestone property and milestone progress remain unchanged. - Open Administration → Server version. Check the installed version/build identifier and refresh the release check. An inaccessible release source should show an unavailable status while retaining the installed version.
- Open the same canvas in two separate signed-in browser profiles with project access. Draw a different shape in each, move a shape, edit text, and rename the canvas. Confirm both sessions show the changes, cursors, selections, and Saved. Undo a local shape edit and confirm the other person's separate shape remains. Reload and verify the saved drawing and updated canvas references.
- Disconnect one editor, make edits in both sessions, reconnect, and confirm edits to different shapes survive. Keep the disconnected tab open until it reports Saved. Verify that a user without project access cannot open the shared link.
Automated checks: pnpm test, pnpm build, and pnpm desktop:version.
Trestl v0.3.0
Trestl v0.3.0
This release adds project collaboration features, appearance controls, and expanded canvas tooling.
Canvases
- Import
.excalidrawfiles directly from a project's Canvases overview. Each import creates and opens one canvas, using the filename and selected collection, without leaving a blank canvas behind. Invalid files create nothing. (#10) - Manage canvases from the CLI with
trestl canvases list|create|import|show|delete, using project keys or repository defaults.showprints a browser link, and deletion requires the revision previously read. (#10) - Import native Excalidraw documents through
POST /api/v1/projects/:projectId/canvases/import. Retrieve a canvas link and revision throughGET /api/v1/projects/:projectId/canvases/:canvasId/show. Existing project permissions, token scopes, and scene limits apply. (#10)
The canvas changes require no database migration or new environment variable. Update both the server and CLI to use the new commands and endpoints.
Project collaboration
- Add project members to workspace-visible projects. Members identify the project team while everyone in the workspace retains access. (#11)
- Mention people and work items, and receive in-app mention notifications. (#14)
- Post project health updates and review active projects in the weekly review. Project transfers include update history. (#17)
Appearance
Trestl v0.2.0
Trestl v0.2.0
This release adds customizable boards, nested work item lists, and improvements to everyday work item editing, project actions, and people administration.
Boards
- Rename, reorder, and show or hide column headings; choose compact cards, tag visibility, and completed columns. Preferences are saved per user and board in the browser and included in saved views. Renaming a heading preserves the underlying status. (#4)
- Drag cards within or between columns, or use Alt + Up/Down to reorder a focused card. Card order persists across reloads. (#4)
Work items
- Expand subtasks beneath their parents, with completion counts and keyboard navigation using Left/Right. Search and filters retain ancestor context, and expanding a parent includes completed children. (#9)
- Save title and description edits with Cmd+Enter or Ctrl+Enter. (#1)
- Toggle Markdown task checkboxes with a click or Space while preserving the surrounding text. Descriptions managed by GitHub or Gitea remain read-only. Borderless text fields now retain their intended focus styling. (#2)
- Set an optional Start date when creating work. (#3)
- Read descriptions, comments, and properties with larger text. Activity appears as a chronological timeline, and comments have Write/Preview controls that preserve drafts. (#7)
- Edit tags with roomier chips and reliable removal when additions are pending. Long names wrap, and failed saves retain the draft. (#5)
Projects and people
- Edit projects directly from All projects. Import sits beside New project, and Export is available from the project options menu on every project tab. (#6)
- Search people by name or email, filter active and disabled accounts, and create accounts through an Add a person dialog. Role and authentication controls use the shared picker. (#8)
- Disabled accounts cannot receive new assignments. Existing assignments remain editable and can be reassigned; recurring follow-ups become unassigned if their previous assignee is disabled. People with the same name are distinguished by email. (#8)
Upgrading from v0.1.0
Back up your database and retain APP_SECRET before upgrading. This release adds no database migration or new required environment variable. Existing projects and work items are retained. The API remains under /api/v1; new assignments to disabled users are now rejected.
Deploy the application image ghcr.io/saynain/trestl:v0.2.0, using the verified registry digest in deployment configuration. The published image supports linux/amd64. Download trestl-cli-0.2.0.tgz and SHA256SUMS from this release, verify the checksum, and install with:
npm install --global ./trestl-cli-0.2.0.tgz --ignore-scripts
trestl --versionThe same CLI package is available as the OCI artifact ghcr.io/saynain/trestl-cli:v0.2.0. Node.js 22.9+ is required. Neither publishing a release nor replicating its artifacts automatically updates a running installation.
Full changes: v0.1.0...v0.2.0
Trestl v0.1.0
Trestl CLI and application release. See the README for installation and browser sign-in instructions.