Releases: sanskarpan/tag-agent
v0.6.4 — Adversarial QA Phase 3–8: all phases complete
Bug Fixes (Phases 3–8)
Phase 3 (DB concurrency): 20 concurrent writes passed, WAL mode verified, schema collision idempotent.
Phase 4 (SQL injection): 15 injection payloads across cron/loop/split — all rejected safely, no tables dropped.
Phase 6 (infrastructure failures):
- read-only DB: unhandled
sqlite3.OperationalErrornow caught inmain()with user-friendly message (#335)
Phase 8 (--json coverage):
- budget check --json with no budget: now returns
{"budget": null, "unlimited": true}instead of plain text (#336) - queue-dep list: new subcommand to list DAG jobs with status (#337)
- security --json top-level: added
--jsonto parent parser sosecurity --jsonworks without specifyingscan(#338) - queue-dep promote --json: added JSON output
- Final sweep: 27/27
--jsonpaths verified valid JSON
v0.6.3 — Adversarial QA: 9 bug fixes
Bug Fixes
- Corrupted DB:
open_db()now catchessqlite3.DatabaseErrorand prints a user-friendly error instead of crashing (#326) - Loop validation:
loop start --max-iters 0or negative values now rejected with clear error (#327) - Cron range validation:
validate_cron_expressionnow checks field value ranges (e.g. minute 0-59) (#328) - Cron duplicate names: Adding a cron job with a duplicate name now errors instead of silently inserting (#329)
- Cron @Aliases:
@reboot,@daily,@weekly,@monthly,@hourlyetc. now accepted as valid schedules (#330) - notify add --json:
notify addnow accepts--jsonand emits structured output (#331) - route-fallback same model: Rejected when primary == fallback (#332)
- diff-context --json outside git: Now emits a JSON error object instead of empty stdout (#333)
- split plan empty task: Empty task string is now rejected (#334)
v0.6.2 — Additional QA Bug Fixes
What's Changed
Follow-up patch to v0.6.1 with 3 additional bugs caught by exhaustive QA sweep.
Bug Fixes
- fix(cache):
cache stats --jsonreturns[]instead of plain text when no data (#319, closes #318) - fix(diff-context):
diff-context --jsoninfo line redirected to stderr; empty-diff path returns valid JSON (#322, closes #320) - fix(queue-dep):
queue-dep addnow accepts--jsonflag and returns structured output (#322, closes #321)
Full QA Coverage
All 25 --json paths across the CLI now return valid JSON:
dag show/list, lsp status, persona list/show, notify list, split list, tool-index status, agentops status/sessions, workspace map, otel-export, security scan, costs, trace list, eval list, runs, cache stats, cron list, budget list, route-fallback list, queue list, marketplace list, mcp-registry list, sandbox list, diff-context, queue-dep add
Test Results
591 passed, 63 skipped
Install
pip install tag-agent==0.6.2
# or
npx tag-agent@0.6.2v0.6.1 — QA Bug Fix Patch
What's Changed
Patch release following the v0.6.0 QA audit. Fixes 5 bugs discovered through end-to-end testing of all 24 new features.
Bug Fixes
- fix(dag): Add
list_jobs_raw()for structured JSON output of queue jobs (#308, closes #304) - fix(security): Relax credential pattern matching to catch modern key formats (
sk-proj-, newer Anthropic keys, AWS generic key patterns) (#309, closes #305) - fix(otel): Read
INSTRUMENTATION_SCOPEversion dynamically fromtag.__version__instead of hardcoding"0.5.0"(#310, closes #306) - fix(controller): Add
--jsonflag to 11 subparsers (dag show/list,lsp status,persona list/show,notify list,split list,tool-index status,agentops status/sessions,workspace map) + JSON output paths to 6 cmd handlers (#311, closes #307) - fix(tests): Add missing
tests/hermes_cli/conftest.pywith_isolate_hermes_homefixture — converts 63 fixture errors into graceful skips when hermes package is absent (#313, closes #312)
Test Results
591 passed, 63 skipped
Install
pip install tag-agent==0.6.1
# or
npx tag-agent@0.6.1v0.6.0: 24 new AI agent features (PRD-021 through PRD-044)
What's New in v0.6.0
This release ships 24 new features across 18 new modules, adding autonomous agent orchestration, observability, security, and IDE integration capabilities to TAG.
New Modules
| Module | PRD | Feature |
|---|---|---|
loop_agent.py |
PRD-021 | Autonomous agent loop with iteration caps and SQLite journal |
cron_scheduler.py |
PRD-022 | Cron-scheduled agents with 5-field cron expressions |
workspace.py |
PRD-024 | Repo-map indexer and ASCII tree context injection |
semantic_memory.py |
PRD-025 | FTS5-backed semantic memory with confidence decay |
eval_framework.py |
PRD-027 | YAML-driven eval runner with pass/fail scoring |
sandbox.py |
PRD-028 | Isolated code execution (subprocess, Docker, E2B backends) |
dag.py |
PRD-033 | Dependency-aware task queue with topological DAG engine |
security.py |
PRD-034 | Secret scanning via Shannon entropy + 18 named patterns |
lsp_server.py |
PRD-035 | LSP 3.17 server exposing TAG profiles as code actions |
api.py |
PRD-036 | Web dashboard with SSE live stream (tag serve --web) |
persona.py |
PRD-037 | Agent style injection with 5 built-in personas |
diff_context.py |
PRD-038 | Git-diff scoped context injection |
budget.py |
PRD-039 | Per-profile daily/weekly/monthly token budget enforcement |
notifications.py |
PRD-040 | Slack, email, desktop, and webhook notification hooks |
otel_semconv.py |
PRD-041 | OTel GenAI span cost attribution (semconv v1.28.0) |
split_agent.py |
PRD-042 | Architect/editor agent split for structured refactors |
tool_retrieval.py |
PRD-043 | Vector-based tool retrieval with keyword fallback |
integrations/agentops_bridge.py |
PRD-044 | AgentOps session observability with zero-overhead fallback |
New CLI Commands (24 total)
tag loop · tag cron · tag workspace · tag memory · tag profile · tag eval · tag sandbox · tag serve · tag cache · tag route · tag trace · tag dag · tag security · tag lsp · tag persona · tag context · tag budget · tag notify · tag otel · tag split · tag tools · tag agentops
Bug Fixes
- DAG race condition:
promote_ready_jobsnow checkscursor.rowcount > 0before claiming promotion — concurrent threads no longer double-count - LSP blocking:
tag lspwith no subcommand defaults to non-blockingstatus(usetag lsp startfor the server) - JSON output:
--jsonflag now respected by all 7 new list subcommands
Test Coverage
263 new passing tests (82 + 120 + 61 cross-cutting concerns across all 24 features).
Full Changelog
See closed issues and merged PRs for the complete change history.