typebasedio 6f80c8bf5c feat(v0.6): config file parser + resolver + source attribution
Phase 1 foundation. Adds:

- internal/config/configfile.go — strict-key YAML parser for the
  global config file. Unknown top-level keys invalidate the entire
  file (no partial apply); future schema versions are rejected with
  an upgrade message. Platform-appropriate path (XDG_CONFIG_HOME or
  ~/.config on Unix, %APPDATA% on native Windows).

- internal/config/resolver.go — Resolver / ResolvedSetting /
  SettingSource (Builtin, ConfigFileSrc, EnvVar, CLIFlag,
  PlatformOverride). Each setting carries provenance plus an
  Override chain so callers can render "env var (overrides config
  file: X)" lines. session_mode applies the native-Windows
  platform override at the resolver layer with the configured
  value chained as Override. Exports SetConfigPathForTest and
  SetIsNativeWindowsForTest so cross-package tests can isolate
  themselves from host config or simulate the override.

- internal/config/config.go — legacy ResolveRoot / ResolveAgent /
  ResolveSeedDir / ResolveProjectRoot / ResolveSessionMode now
  delegate to LoadResolver so config-file values take effect for
  entry commands. ResolveProjectRoot preserves the "" sentinel for
  built-in source so SearchRoots and doctor checkProjectRoot keep
  their existing fallback semantics. ResolveSessionMode preserves
  the v0.5.3 unknown-value stderr warning, distinguishing env-var
  and config-file sources in the message.

- Tests: 6 LoadConfigFile cases (missing, basic, partial, unknown
  key, future schema, malformed YAML), 3 ConfigFilePath cases
  (XDG / ~/.config / %APPDATA%), 11 resolver cases including
  layering, override chains, path expansion, platform override,
  and SettingSource string rendering.

- Test isolation: vulnerable tests in config_test.go and
  config_roots_test.go that asserted Builtin-source defaults now
  call SetConfigPathForTest to point at a nonexistent path,
  insulating them from developer-host config files. Three cmd
  tests that asserted persistent session_mode behavior now call
  SetIsNativeWindowsForTest to disable the platform override
  (Phase 1 introduces the override; the layering-only behavior
  these tests cover is tested separately in resolver_test.go).

No new dependencies (gopkg.in/yaml.v3 was already in go.mod).
No version bump (lands at the end of Phase 3 per the v0.6 spec).
2026-05-14 21:47:25 -04:00
2026-04-06 10:05:27 -04:00
2026-04-06 10:05:27 -04:00
2026-04-06 10:05:27 -04:00
2026-04-06 10:05:27 -04:00

ctask

A local CLI that creates and manages named AI-agent task workspaces.

ctask gives developers dedicated directories with consistent structure, visible session identity, environment context injection, and automatic session logging -- so you can start, resume, and organize AI-assisted work more safely and predictably.

Status

v0.2.0 -- local use, not published to any package registry. Windows-primary, cross-platform design.

Key Features

  • Named workspaces with consistent layout (task metadata, notes, context, output, logs)
  • Session traceability -- automatic file-change snapshot logging on every session
  • Agent-agnostic -- default agent is Claude Code, but any CLI agent or shell works
  • Query resolution -- find workspaces by name, slug, or substring
  • Status line -- persistent session context inside Claude Code's UI
  • Doctor -- verify setup and diagnose configuration problems
  • Safe delete -- active workspace protection prevents accidental data loss

Install (Windows)

cd C:\Users\Warren\claude_tasks\ctask_v0.1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/install.ps1

Installs to %LOCALAPPDATA%\ctask\bin. Open a new terminal after install.

See docs/install.md for full details.

Quick Start

# Verify setup
ctask doctor

# Create a new task workspace and launch Claude Code
ctask new "fix auth bug"

# List recent workspaces
ctask list

# Resume where you left off
ctask last

# Or resume a specific workspace
ctask resume auth-bug

Commands

Command Description
ctask new [title] Create a new workspace and launch the agent
ctask list Show recent workspaces
ctask resume <query> Reopen a workspace and launch the agent
ctask open <query> Open a workspace in a shell (no agent)
ctask info <query> Display workspace metadata
ctask archive <query> Mark a workspace as archived
ctask last Resume the most recently updated workspace
ctask doctor Verify ctask setup
ctask delete <query> Permanently remove a workspace

See docs/commands.md for full usage.

Status Line

ctask includes a status-line helper for Claude Code that shows session context at the bottom of the UI:

(ctask:fix-auth-bug|local) C:\Users\Warren\ai-workspaces\general\2026-04-06_fix-auth-bug

Run ctask doctor to check if the status line is configured. See docs/install.md for setup.

Uninstall

cd C:\Users\Warren\claude_tasks\ctask_v0.1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/uninstall.ps1

Removes ctask files only. Your workspaces and task data are never touched.

Troubleshooting

See docs/troubleshooting.md.

S
Description
No description provided
Readme 544 KiB
v0.6.1 Latest
2026-05-21 11:02:21 +00:00
Languages
Go 96.6%
Shell 1.7%
PowerShell 1.5%
Just 0.2%