Skip to content

Releases: dtormoen/tsk

v0.8.1

14 Feb 19:10
178d5ed

Choose a tag to compare

Added

  • add configurable auto-cleanup settings to [server] config section
  • add override options to retry command (--name, --agent, --stack, --project, --parent)
  • expand repo lock scope to cover submodule fetches and post-fetch operations
  • replace in-process mutex with cross-process flock(2) file locking in GitSyncManager
  • auto-clean old tasks in server mode

Other

  • add section descriptions to README command groups
  • remove unused get_full_log from LogProcessor trait

v0.8.0

10 Feb 06:49
51a81d4

Choose a tag to compare

There are a lot of under the hood improvements, but the headlines here are:

  • Added a --parent flag for tasks which allows task chaining. Very powerful
    when combined with a Claude Code skill that teaches Claude how to use TSK.
  • Added automatic tsk-proxy container management so it'll shut down when not in use.
  • tsk server start will now kill running containers when you use ctrl-c to exit.
  • Migrated json task storage to sql and renamed task directories to be just their task ID.
  • Added the ability to add a description to your task templates via yaml frontmatter.
    Run tsk template list to see task descriptions.
  • Improved TUI output tables in tsk list and tsk template list commands.

Task chaining allows you to specify parent child relationships between tasks. TSK will
wait to schedule a child task until the parent completes and the child will start from
the branch that the parent created.

There are two breaking changes:

  • The tsk proxy commands are removed in favor of automatic proxy container management.
  • Migrating to SQL storage and simplifying task directory paths. These changes did not
    cause issues in my testing, however, this is a large change and there may be cases
    that are broken with tasks created before the migration.

Added

  • implement graceful server shutdown with container cleanup
  • skip cleaning parent tasks with active children
  • track shell and run tasks in the database
  • replace IPC-based server stop with SIGTERM via PID file
  • remove IPC from add and list commands in favor of direct SQLite access
  • simplify storage wrapper from Arc<Mutex<Box>> to Arc
  • add busy_timeout PRAGMA to SQLite storage for safe concurrent access
  • run network isolation tests conditionally in precommit
  • add TSK_CONTAINER and TSK_TASK_ID env vars to task containers
  • add color coding to status column in tsk list
  • support multiple parent IDs in database schema
  • remove JsonTaskStorage and clean up legacy JSON references
  • add automatic migration from tasks.json to SQLite
  • wire SqliteTaskStorage as default storage backend
  • add rusqlite dependency and implement SqliteTaskStorage
  • add bold+underline styling to table headers
  • add frontmatter support to task templates
  • add duration column to list and replace table borders with aligned columns
  • add task dependency chaining with --parent flag

Other

  • remove NotificationClient trait, use concrete type in AppContext
  • remove TerminalOperations trait, use concrete type in AppContext
  • move DockerBuildLockManager out of AppContext into DockerImageManager
  • remove GitOperations trait, extract to free functions
  • remove FileSystemOperations trait, extract to free functions
  • add comments to justfile recipes and simplify CLAUDE.md dev commands
  • [breaking] remove tsk proxy command
  • [breaking] remove repo hash prefix from task directory paths
  • add task chaining with --parent to README

v0.7.1

04 Feb 06:33
d96dc51

Choose a tag to compare

Fixed

  • exclude dash from task ID alphabet to prevent CLI flag conflicts
  • prevent warmup from polluting session history and using tools
  • better socat behavior with database connections

Other

  • improve network isolation diagram

v0.7.0

03 Feb 05:43
7b6954b

Choose a tag to compare

This version fixes mutltiple ways agents could bypass the proxy and as a result, could
potentially break workflows that relied on that ability. Agents containers now have their
own separate networks without any external access other the proxy and the proxy has a
more restrictive firewall configuration.

To help ensure that there is a way for common workflows to work, this release adds the
ability to forward specific ports to localhost so you can run local services like development
databases or service endpoints and expose those specific endpoints. This release also adds an
way to pass environment varibles to agents via the tsk.toml config file without needing to
create/edit dockerfiles.

Here is an example tsk.toml which configures my-project to pass env variables for Postgres
and Redis which are running on localhost:

[proxy]
host_services = [5432, 6379]  # e.g., PostgreSQL, Redis

[project.my-project]
env = [
    # Environment variables passed to the container
    { name = "DATABASE_URL", value = "postgres://tsk-proxy:5432/mydb" },
    { name = "REDIS_URL", value = "redis://tsk-proxy:6379" },
]

Added

  • add per-project environment variable configuration
  • harden proxy container with iptables firewall and security options
  • add host service TCP port forwarding via socat
  • [breaking] implement per-container network isolation for agents

Fixed

  • correct proxy container permissions for tmpfs and squid operation

Other

  • add network isolation guide with architecture diagrams
  • add network isolation test script for container security

v0.6.5

02 Feb 00:49
e5b5c8e

Choose a tag to compare

Added

  • add git-town parent branch tracking support
  • automatic proxy lifecycle management

Fixed

  • copy ~/.claude.json into containers before starting
  • add required endpoint for tsk shell

Other

  • improve README structure and document new config options

v0.6.4

01 Feb 02:44
f1b7a17

Choose a tag to compare

Added

  • add --proxy-only flag to docker build command

Fixed

  • use different method for notifications on MacOS to prevent hang

Other

  • upgrade dependencies

v0.6.3

13 Jan 06:13
a41cf17

Choose a tag to compare

Added

  • human-friendly Docker resource configuration
  • add project-specific configuration with volume mounts
  • add TOML configuration file support
  • make --name optional for add and run commands

Fixed

  • provide test defaults for git config in CI environments

Other

  • add configuration file documentation to README
  • resolve git author dynamically from repository
  • rename TskConfig to TskEnv and TskOptions to TskConfig

v0.6.2

03 Dec 07:23
1b71b47

Choose a tag to compare

Added

  • skip branch creation when task produces no changes
  • add full git submodule support for task execution
  • add sound notifications on task completion

Fixed

  • configure git identity in submodule tests for CI
  • properly add uv to base image

v0.6.1

25 Nov 06:23
f511919

Choose a tag to compare

Added

  • add uv to base image
  • add quit-when-done mode to server start

Fixed

  • add line buffering to Docker log streaming to prevent parse errors
  • resolve git fetch errors when copying repos from specific commits

Other

  • update deps
  • (docker) simplify agent installation and environment setup

v0.6.0

27 Oct 00:58
0f147ae

Choose a tag to compare

This release has a few large changes. First we've added
codex support! You can now launch codex agents or even
launch multiple agents in parallel:

tsk add --type feat --name greeting --description "Add a greeting to all TSK commands" --agent claude,codex

This will create two tasks that are identical except for claude will work on one and
codex will work on the other. This is great for comparing the performance of different
agents.

We've also simplified TSK commands:

  • tsk debug is now called tsk shell
  • tsk quick is now called tsk run
  • tsk run has been removed
  • --timeout has been removed from a few commands as it was not actually implemented
  • The claude-code agent has been renamed to claude throughout the codebase

Added

  • [breaking] simplify command structure for better UX
  • add multi-agent support for task creation
  • (codex) improve log processor output quality
  • (codex) add JSON log processor with human-readable output
  • add codex agent support

Other

  • reorganize and enhance README
  • improve documentation
  • rename claude-code agent to claude