chore: release v6.1.2

* chore: prepare v6.1.2 release

* chore: refresh reviewed gitleaks fingerprints

* docs: record release gate corrections

* docs: record v6.1.2 release evidence
This commit is contained in:
Brad Groux 2026-08-24 08:39:47 -05:00 committed by GitHub
parent 3851fea93e
commit dfae7911cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
37 changed files with 490 additions and 180 deletions

View file

@ -6,13 +6,13 @@ docs/API-REFERENCE.md:generic-api-key:991
docs/API-WORKFLOWS.md:generic-api-key:1460
# Operator documentation uses placeholders in curl authentication examples.
docs/DEPLOYMENT.md:curl-auth-header:923
docs/TROUBLESHOOTING.md:curl-auth-header:229
docs/TROUBLESHOOTING.md:curl-auth-header:257
docs/TROUBLESHOOTING.md:curl-auth-header:260
docs/DEPLOYMENT.md:curl-auth-header:926
docs/TROUBLESHOOTING.md:curl-auth-header:230
docs/TROUBLESHOOTING.md:curl-auth-header:258
docs/TROUBLESHOOTING.md:curl-auth-header:261
docs/features/prd-driven-development.md:curl-auth-header:95
docs/features/prd-driven-development.md:curl-auth-header:775
docs/guides/SELF_HOST.md:curl-auth-header:738
docs/guides/SELF_HOST.md:curl-auth-header:742
docs/security.md:curl-auth-header:51
docs/security.md:curl-auth-header:58

View file

@ -6,7 +6,7 @@
> Harness-specific supplements (for example `CLAUDE.md`) extend, never duplicate or contradict,
> these rules. See `docs/AGENTS-TEMPLATE.md` for the managed-run and external-agent protocols.
>
> **Version:** 6.1.1
> **Version:** 6.1.2
> **Freshness policy:** update within two working days of any toolchain or architecture change.
> Stale fields (package manager, Node version, provider list, test commands) are caught by
> `pnpm check:pnpm-settings` and the smoke-test CI job.

View file

@ -7,6 +7,90 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [6.1.2] - 2026-08-24
Veritas Kanban 6.1.2 completes the repository-wide reliability, security,
storage, provider-runtime, CI, container, and supportability audit tracked in
#1174. It is a backward-compatible patch release for 6.1.1.
### Added
- Added deterministic, milestone-scoped CI selection so ordinary pull requests
keep test, coverage, E2E, desktop artifact, load, and Docker-contract jobs
dormant while `ci:full`, scheduled, and manual release milestones run the
complete gates (#1172, #1227, #1228).
- Added risk-weighted critical-path coverage baselines and ratchets for provider
dispatch, attempt lifecycle, authentication, storage, web API/session, CLI,
MCP, and desktop trust boundaries (#1169, #1183).
- Added continuous CodeQL, dependency, and secret-scanning policy enforcement,
immutable GitHub Actions references, and repository guards that prevent those
controls from silently regressing (#1167, #1168, #1179, #1180).
- Triaged the initial CodeQL baseline, fixed validated request, logging,
persisted-key, file-handling, and sandbox-read findings, and documented the
evidence-backed disposition of non-exploitable alerts (#1231, #1232-#1235).
- Added a production Docker runtime size contract with architecture-specific
ceilings, non-root runtime checks, health/auth/SQLite/static-web smoke
coverage, and a reduced build context (#1166, #1222).
### Changed
- Centralized `DATA_DIR` and `VERITAS_DATA_DIR` resolution, legacy-location
discovery, migration, backup, integrity, and Docker-mounted runtime behavior
behind the canonical path contract (#1162, #1184).
- Restored the service/storage boundary across activity, progress, status
history, scheduled deliverables, workflows, broadcasts, conflicts,
delegation, ceremony, error analyses, permissions, lifecycle configuration,
scheduler, reflection, chat, task, telemetry, and managed-content persistence.
File and SQLite implementations retain their existing compatibility,
containment, locking, and atomic-write contracts (#1163, #1190-#1220).
- Decomposed the provider control path into explicit launch compilation, Codex
event interpretation, runtime resolution, completion, attempt mutation, and
adapter-registry contracts. Executable providers remain explicit and unknown
or mismatched profiles continue to fail closed without an OpenClaw fallback
(#1164, #1223-#1230).
- Routed frontend JSON, blob, and stream operations through credential-aware API
helpers, preserving cross-origin cookie authentication, base paths, and
server error envelopes (#1165, #1218).
- Removed four verified unused direct dependencies, regenerated the workspace
dependency graph with pnpm 11.1.1, and reduced the server lint-warning budget
from 600 to 458 without broad suppressions (#1170, #1173, #1217, #1221).
- Replaced loader-fragile Vite/Vitest path handling with native ESM-compatible
configuration and made root workspace test discovery deterministic (#1171,
#1172, #1175, #1177, #1178, #1181).
### Fixed
- Eliminated split runtime-state locations and service-layer persistence leaks
that could send live data, backups, health checks, or migrations to different
roots under custom data-directory configurations (#1162, #1163).
- Hardened request rate limits, structured logging, persisted dynamic keys,
bounded file reads and writes, and sandbox metadata reads identified by the
initial CodeQL baseline (#1231, #1232-#1235).
- Integrated coordinated validation hardening for a privately reported input
boundary. Technical details remain under the repository security-advisory
process until supported artifacts are available and disclosure is approved
(#1236).
- Corrected recovery-key alphabet generation and WebSocket upgrade header
forwarding defects exposed by the final release validation (#1238, #1239).
- Serialized complete same-task update and lifecycle operations before their
first read, preserving archive/restore invocation order under contention
(#1240, #1241).
- Rejected digit-prefixed unsafe URI payloads in sanitized HTML while
preserving safe relative links (#1242, #1243).
### Compatibility and operations
- The public REST API remains `v1`. Package, CLI, MCP, desktop, provider-profile,
and configuration contracts remain backward compatible with 6.1.1.
- SQLite migrations remain at 30 through 33; upgrading from 6.1.1 does not run a
new schema migration. Runtime path normalization may move legacy files into
the configured canonical data directory. Keep a complete stopped-writer
backup until the upgraded runtime is accepted.
- Rollback is restore-first: stop every writer, reinstall the prior signed
application only when its data contracts remain compatible, and otherwise
restore the complete pre-upgrade workspace. Never copy an older database over
a running instance.
## [6.1.1] - 2026-08-22
Veritas Kanban 6.1.1 restores reliable Task Detail scrolling after the Mantine
@ -2463,7 +2547,8 @@ Veritas Kanban is an AI-native project management board built for developers and
_Built by [Digital Meld](https://digitalmeld.io) — AI-driven enterprise automation._
[unreleased]: https://github.com/BradGroux/veritas-kanban/compare/v6.1.1...HEAD
[unreleased]: https://github.com/BradGroux/veritas-kanban/compare/v6.1.2...HEAD
[6.1.2]: https://github.com/BradGroux/veritas-kanban/compare/v6.1.1...v6.1.2
[6.1.1]: https://github.com/BradGroux/veritas-kanban/compare/v6.1.0...v6.1.1
[6.1.0]: https://github.com/BradGroux/veritas-kanban/compare/v6.0.2...v6.1.0
[6.0.2]: https://github.com/BradGroux/veritas-kanban/compare/v6.0.1...v6.0.2

View file

@ -4,7 +4,7 @@
> Claude-specific lessons and common mistakes caught by previous Claude runs. Do not duplicate
> `AGENTS.md` content here.
>
> **Last updated:** 2026-08-22 (v6.1.1 release freshness)
> **Last updated:** 2026-08-24 (v6.1.2 release freshness)
> **Freshness check:** Update after mistakes; review monthly.
---

View file

@ -10,7 +10,7 @@ Start with a visual Kanban board. Add CLI, MCP, OpenClaw, Squad Chat webhooks, w
[![CI](https://github.com/BradGroux/veritas-kanban/actions/workflows/ci.yml/badge.svg)](https://github.com/BradGroux/veritas-kanban/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Version](https://img.shields.io/badge/version-6.1.1-blue.svg)](CHANGELOG.md)
[![Version](https://img.shields.io/badge/version-6.1.2-blue.svg)](CHANGELOG.md)
[![TypeScript](https://img.shields.io/badge/TypeScript-6.0-blue.svg)](https://www.typescriptlang.org/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
@ -211,9 +211,13 @@ Not just cards on a board. Tasks have dependency graphs with cycle detection, cr
Isolated worktrees per task — no branch switching, no conflicts. Built-in code review with unified diff viewer and inline comments. Approval workflows (approve, request changes, reject). Visual merge conflict resolution. Create GitHub PRs directly from the task detail panel. Bidirectional GitHub Issues sync with label mapping.
### 📁 Zero Infrastructure
### 📁 Local-First Storage
Tasks are markdown files. Settings are JSON. Workflows are YAML. No database, no Redis, and no Docker required for local use. Clone, `pnpm install`, `pnpm dev` — done. Everything is `grep`-friendly, version-controllable, and human-readable. Back up your entire board with `git push`.
File storage remains the zero-infrastructure default: tasks are Markdown,
settings are JSON, and workflows are YAML. SQLite is available for governed
multi-user and higher-integrity deployments; Redis and Docker are not required
for local use. Clone, `pnpm install`, and `pnpm dev` to start. Back up the
complete configured storage root, not only the Git-tracked board files.
### 🔌 Optional Integration Surfaces
@ -324,7 +328,7 @@ Tasks are markdown files. Settings are JSON. Workflows are YAML. No database, no
- **Activity page** — Status history with clickable task navigation, color-coded badges, and daily summary
- **Daily standup summary** — Generate standup reports via API or CLI (`vk summary standup`)
- **Task Templates** — Create reusable templates with defaults, subtasks, and multi-task blueprints
- **Documentation freshness**Steward workflow with freshness headers and automated staleness detection
- **Documentation freshness**Registry-backed review dates, thresholds, scores, and staleness alerts
- **Cost prediction** — Multi-factor cost estimation for tasks
#### Dashboard
@ -379,8 +383,8 @@ Tasks are markdown files. Settings are JSON. Workflows are YAML. No database, no
| **Storage** | Markdown files with YAML frontmatter | yaml + local frontmatter helper |
| **Git** | simple-git, worktree management | — |
| **Testing** | Playwright (E2E), Vitest (unit) | Playwright 1.61, Vitest 4.1 |
| **Runtime** | Node.js | 22+ |
| **Package Manager** | pnpm | 11.1.1+ |
| **Runtime** | Node.js | 22.22.1+ |
| **Package Manager** | pnpm | 11.1.1 (pinned) |
---

View file

@ -1,6 +1,6 @@
{
"name": "@veritas-kanban/cli",
"version": "6.1.1",
"version": "6.1.2",
"description": "CLI for Veritas Kanban task management",
"type": "module",
"bin": {

View file

@ -1,6 +1,6 @@
{
"name": "@veritas-kanban/desktop",
"version": "6.1.1",
"version": "6.1.2",
"private": true,
"homepage": "https://github.com/BradGroux/veritas-kanban",
"description": "Veritas Kanban native desktop shell",

View file

@ -12,7 +12,7 @@ The Agent Registry is a service discovery and liveness tracking system for AI ag
| **Persistence** | File-backed JSON survives server restarts |
| **Dashboard** | Live agent cards in the board sidebar |
**Storage:** `.veritas-kanban/agent-registry.json`
**Storage:** `<storage-root>/.veritas-kanban/agent-registry.json`
---
@ -406,13 +406,14 @@ The panel reads from the registry API and updates every 30 seconds (plus WebSock
| ------------------------- | ------------------ | -------------------------------------------- |
| `HEARTBEAT_TIMEOUT_MS` | 300,000 (5 min) | Time before marking agent offline |
| `STALE_CHECK_INTERVAL_MS` | 60,000 (1 min) | How often the server checks for stale agents |
| `VERITAS_DATA_DIR` | `.veritas-kanban/` | Directory for registry JSON file |
| `VERITAS_DATA_DIR` | Project root | Storage root used when `DATA_DIR` is unset |
---
## File Format
The registry is stored as JSON at `.veritas-kanban/agent-registry.json`:
The registry is stored as JSON at
`<storage-root>/.veritas-kanban/agent-registry.json`:
```json
{

View file

@ -1,7 +1,7 @@
# Veritas Kanban — API Reference
**Version**: 6.1.1
**Last Updated**: 2026-07-25
**Version**: 6.1.2
**Last Updated**: 2026-08-24
**Base URL**: `http://localhost:3001/api`
**Canonical prefix**: `/api/v1` (alias: `/api`)

View file

@ -8,7 +8,7 @@ Companion docs:
- [SOP: OpenAI Codex Integration](SOP-codex-integration.md)
- [Codex Workflow Examples](EXAMPLES-codex-workflows.md)
- [SOP: Cross-Model Code Review](SOP-cross-model-code-review.md)
- [Optional Independent Code Review](SOP-cross-model-code-review.md)
- [AGENTS.md Template](AGENTS-TEMPLATE.md)
## Product Goal

View file

@ -69,10 +69,13 @@ Data is persisted in a Docker named volume (`kanban-data`), so it survives conta
The multi-stage Dockerfile enforces architecture-specific production image budgets:
| Architecture | Maximum compressed image size | Measured release candidate |
| ------------ | ----------------------------- | -------------------------- |
| `arm64` | 200,000,000 bytes | 195,910,880 bytes |
| `amd64` | 600,000,000 bytes | 571,590,173 bytes |
| Architecture | Maximum compressed image size | 6.1.2 implementation baseline |
| ------------ | ----------------------------- | ----------------------------- |
| `arm64` | 200,000,000 bytes | 195,910,880 bytes |
| `amd64` | 600,000,000 bytes | 571,590,173 bytes |
The final release candidate is remeasured at the release milestone; these
implementation baselines are not substituted for final artifact evidence.
| Stage | Purpose |
| -------------- | ------------------------------------------------------------------------ |
@ -251,10 +254,10 @@ If you need to debug inside a container, use `docker exec` to inspect — don't
### Prerequisites
| Requirement | Version |
| ----------- | ------- |
| Node.js | 22.0.0+ |
| pnpm | 11.1.1+ |
| Requirement | Version |
| ----------- | --------------- |
| Node.js | 22.22.1+ |
| pnpm | 11.1.1 (pinned) |
Install pnpm if not present:

View file

@ -44,7 +44,13 @@ When completing a task that changes user-facing behavior:
### Freshness Indicators
Each doc should include a freshness header:
The Settings → Doc Freshness registry is the authoritative freshness source.
Each tracked record stores its path, last review date, reviewer, maximum age,
tags, and notes. The service computes scores and alerts from those records; it
does not scan or rewrite Markdown headers.
A maintained living document may also include this optional human-readable
marker when repository reviewers find it useful:
```markdown
<!-- doc-freshness: 2026-03-25 | v4.0.0 | @veritas -->
@ -52,12 +58,16 @@ Each doc should include a freshness header:
Format: `date | version | last-updater`
When a doc is older than the current version, it may need review.
The optional marker is not required for release notes, historical evidence,
generated references, or every file under `docs/`. When a tracked document is
older than its configured maximum age or its maintained version, review it and
update the authoritative registry record.
### Last Sweep
| Date | Scope | Agent |
| ---------- | ------------------------------------------------------------------- | ------- |
| 2026-08-24 | v6.1.2 audit, storage, provider, CI, security, release, and SOP docs | Release |
| 2026-08-22 | v6.1.1 maintenance, dependency, release, upgrade, and evidence docs | Release |
| 2026-07-26 | v6.1.0 roadmap, harness, governance, knowledge, and release docs | Release |
| 2026-07-24 | v6.0.2 desktop recovery, version support, release, and evidence | Release |
@ -73,7 +83,7 @@ When a doc is older than the current version, it may need review.
### Phase 1: Manual (Current)
- Doc update checklist in PR template
- Freshness headers in docs
- Doc Freshness registry records, with optional source markers where useful
- Agent instructions include "update docs" step
### Phase 2: Hook-Based
@ -112,7 +122,8 @@ project template, and harness-specific files only supplement the canonical
rules. Key rules:
1. **Always update docs alongside code** — no code-only PRs for user-facing changes
2. **Use freshness headers** — every doc starts with `<!-- doc-freshness: ... -->`
2. **Track maintained living docs** — use the Doc Freshness registry; optional
source headers are a reviewer aid, not the system of record
3. **JSDoc is documentation** — route handlers and services must have JSDoc
4. **Examples must work** — if you change an API, update the examples
5. **CHANGELOG is mandatory** — every release gets an entry

View file

@ -54,11 +54,11 @@ Steal these end-to-end flows when building your own automations. Each example sh
## 4. Security Audit (RF-002 style)
**Goal:** Run cross-model audit on repo.
**Goal:** Run a focused security audit on the repository.
1. Task -> `type=security`, `project=veritas-kanban`.
2. Subtasks: scope, run Codex audit, run Claude review, compile findings, create issues.
3. Agents spawn using research prompt template, save results to `refactoring/rf-002/*`.
2. Subtasks: scope, inspect trust boundaries, validate findings, compile evidence, create issues.
3. Use the security-review prompt and save durable results to the task's declared artifact path.
4. Deliverables: Markdown report, HTML deck, GitHub issues.
---
@ -88,7 +88,7 @@ For any workflow:
2. **Prompt** stored in registry.
3. **API/CLI** calls scripted (vk begin/done, time tracking, status updates).
4. **Artifacts** saved to predictable paths and mirrored to Brain/engram if needed.
5. **Cross-model review** if code/critical.
5. **Focused review** when the task or configured governance policy requires it.
6. **Lessons learned** field updated for systemic knowledge.
Use these recipes as seeds for your own automation playbooks.

View file

@ -47,9 +47,10 @@ Use these recipes as starting points for v4.3 OpenAI Codex workflows in Veritas
---
## 2. Codex Review Of A Claude-authored PR
## 2. Optional Independent Review With Codex
**Goal:** Use Codex as the opposite-model reviewer for a Claude-authored branch.
**Goal:** Use Codex as an independent reviewer when a task or governance policy
explicitly requires one. This is not a default delivery step.
1. Keep the original implementation task `in-progress`.
2. Trigger a Codex review action:
@ -152,7 +153,7 @@ steps:
agent: reviewer
depends_on: [implement]
input: |
Review Codex's implementation using docs/SOP-cross-model-code-review.md.
Run the configured independent review using docs/SOP-cross-model-code-review.md.
```
Expected behavior:

View file

@ -634,11 +634,11 @@ Reusable resources mountable across projects with full CRUD API and Settings tab
Automated staleness detection for project documentation with real-time tracking and alerting. Added in v3.2.
- **Freshness tracking** — Track document staleness with freshness scores, alerts, and optional auto-review task creation
- **Freshness headers** — YAML frontmatter with `fresh-days`, `owner`, `last-verified` fields
- **Tracked metadata** — Registry records store review dates, owners, paths, thresholds, and tags without rewriting source documents
- **Steward workflow** — Assigned doc owners responsible for periodic review
- **Staleness API** — Query which docs need review based on freshness thresholds at `/api/doc-freshness`
- **Configurable thresholds** — Set staleness thresholds via Settings → Doc Freshness
- **3-phase automation** — Manual → scheduled checks → CI integration
- **3-phase automation** — Manual registry review → scheduled checks → CI integration
- **Inspired by** @mvoutov's BoardKit Orchestrator ("stale docs = hallucinating AI")
---
@ -2343,13 +2343,13 @@ TRUST_PROXY=true
## Storage & Architecture
Abstract storage layer that decouples business logic from the filesystem.
Deep storage modules decouple business logic from filesystem and SQLite details.
- **Repository pattern** — 5 repository interfaces abstract data access: `ActivityRepository`, `TemplateRepository`, `StatusHistoryRepository`, `ManagedListRepository`, `TelemetryRepository`
- **StorageProvider** — Central provider extended with all repository implementations; services depend on interfaces, not filesystem calls
- **`fs-helpers.ts`** — Centralized filesystem access module; the only file in the codebase that imports `fs` directly
- **Service migration** — All 10 services migrated off direct `fs` imports to use the repository interfaces
- **Extensibility**Repository interfaces enable future storage backends (database, cloud storage) without changing service logic
- **Repository contracts** — Persisted activity, progress, status history, deliverables, workflows, broadcasts, conflicts, delegation, ceremony, error analysis, permissions, lifecycle configuration, schedules, reflection, chat, tasks, telemetry, and managed content use explicit interfaces.
- **File and SQLite parity** — Both backends preserve validated schemas, containment, locking, atomic mutation, pagination, and migration behavior appropriate to each domain.
- **Service boundary gate** — Production services cannot introduce direct filesystem imports; authoritative reads and writes flow through the storage layer.
- **Canonical runtime paths** — `DATA_DIR` and `VERITAS_DATA_DIR`, legacy discovery, backup, integrity, migration, health, and Docker mounts resolve through the same path contract.
- **Extensibility**Business services depend on domain operations instead of storage layout, allowing backend changes without duplicating product rules.
---
@ -2371,7 +2371,8 @@ Production-ready deployment and development tooling.
- **GitHub Actions** — CI pipeline on push to `main` and pull requests
- **Concurrency control** — In-progress runs cancelled when new commits push
- **Pipeline jobs** — Lint and warning budget, type check, workspace unit tests, production build, and security audit
- **Fast pull-request jobs** — Source-policy selection, lint and warning budget, typecheck, production build, dependency audit, CodeQL, and gitleaks
- **Milestone jobs** — Workspace tests, critical-path coverage, Playwright, desktop artifacts, load checks, and Docker contracts run for `ci:full`, scheduled, or manual milestones
- **Scheduled QA** — Weekly and manually triggered Playwright and k6 gates run outside the fast PR path
- **Release validation**`pnpm validate:release` checks root/shared/server/web/CLI/MCP/desktop versions, the release-major document set, built artifacts, and optional GitHub tag/release state
- **pnpm caching** — Dependency cache for faster CI runs
@ -2397,12 +2398,14 @@ Production-ready deployment and development tooling.
## Testing
Multi-layer testing strategy.
Multi-layer, milestone-scoped verification strategy. Exact release counts live
in `docs/V6-RC-EVIDENCE-PACKET.md`; historical counts are not treated as current
proof.
### Unit Tests (Vitest)
- **119 test files** · **1,699 tests passing** across server and frontend
- **Server (105 files, 1,570 tests):**
- **Workspace coverage** — Server, web, CLI, MCP, shared contracts, and desktop packages are included in the canonical release gate.
- **Server coverage includes:**
- All middleware (auth, rate limiting, request ID, API versioning, cache control, validation, response envelope, request timeout)
- Core services (task, template, telemetry, notification, activity, sprint, diff, conflict, summary, status history, digest, attachment, text extraction, migration, managed list, broadcast, automation, blocking, failure alert, metrics, settings, JWT rotation, MIME validation, preview, trace, circuit breaker)
- Route handlers (tasks, task archive, task comments, task subtasks, task time, auth, agent status, automation, config, notifications, templates, health, misc routes)
@ -2411,7 +2414,7 @@ Multi-layer testing strategy.
- Prometheus metrics (counters, gauges, histograms, registry, collector middleware)
- Environment variable validation
- Circuit breaker transitions (18 tests covering open/half-open/closed states — added in v3.3.2)
- **Frontend (14 files, 129 tests):**
- **Frontend coverage includes:**
- API client helpers and task operations
- Custom hooks: useWebSocket, useKeyboard (keyboard shortcuts)
- Components: KanbanBoard, TaskCard, ErrorBoundary, AgentStatusIndicator, WebSocketIndicator
@ -2420,9 +2423,8 @@ Multi-layer testing strategy.
### End-to-End Tests (Playwright)
- **7 spec files** covering critical user flows
- **19/19 tests passing**
- **Test suites:**
- **Chromium and WebKit projects** cover critical user flows at declared QA and release milestones.
- **Test suites include:**
- Health check
- Settings management
- Task creation

View file

@ -30,9 +30,9 @@ A working board is not the same as agent-ready or external wake/delivery-ready.
| What | Command | Notes |
| ----------------- | ------------------ | ----------------------------------------------------------------------- |
| Node.js | `node -v` | Requires **22+**. Install via Volta/nvm if older. |
| pnpm | `pnpm -v` | Requires **11.1.1+**. Prefer `corepack prepare pnpm@11.1.1 --activate`. |
| Git | `git --version` | Any current version works. |
| Node.js | `node -v` | Requires **22.22.1+**. Install via Volta/nvm if older. |
| pnpm | `pnpm -v` | Use the repository-pinned **11.1.1** release. |
| Git | `git --version` | Requires **2.38+**. |
| (Optional) Docker | `docker --version` | Needed only if you prefer containers. |
That's it. No database, no extra services.

View file

@ -29,6 +29,11 @@ Every project should maintain these files:
| `prompt-registry/*.md` | Workflow prompts | When prompts drift or improve |
| `README.md` | Project overview, quick start | After major releases |
Register maintained living documents in Settings → Doc Freshness. The registry
record, not an optional Markdown comment, is authoritative for the last review,
reviewer, maximum age, score, and alerts. Historical evidence and release notes
do not need synthetic freshness headers.
### Optional Model-Specific Files
- `GPT.md` — GPT-specific notes (if behavior differs from Claude)
@ -45,7 +50,9 @@ Update docs **within the same session** when:
1. **A bug was caused by missing context** — Add durable shared context to
`AGENTS.md`, or a harness-specific supplement when it truly differs
2. **Cross-model review catches a pattern** — Document the pattern
2. **Focused review catches a pattern** — Document the pattern regardless of
whether the reviewer is a maintainer, an independent agent, or a configured
governance gate
3. **A workaround is discovered** — Add it to Troubleshooting or the nearest
applicable instruction file
4. **API behavior changes** — Update relevant docs
@ -86,7 +93,8 @@ Run this monthly or after major releases:
- [ ] Prompts reference current API endpoints
- [ ] No prompts for removed features
- [ ] Cross-model review prompt matches current checklist
- [ ] Optional review prompts match the current checklist and are not described
as default delivery gates
### README.md

View file

@ -188,7 +188,7 @@ Example frontmatter:
id: cross-model-review
name: Cross Model Review
category: evaluation
description: Opposite-model review checklist
description: Optional independent review checklist
---
# Cross Model Review

View file

@ -134,13 +134,17 @@ Publish shared resources as a package:
## What to Share
### Always Share
### Common Shared Resources
- Cross-model review prompt (consistency is critical)
- Security review checklist
- Definition of Done template
- Sprint planning prompt
### Share Only When Configured
- Optional independent-review prompt when the consuming workspace explicitly
enables that workflow
### Share Carefully
- Agent personality (AGENTS.md) — may need project-specific tweaks
@ -236,7 +240,7 @@ Fixture contracts live in
```markdown
## Instructions
Follow the standard code review process.
Follow the configured independent review process.
See prompt: `prompt-registry/cross-model-review.md`
```

View file

@ -107,7 +107,7 @@ Example: 6 tasks × 4 subtasks × 0.5d = 12 agent-days. With 3 agents @ 4 days f
| US-1602: Task Workflow SOP | docs | high | Defines lifecycle. |
| US-1603: Sprint Planning SOP | docs | medium | This document. |
| US-1604: Multi-Agent Orchestration | docs | medium | PM + workers. |
| US-1605: Cross-Model Review | docs | medium | Opposite model gate. |
| US-1605: Review Policy | docs | medium | Optional review criteria. |
| US-1606: Best Practices | docs | medium | Patterns + anti-patterns. |
Clone this pattern for your own projects; rename sprint `US-YYYY` and fill tasks accordingly.

View file

@ -141,22 +141,23 @@ pnpm install
pnpm build
```
If errors persist, check your Node.js version**Node 22+** is required:
If errors persist, check your Node.js version. **Node 22.22.1+** is required:
```bash
node -v # Should be v22.x or higher
node -v # Must be v22.22.1 or higher
```
### `pnpm` not found
Veritas Kanban uses pnpm workspaces. Install it first:
Veritas Kanban uses pnpm workspaces. Activate the repository-pinned version:
```bash
npm install -g pnpm
# or
corepack enable && corepack prepare pnpm@latest --activate
corepack enable
corepack prepare pnpm@11.1.1 --activate
```
Do not install this workspace with npm, Yarn, or Bun.
### Port already in use
```bash

View file

@ -1,11 +1,11 @@
# Veritas Kanban v6 Compatibility And Release Policy
This policy defines supported v6.1.1 combinations, harness evidence, release
This policy defines supported v6.1.2 combinations, harness evidence, release
channels, and rollback limits. The machine-readable harness record at
`GET /api/config/harness-compatibility` is authoritative for exact capability
digests, fixture revisions, and the current host's live state.
Documentation freshness: 2026-08-22 for Veritas Kanban 6.1.1.
Documentation freshness: 2026-08-24 for Veritas Kanban 6.1.2.
## Harness Support Tiers
@ -25,7 +25,7 @@ are incompatible with v6.
| Component | Supported v6 combination | Detection/evidence | Fail-closed boundary |
| -------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Server, web, shared, CLI, MCP, desktop | All release packages are exactly 6.1.1. | Package manifests, `/api/health.version`, `vk --version`, MCP metadata, desktop bundle/update metadata. | Mixed release packages are unsupported for publication. |
| Server, web, shared, CLI, MCP, desktop | All release packages are exactly 6.1.2. | Package manifests, `/api/health.version`, `vk --version`, MCP metadata, desktop bundle/update metadata. | Mixed release packages are unsupported for publication. |
| Public API | REST API remains `v1` at `/api/v1`, with `/api` compatibility aliases where documented. | `X-API-Version`, OpenAPI/reference docs, CLI/MCP smoke. | Unknown API versions or incompatible auth fail before mutation. |
| Buzz Agent | Buzz v0.4.24 commit `710ed9fff57878a1d69f809b80a6ee0416c53fc4`; `buzz-agent 0.1.0`; ACP v1. | Exact initialize identity, capability digest, probe revision, composed Buzz fixtures. | Unknown build, `buzz-acp`, resume, HTTP/SSE MCP, or capability drift blocks. |
| Buzz relay integration | Buzz v0.4.24; NIP-11, NIP-29, NIP-42; optional NIP-43 membership. | Pinned relay compatibility evidence, signed query/event fixtures, mapping state. | Host/TLS drift, unsafe URL, bad signature, identity mismatch, replay, or disabled mapping blocks. |
@ -37,7 +37,7 @@ are incompatible with v6.
| GitHub Copilot CLI | v1.0.74 public-preview ACP; tag commit `2b809c84e87dbcc88f897cb4f3fb97c43b77af95`. | Version and ACP initialize handshake; authentication remains provider-managed. | Version drift, broad allow, remote/plugin/config injection, or unsupported controls blocks. |
| Hermes Agent | v2026.7.7.2 one-shot process adapter. | `hermes --version` and allowlisted boot authentication. | Resume/follow-up remains unsupported. |
| OpenClaw | v2026.6.11 gateway adapter. | Gateway health, runtime manifest, explicit operator tool policy. | Missing `sessions_spawn`/`sessions_send`, unknown evidence, or unsupported task controls blocks. |
| macOS desktop | macOS arm64 signed/notarized app with bundled 6.1.1 server/web. | Bundle version, signature, Gatekeeper, stapling, `/api/health.version`, update metadata. | Mixed bundle/runtime, failed readiness, signature, or metadata checks blocks stable publication. |
| macOS desktop | macOS arm64 signed/notarized app with bundled 6.1.2 server/web. | Bundle version, signature, Gatekeeper, stapling, `/api/health.version`, update metadata. | Mixed bundle/runtime, failed readiness, signature, or metadata checks blocks stable publication. |
| Linux/Windows desktop | Unsigned preview artifacts only. | Cross-platform packaging workflows. | Not a supported stable install or update channel. |
| Desktop SQLite/profile | Existing v5.2.5 workspace upgraded in place after a complete backup. | Data/profile counts, integrity check, startup normalization, board/runtime smoke. | Competing writers, unsafe filesystem, failed migration, or missing recovery evidence blocks acceptance. |

View file

@ -1,13 +1,39 @@
# Veritas Kanban v6 GA Checklist
This checklist contains the active stable-release gate for Veritas Kanban
6.1.1 and retains the completed 6.1.0 and 6.0.2 evidence below. Command results, platform
6.1.2 and retains the completed 6.1.1, 6.1.0, and 6.0.2 evidence below. Command results, platform
details, workflow links, limitations, and artifact hashes belong in
[v6 Release Candidate Evidence Packet](V6-RC-EVIDENCE-PACKET.md).
Documentation freshness: 2026-08-22 for Veritas Kanban 6.1.1.
Documentation freshness: 2026-08-24 for Veritas Kanban 6.1.2.
## 6.1.1 Release Gate
## 6.1.2 Release Gate
- [x] Audit issues #1162, #1163, and #1165-#1173 are closed through merged,
evidence-linked pull requests; #1164 implementation is merged and awaits
the single final regression milestone before closure.
- [x] Root, shared, server, web, CLI, MCP, and desktop manifests are 6.1.2.
- [x] README, canonical instructions, API reference, compatibility policy,
upgrade guide, release notes, canonical GitHub body, freshness record, and
changelog are synchronized for 6.1.2.
- [x] Runtime paths, storage repositories, provider adapters and lifecycle,
credential-aware frontend requests, immutable actions, continuous
scanning, critical coverage, dependency cleanup, lint ratchets, and the
production Docker contract are represented in release documentation.
- [x] Independent and cross-model review remain optional; they are not part of
the default delivery or release gate.
- [x] The coordinated private security fix is integrated into the candidate and
remains private until supported artifacts exist and disclosure is approved.
- [ ] One clean final candidate passes the complete Node-floor and current-Node
verification matrix with exact counts, skips, retries, image size, and
limitations recorded in the evidence packet.
- [ ] The release PR merges and its exact merge is published as annotated
`v6.1.2` with a live body matching `docs/releases/v6.1.2.md`.
- [ ] Signed/notarized macOS assets, updater metadata, installed-app readiness,
the live Homebrew cask, and the private advisory disposition are verified.
- [ ] Release tracker #1174 closes only after every publication readback passes.
## Historical 6.1.1 Completed Release Gate
- [x] Issue #1153 and pull requests #1148, #1149, #1150, #1154, and #1155
received an evidence-backed maintainer disposition.
@ -58,36 +84,53 @@ Documentation freshness: 2026-08-22 for Veritas Kanban 6.1.1.
Apply `ci:full` to the release pull request and keep it applied through the
final candidate synchronization. That single milestone runs the complete
workspace suite, critical-path coverage, unsigned desktop artifacts, and
Docker image contract. Run the following commands once from the clean 6.1.1
release candidate:
Docker image contract. Run the following commands once from the clean 6.1.2
release candidate at the supported Node floor and current supported Node:
```bash
pnpm install --frozen-lockfile
pnpm check:pnpm-settings
pnpm check:security-artifacts
pnpm check:delivery-cadence
pnpm test:ci-scope
pnpm audit --prod --audit-level=high
pnpm audit:all
pnpm check:gitleaks
pnpm lint
pnpm lint:budget
pnpm lint:report
pnpm qa:mantine
pnpm typecheck
pnpm build
pnpm test
pnpm test:unit
pnpm test:e2e
pnpm smoke:cli-mcp
pnpm test:buzz:compatibility
pnpm desktop:test
pnpm desktop:build
pnpm desktop:check:electron-artifacts
pnpm desktop:test:readiness
pnpm desktop:dev:fresh
pnpm desktop:smoke:mac:local
pnpm desktop:package:mac:unsigned
pnpm validate:release -- --version 6.1.1
pnpm validate:release -- --version 6.1.1 --docker-build
pnpm test:release-format
pnpm validate:release -- --version 6.1.2 --skip-build-output
pnpm validate:release -- --version 6.1.2 --docker-build
```
Mount and inspect the unsigned DMG and ZIP, exercise the visible native
single-instance/reopen/clean-close/quit lifecycle with an isolated profile, and
run the production image as its non-root user against an isolated volume.
Record health, auth, SQLite, static-web, canonical-path, backup, integrity,
image-size, and clean-shutdown evidence. The same candidate must pass these
gates at Node 22.22.1 and the current supported Node runtime.
## Distribution And Post-Publication
All 6.1.1 publication gates are complete. The live GitHub body matches
`docs/releases/v6.1.1.md`; the post-publication release validator passes; and
the Homebrew cask uses the independently verified published ZIP checksum.
The 6.1.2 publication gate is pending the final candidate, release merge, tag,
signed/notarized artifacts, independent launch verification, post-publication
validator, live Homebrew cask, and approved advisory disposition. Completed
6.1.1 evidence remains recorded below and in the evidence packet.
## Historical 6.0.2 Source And Scope

View file

@ -1,15 +1,89 @@
# Veritas Kanban v6 Release Candidate Evidence Packet
This packet records the completed Veritas Kanban 6.1.1 maintenance release and
retains historical evidence for the completed 6.1.0 release, the quarantined 6.0.0 prerelease, the 6.0.1
This packet records the active Veritas Kanban 6.1.2 audit release candidate and
retains historical evidence for the completed 6.1.1 and 6.1.0 releases, the quarantined 6.0.0 prerelease, the 6.0.1
stabilization release, and the 6.0.2 desktop recovery hotfix. It separates
merged implementation, deterministic conformance, local runtime proof, signed
publication, and Homebrew availability.
Veritas Kanban 6.1.1 is the supported stable v6 release. Do not use 6.0.0 for
installation or upgrade validation.
Veritas Kanban 6.1.1 remains the supported stable v6 release until 6.1.2 is
published and verified. Do not use 6.0.0 for installation or upgrade validation.
Documentation freshness: 2026-08-22 for the completed Veritas Kanban 6.1.1 release.
Documentation freshness: 2026-08-24 for the Veritas Kanban 6.1.2 candidate.
## 6.1.2 Audit Release Candidate
| Field | Value |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Release version | 6.1.2 |
| Source branch | `release/6.1.2-audit` |
| Source baseline | `3851fea93ecfe5119e4092739662443d29059ac7`, `main` after release-gate fix PR #1243 |
| Validated candidate | `2a21178df97a00395cfc6c43774a57496a5c1f6a`, the frozen release PR head before this evidence-only update |
| Included issues | Audit tracker [#1174](https://github.com/BradGroux/veritas-kanban/issues/1174), findings #1162-#1173, and CodeQL baseline #1231 |
| Public implementation | #1162, #1163, and #1165-#1173 are closed through merged work; #1164 implementation is merged and remains open only for final regression evidence; coordinated remediation and release-gate fixes are merged through #1236, #1239, #1241, and #1243 |
| Private security blocker | Remediation is integrated into the candidate. Release verification and disclosure disposition remain pending, and no exploit-relevant detail is included here |
| Publication state | Not published. The final matrix is complete on the frozen candidate; merge, tag, GitHub release, signed desktop workflow, Homebrew cask, and advisory disposition remain pending |
### 6.1.2 issue and pull request traceability
| Phase | Issue | Merged evidence |
| -------------------- | --------------------------------------------------------------- | -------------------------- |
| Verification | #1172 deterministic and milestone-scoped test gates | #1175, #1177, #1181, #1228 |
| Verification | #1171 native-loader Vite/Vitest configuration | #1178 |
| Supply chain | #1167 immutable actions | #1179 |
| Security gates | #1168 continuous scanning | #1180 |
| Coverage | #1169 critical-path baselines and ratchets | #1183 |
| Runtime paths | #1162 canonical `DATA_DIR` behavior | #1184 |
| Persistence | #1163 storage boundary restoration | #1190-#1220 |
| Provider runtime | #1164 lifecycle and provider decomposition | #1223-#1230 |
| Frontend API | #1165 credential-aware requests | #1218 |
| Dependencies | #1170 unused direct dependencies | #1217 |
| Container | #1166 production runtime and size contract | #1222 |
| Type safety | #1173 lint-debt ratchet | #1221 |
| CodeQL baseline | #1231 initial alert triage, remediation, and disposition | #1232-#1235 |
| Coordinated security | Private release blocker integrated without premature disclosure | #1236 |
| Release validation | Recovery-key alphabet and WebSocket header forwarding | #1238, #1239 |
| Release validation | Same-task lifecycle invocation ordering | #1240, #1241 |
| Release validation | Sanitized URI prefix validation | #1242, #1243 |
The initial CodeQL baseline contained 195 open alerts. All were reviewed: 67
were closed through source remediation and 128 received specific,
evidence-backed dispositions. The post-merge default-branch Security Gates run
[`32700390853`](https://github.com/BradGroux/veritas-kanban/actions/runs/32700390853)
completed successfully at `1cdcd6ec60e3f48b6017146b2583fa82f7061c68`
with zero open alerts.
The 2026-08-24 pre-release GitHub security readback confirms Dependabot
vulnerability alerts and security updates are enabled, secret scanning and
push protection are enabled, and open Dependabot, secret-scanning, and
default-branch CodeQL alert counts are all zero. Every external workflow action
reference is pinned to a full commit SHA. These drift-prone settings are
rechecked against the final release merge before publication.
Final-milestone preflight on 2026-08-24 found local Node 26.7.0, pnpm 11.1.1,
Git 2.55.0, and an available Docker 29.2.1 server. The Node 22 floor remains
the `ci:full` runner gate; no separate local Node 22 installation is present.
The required macOS signing secret names and the complete App Store Connect
notarization secret-name set are configured, without reading their values. No
Veritas Kanban app or Homebrew cask is currently installed on the validation
host, so the post-publication installation will not replace an active install.
### 6.1.2 verification matrix
The final matrix ran once on the fully integrated candidate. The checked-in
evidence update is documentation-only and does not alter the validated runtime.
| Gate | Environment | Candidate result |
| ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Frozen install, package-manager, security-artifact, delivery-cadence, and CI-scope policy | Local Node 26.7.0 and CI Node 22; pnpm 11.1.1 | Pass. Frozen install completed; package-manager, 1,864-file security-artifact, 18/18 delivery-cadence, and 18/18 CI-scope gates passed |
| Typecheck, lint, 458-warning budget, lint report, production/full audit, and gitleaks | Local Node 26.7.0 and CI Node 22 | Pass. Typecheck and lint completed with zero errors and the exact 458-warning budget; production and full audits found no known vulnerabilities; gitleaks passed |
| Workspace and orchestration units | Local clean worktree and [CI run 32732019845](https://github.com/BradGroux/veritas-kanban/actions/runs/32732019845) | Pass. Local workspace packages reported 4,289 passed and 24 skipped, plus 3/3 root orchestration tests. CI independently reported server 3,376 passed/5 skipped, web 780 passed, CLI 62 passed, MCP 71 passed/19 skipped, and dual-storage parity 4/4 |
| Critical-path coverage ratchets | CI Node 22 on frozen candidate | Pass. All seven boundaries passed: server dispatch 65.2% lines, auth 59.05%, storage 50.45%, web 55.25%, CLI 52.07%, MCP 52.39%, and desktop 66.24%; [coverage artifact](https://github.com/BradGroux/veritas-kanban/actions/runs/32732019845/artifacts/9521857932) SHA-256 `395ae4aef57b8dcb24eabe2ad2ac628f8bbe51564195b7525e5c2be57613a096` |
| Playwright Chromium and WebKit | [Scheduled QA run 32732019821](https://github.com/BradGroux/veritas-kanban/actions/runs/32732019821) | Pass. 37/37 cases passed in 3.6 minutes with zero retries; k6 completed 7/7 checks, 5 requests, zero request failures, and one uninterrupted smoke iteration |
| Build, Mantine QA, CLI/MCP smoke | Local clean worktree and CI Node 22 | Pass. Build and Mantine QA passed; initial JS/CSS were 242.3/53.7 KiB gzip. CLI/MCP compatibility had zero failures or warnings; two live read/write checks were explicitly skipped because the isolated profile had no `VK_API_KEY` |
| Desktop tests, build, readiness, native lifecycle, and unsigned package | macOS arm64 isolated profile and [artifact run 32732019898](https://github.com/BradGroux/veritas-kanban/actions/runs/32732019898) | Pass. Desktop 67/67, Electron artifacts 4/4, readiness 7/7, package smoke, visible setup/readiness, single-instance, close/reopen, and clean quit all passed. Mounted DMG and ZIP report 6.1.2 arm64. DMG: 265,821,857 bytes, SHA-256 `562aa08c1d93653227aa0deee7cc0020f42bfe4ead9e404005fbe67a87822d7a`; ZIP: 270,676,980 bytes, SHA-256 `e1dc99f95e1c3396cda78c5e38582cdc7554baf2757aa57cfee411ba6a94de60`. CI macOS/Linux/Windows unsigned artifacts all passed |
| Production Docker build, image-size contract, and runtime smoke | amd64 [Docker contract run 32732019831](https://github.com/BradGroux/veritas-kanban/actions/runs/32732019831) | Pass. Image size 571,628,184 bytes, below 600,000,000; non-root user, version, mounted paths, SQLite, backup, auth, static web, health, bcrypt, and clean shutdown passed |
| Release-format and release validators | Version 6.1.2 | Pass with one classified host limitation. Canonical release format passed 3/3 and every source/build-output check passed. The local Docker-enabled wrapper reached image assembly before Docker Desktop returned an `overlayfs` containerd metadata I/O error on a full host filesystem; the clean CI Docker build and complete runtime contract passed on the same frozen source. Live GitHub/tag/body validation remains a post-publication gate |
## 6.1.1 Maintenance Release Candidate
@ -318,6 +392,14 @@ test.
No private data, credential value, raw provider conversation, or unrestricted
runtime profile is retained in this packet.
## 6.1.2 Publication Evidence
Publication has not started. This section will record the release PR merge SHA,
annotated tag object and peeled commit, GitHub release URL and exact body
readback, Desktop Release workflow, signed/notarized artifact names, sizes,
SHA-256 values, blockmaps, updater metadata, Gatekeeper/stapling/launch proof,
Homebrew PR and merge SHA, live cask validation, and approved advisory state.
## 6.1.1 Publication Evidence
Source publication, signed-macOS verification, full-width release-note validation, isolated installed-app readiness, and Homebrew distribution are complete.

View file

@ -1,46 +1,50 @@
# Veritas Kanban 6.1.1 Release Notes
# Veritas Kanban 6.1.2 Release Notes
Veritas Kanban 6.1.1 is a focused maintenance release for the agentic-control platform delivered in 6.1.0. It restores reliable Task Detail drawer scrolling after the Mantine tabs migration, adds browser-level regression coverage, updates the supported dependency set, and refreshes transitive security floors.
Veritas Kanban 6.1.2 completes the reliability, security, persistence, provider-runtime, CI, container, and supportability audit tracked by [#1174](https://github.com/BradGroux/veritas-kanban/issues/1174). It is a backward-compatible patch release for 6.1.1.
> Veritas Kanban 6.0.0 remains a quarantined prerelease. Version 6.1.1 supersedes 6.1.0 as the supported stable v6 release after signed assets and updater metadata are published.
> Veritas Kanban 6.0.0 remains a quarantined prerelease. Version 6.1.2 becomes the supported stable v6 release only after the annotated tag, signed assets, updater metadata, and Homebrew cask are published and verified.
## 6.1.1 Maintenance Changes
## Audit Outcomes And Traceability
Long Task Detail content is height-constrained and scrollable again. The regression gate verifies the shared overlay's flex-column layout, real overflow, and wheel-driven scroll movement in Chromium. Nested task-card controls no longer activate the card, preserving touch status selection in WebKit after the Mantine 9.5 update. File-backed workflow operations now await storage-directory readiness, preventing immediate startup requests from racing directory creation. The dependency maintenance pass updates supported minor and patch versions, adopts Chalk 6, and refreshes transitive override floors so production and full dependency audits report no known vulnerabilities.
| Issue | Operational outcome | Pull requests |
| --- | --- | --- |
| [#1162](https://github.com/BradGroux/veritas-kanban/issues/1162) | Canonical runtime data paths, legacy discovery, and migration compatibility | #1184 |
| [#1163](https://github.com/BradGroux/veritas-kanban/issues/1163) | Service persistence restored behind explicit file and SQLite repositories | #1190-#1220 |
| [#1164](https://github.com/BradGroux/veritas-kanban/issues/1164) | Provider launch, runtime, event, completion, mutation, and adapter contracts decomposed | #1223-#1230 |
| [#1165](https://github.com/BradGroux/veritas-kanban/issues/1165) | Credential-aware JSON, blob, stream, and download API helpers | #1218 |
| [#1166](https://github.com/BradGroux/veritas-kanban/issues/1166) | Measured non-root production Docker runtime and size contract | #1222 |
| [#1167](https://github.com/BradGroux/veritas-kanban/issues/1167) | Immutable external GitHub Actions | #1179 |
| [#1168](https://github.com/BradGroux/veritas-kanban/issues/1168) | Continuous CodeQL, dependency, and secret scanning | #1180 |
| [#1169](https://github.com/BradGroux/veritas-kanban/issues/1169) | Risk-weighted critical-path coverage baselines and ratchets | #1183 |
| [#1170](https://github.com/BradGroux/veritas-kanban/issues/1170) | Four unused direct dependencies removed | #1217 |
| [#1171](https://github.com/BradGroux/veritas-kanban/issues/1171) | Native-loader-compatible Vite and Vitest configuration | #1178 |
| [#1172](https://github.com/BradGroux/veritas-kanban/issues/1172) | Deterministic, milestone-scoped workspace and browser gates | #1175, #1177, #1181, #1228 |
| [#1173](https://github.com/BradGroux/veritas-kanban/issues/1173) | Server lint-warning budget reduced from 600 to 458 | #1221 |
| [#1231](https://github.com/BradGroux/veritas-kanban/issues/1231) | Initial CodeQL baseline triaged, remediated, and dispositioned | #1232-#1235 |
jsdom 30 remains deferred in Dependabot because it exceeds the documented Node.js patch floor and breaks the current changed-test suite; jsdom 29 patch updates remain enabled. Version 6.1.1 does not change the storage schema, public REST API, provider contracts, configuration, or migration requirements from 6.1.0.
## Persistence And Runtime Paths
## Harness Support On Equal Footing
`DATA_DIR` and `VERITAS_DATA_DIR` now resolve through one canonical path contract. Live services, health, backup, integrity, migrations, and the production container use the same root. Legacy locations remain discoverable and migrate through explicit compatibility paths rather than creating split authoritative state.
Every supported harness is now discovered, diagnosed, dispatched, observed, and completed through the same `harness-support-profile/v1`, `provider-runtime-manifest/v1`, immutable launch-manifest, approval, tool, credential, sandbox, phase-authority, and completion contracts. Settings, API diagnostics, telemetry, `vk doctor --json`, and dispatch consume the same redacted readiness evidence.
Service-layer filesystem access has been moved into deep repository modules across activity, progress, status history, scheduled deliverables, workflows, broadcasts, conflicts, delegation, ceremony, error analyses, permissions, lifecycle configuration, scheduler, reflection, chat, tasks, telemetry, and managed content. File and SQLite backends preserve their containment, locking, atomic-write, and parity contracts.
Equal footing does not claim identical native capabilities. Veritas probes the exact installed build and transport, persists capability evidence, and blocks unsupported lifecycle, tool, approval, sandbox, network, phase, or completion behavior before attempt creation. Provider upgrades invalidate prior conformance evidence until the new build passes its deterministic fixtures.
## Provider Runtime And Frontend API
Buzz Agent and Grok Build use ACP transports with exact initialize and capability evidence. Codex CLI, SDK, and app-server retain their distinct supervised lifecycles. Claude Code uses a strict bare-mode stream, GitHub Copilot CLI remains bounded to its public-preview ACP contract, Hermes retains one-shot execution, and OpenClaw retains explicit gateway policy. Buzz relay communication remains independent from execution authority: Buzz transports signed messages while Veritas owns tasks, attempts, tools, approvals, and completion.
Provider work now flows through cohesive launch-compiler, runtime-resolution, event-interpreter, completion, attempt-lifecycle, and adapter-registry boundaries. Explicitly executable providers retain their supported behavior. Provider-less, unknown, or profile/adapter-mismatched records still fail before attempt creation and never route through an implicit OpenClaw fallback.
Repository-facing instructions are documented in [AGENTS.md](../AGENTS.md) and the reusable [agent template](AGENTS-TEMPLATE.md). Harness installation, authentication, capability limits, and remediation are documented in [Agent Providers](AGENT-PROVIDERS.md), with exact evidence in the [Harness Compatibility Matrix](HARNESS-COMPATIBILITY.md).
Frontend JSON, blob, stream, log, and download operations now share credential-aware API boundaries. Cross-origin `VITE_API_URL` cookie authentication, configured base paths, and server error envelopes remain consistent across supported workflows.
## Governed Execution And Recovery
## Verification, Security, Dependencies, And Container
Run-scoped egress enforcement resolves and pins allowed destinations, routes governed traffic through the gateway, applies protocol, host, port, HTTP method, and normalized path rules, and records redacted decision evidence. Required enforcement fails closed when a process can bypass or cannot prove the gateway.
Ordinary pull requests now run source-policy, lint, typecheck, build, dependency-audit, secret-scanning, and CodeQL checks without repeatedly executing workspace tests, coverage, E2E, desktop packaging, load, or Docker contracts. Those expensive gates run at explicit `ci:full`, scheduled, manual, integration, security, and release milestones.
Durable admission control now applies capacity, aggregate budgets, fairness, cancellation, queue leases, and circuit breaking to direct tasks, workflows, retries, fallbacks, continuations, provider handoffs, and child agents through one execution-tree contract. Agent-dependency health feeds load shedding so an unhealthy tree cannot continue amplifying provider, host, or workspace pressure.
The complete final release matrix is recorded in [v6 Release Candidate Evidence Packet](V6-RC-EVIDENCE-PACKET.md). Historical test counts are not reused as 6.1.2 evidence.
Append-only admission snapshots now complete each serialized write before syncing, preventing short filesystem writes from truncating durable reservation evidence. Knowledge-collection routes also share the exact server permission prefix, keeping client discovery and server enforcement in fail-closed parity.
The production Docker closure excludes unrelated workspace dependencies, runs as a non-root user, and has architecture-specific size ceilings. The implementation baseline measured 195,910,880 bytes on arm64 against a 200,000,000-byte ceiling and 571,590,173 bytes on amd64 against a 600,000,000-byte ceiling; the release candidate is remeasured before publication.
Durable goals survive turns, restarts, and provider continuations without inventing completion. Memory extraction is reviewed and attributable. Background commands and monitors are supervisor-owned, repetitive or stalled runs receive bounded recovery, and oversized output spills into governed artifacts instead of exhausting the active context.
Four verified unused direct dependencies were removed. The server lint-warning budget dropped from 600 to 458 without weakening rules or adding broad suppressions. A coordinated private remediation is integrated through #1236; technical details stay in the advisory workflow pending supported artifacts and explicit disclosure approval. Final milestone validation also corrected recovery-key alphabet generation, WebSocket upgrade header forwarding, same-task lifecycle ordering, and sanitized URI prefix handling through #1239, #1241, and #1243.
## Knowledge Collections And Integrity
Workspace knowledge collections support classified immutable sources, cited and versioned derived pages, reviewed ingestion dry runs, atomic apply and reversal, scoped keyword and QMD search, query promotion, and cited work-product export. File and SQLite backends preserve the same workspace, digest, attribution, idempotency, contradiction, graph, activity, and redaction contracts.
Deterministic integrity linting finds structural graph errors, invalid schemas and metadata, provenance gaps, source-hash drift, invalid citation locations, freshness violations, orphan pages, missing canonical terms, unanswered research questions, contradictions, near-duplicates, supersession candidates, and evidence gaps. Material claims have attributable, evidence-linked, reversible lifecycle controls, so disputed or superseded statements remain visible and reviewable rather than being silently overwritten.
## Workspace Checkpoints And Rewind
Turn-boundary checkpoints capture run-owned Git, index, file, exclusion, ownership, conversation, and attributable provider-diff state. Rewind is preview-first, digest-bound, conflict-aware, and limited to explicit selected paths. The control route can quiesce an exact active Codex app-server turn and fork an earlier approved turn into a new provider thread.
Ambiguous attribution, unsupported providers, stale runtime evidence, external edits, and unresolved ownership conflicts fail closed. Failed storage transactions preserve descendant state and do not mutate paths outside the approved preview.
The initial 195-alert CodeQL baseline was reviewed alert by alert: 67 findings were fixed and 128 non-exploitable alerts received evidence-backed dispositions. Validated request, logging, persisted-key, file-handling, and sandbox-read findings were fixed in #1232-#1235. Alerts that were limited to test fixtures or were already contained by explicit authentication, path, descriptor, ownership, or atomic-write controls received documented dispositions rather than speculative code churn. The post-merge default-branch analysis reports zero open alerts.
## Install Or Upgrade
@ -57,31 +61,30 @@ For a first installation:
brew install --cask bradgroux/tap/veritas-kanban
```
Manual installation uses the signed and notarized macOS arm64 DMG or ZIP from the [v6.1.1 release](https://github.com/BradGroux/veritas-kanban/releases/tag/v6.1.1). Back up the complete stopped-writer workspace before upgrading and keep the backup until the new runtime is accepted.
Manual installation uses the signed and notarized macOS arm64 DMG or ZIP from the [v6.1.2 release](https://github.com/BradGroux/veritas-kanban/releases/tag/v6.1.2) after publication. Back up the complete stopped-writer workspace before upgrading and keep the backup until the new runtime is accepted.
## Breaking Changes And Migration Warnings
Veritas Kanban 6.1.1 retains SQLite migrations 30 to 33 from 6.1.0. No new migration runs when upgrading from 6.1.0. Rollback to an older schema still requires restoring the stopped-writer pre-upgrade backup; do not open migrated data with an older binary.
There is no public REST API version change, configuration breaking change, or new SQLite schema migration in 6.1.2. Migrations remain at 30 through 33. Runtime-path normalization can move legacy files into the configured canonical data directory; verify the selected data root, health, integrity, and backup evidence before resuming writers or automation.
The public REST API remains mounted at `v1`. Provider-less or adapter/profile-mismatched records do not fall through to OpenClaw. Unknown or changed provider builds lose certification until current probes and deterministic fixtures pass. Claude Code does not launch with `--dangerously-skip-permissions`. Credential-bound MCP servers remain available only through the mediated run-scoped bridge.
Rollback is restore-first. Stop every writer. Reinstall 6.1.1 only when the current data contracts remain compatible; otherwise restore the complete pre-upgrade stopped-writer workspace. Never copy an older database over a live instance.
## Known Limitations
Buzz Agent sessions remain in-memory and do not support session load/resume. Buzz files, reactions, forums, direct messages, and destructive edit/delete projection are not bridged. GitHub Copilot CLI ACP remains public preview. Grok Build's stable artifact still self-reports alpha and cannot be fully traced to the current public source tree. Claude Code's complete CLI implementation is not public, so certification is bound to exact release behavior and checked-in fixtures.
Buzz Agent sessions remain in-memory and do not support session load/resume. Buzz files, reactions, forums, direct messages, and destructive edit/delete projection are not bridged. GitHub Copilot CLI ACP remains public preview. Grok Build's stable artifact still self-reports alpha and cannot be fully traced to the current public source tree. Claude Code's complete CLI implementation is not public, so certification remains bound to exact release behavior and checked-in fixtures.
Deterministic compatibility does not prove provider authentication, subscription availability, quota, or live inference. Linux and Windows desktop artifacts remain unsigned previews; signed and notarized macOS arm64 is the supported stable desktop distribution.
## Release Artifacts
The supported stable desktop release publishes signed and notarized `Veritas-Kanban-6.1.1-mac-arm64.dmg` and `Veritas-Kanban-6.1.1-mac-arm64.zip`, blockmaps, SHA-256 sidecars, and `latest-mac.yml` updater metadata from the annotated `v6.1.1` tag. Publication is complete only after GitHub assets, signature, Gatekeeper, stapling, updater, downloaded-app launch, and Homebrew installation have been verified.
The supported stable desktop release publishes signed and notarized `Veritas-Kanban-6.1.2-mac-arm64.dmg` and `Veritas-Kanban-6.1.2-mac-arm64.zip`, blockmaps, SHA-256 sidecars, and `latest-mac.yml` updater metadata from the annotated `v6.1.2` tag. Exact sizes, hashes, signing, notarization, stapling, Gatekeeper, launch, updater, workflow, release, and Homebrew evidence are recorded after publication in [v6 Release Candidate Evidence Packet](V6-RC-EVIDENCE-PACKET.md).
## Documentation And Evidence
- [Agent guide and reusable template](AGENTS-TEMPLATE.md)
- [Agent provider setup and operations](AGENT-PROVIDERS.md)
- [Harness compatibility matrix](HARNESS-COMPATIBILITY.md)
- [Buzz integration guide](BUZZ-INTEGRATION.md)
- [v6 runtime architecture](architecture/V6-AGENT-RUNTIME-CONTROL-PLANE.md)
- [v6 compatibility and release policy](V6-COMPATIBILITY-AND-RELEASE-POLICY.md)
- [v6 upgrade and administration guide](V6-UPGRADE-INSTALL-ADMIN-GUIDE.md)
- [v6 release candidate evidence](V6-RC-EVIDENCE-PACKET.md)
- [Changelog](../CHANGELOG.md)

View file

@ -1,15 +1,15 @@
# Veritas Kanban v6 Upgrade, Install, Remote, And Admin Guide
This is the release-facing operator guide for Veritas Kanban 6.1.1. The
This is the release-facing operator guide for Veritas Kanban 6.1.2. The
detailed provider commands live in [Agent Providers](AGENT-PROVIDERS.md), the
machine-readable support contract is summarized in
[Harness Compatibility](HARNESS-COMPATIBILITY.md), and Buzz relay setup lives
in [Buzz Integration](BUZZ-INTEGRATION.md).
Documentation freshness: 2026-08-22 for Veritas Kanban 6.1.1.
Documentation freshness: 2026-08-24 for Veritas Kanban 6.1.2.
Do not install 6.0.0. It is retained as a quarantined prerelease. Version 6.1.1
is the current supported stable v6 build and supersedes 6.1.0.
Do not install 6.0.0. It is retained as a quarantined prerelease. Version 6.1.2
supersedes 6.1.1 after the signed release and Homebrew cask are published.
## Fresh Mac Desktop Install
@ -21,8 +21,8 @@ brew install --cask veritas-kanban
```
Manual installation uses
`Veritas-Kanban-6.1.1-mac-arm64.zip` from the
[v6.1.1 GitHub release](https://github.com/BradGroux/veritas-kanban/releases/tag/v6.1.1).
`Veritas-Kanban-6.1.2-mac-arm64.zip` from the
[v6.1.2 GitHub release](https://github.com/BradGroux/veritas-kanban/releases/tag/v6.1.2).
Move `Veritas Kanban.app` into `/Applications`, launch it normally, and verify
Settings -> Maintenance before enabling an agent or external integration.
@ -30,7 +30,7 @@ For a new board:
1. Choose Board Only unless agent execution is required immediately.
2. Create the local admin password and retain the recovery key securely.
3. Confirm `/api/health` reports version 6.1.1.
3. Confirm `/api/health` reports version 6.1.2.
4. Create a governed backup before adding external credentials or relay
mappings.
@ -58,14 +58,14 @@ equivalent v5.2.5 self-hosted workspace.
preferred port are stopped before copying data.
5. Preserve the complete workspace, not only the SQLite file. Keep the backup
through release acceptance.
6. Install v6.1.1 without replacing the workspace.
6. Install v6.1.2 without replacing the workspace.
7. Launch with the same profile. If setup appears for a populated database,
choose **Use Existing Data**. Do not rerun file migration or restore over the
populated database.
8. Wait for the exact-version readiness gate:
```bash
EXPECTED_VERSION=6.1.1
EXPECTED_VERSION=6.1.2
pnpm desktop:wait:ready -- --expected-version "$EXPECTED_VERSION"
```
@ -82,8 +82,10 @@ The public API remains `v1`. v6 adds provider, approval, lifecycle, tool,
credential, compatibility, Buzz, and conformance records without requiring a
new API mount.
Veritas Kanban 6.1.1 retains the SQLite workspace migrations 30 to 33 from
6.1.0. Keep the stopped-writer
Veritas Kanban 6.1.2 retains the SQLite workspace migrations 30 to 33 from
6.1.0. No new schema migration runs when upgrading from 6.1.1. Runtime-path
normalization can move legacy files into the configured canonical data root.
Keep the stopped-writer
backup until collection, task, workflow, provider, and board data have been
accepted. Rollback to an older schema requires restoring that backup; do not
open migrated data with an older binary.

View file

@ -1,6 +1,6 @@
# Veritas Kanban v6 Agent Runtime Control Plane
This document defines the supported v6.1.1 architecture for executable agent
This document defines the supported v6.1.2 architecture for executable agent
harnesses and Buzz integration. It is the version-level composition of the
individual contract documents for
[ACP](ACP-PROVIDER-V1.md),
@ -9,7 +9,7 @@ individual contract documents for
[tool control](TOOL-CONTROL-PLANE-V1.md), and
[runtime hooks](RUNTIME-HOOK-V1.md).
Documentation freshness: 2026-08-22 for Veritas Kanban 6.1.1.
Documentation freshness: 2026-08-24 for Veritas Kanban 6.1.2.
## Authority Model
@ -43,6 +43,12 @@ owns signed delivery, not Veritas task or completion state.
Provider profiles select an adapter. No unknown executable, provider-less
record, or unsupported profile can route through an implicit fallback.
The server resolves these contracts through a provider adapter registry. The
registry owns the task-envelope renderer, runtime probe, event mapper, start
dispatch, and stop semantics for each exact executable provider. Attempt state
transitions remain centralized in the lifecycle coordinator, while terminal
completion and recovery consume the same persisted provider evidence.
## Run Lifecycle
```text

View file

@ -32,15 +32,15 @@ This guide walks you through every self-hosting scenario — from running locall
| Requirement | Version | Install |
| ----------- | ------- | ------------------------------------------------------------ |
| Node.js | 22.0.0+ | https://nodejs.org or `nvm install 22` |
| pnpm | 11.1.1+ | `corepack enable && corepack prepare pnpm@11.1.1 --activate` |
| Git | any | https://git-scm.com |
| Node.js | 22.22.1+ | https://nodejs.org or `nvm install 22` |
| pnpm | 11.1.1 | `corepack enable && corepack prepare pnpm@11.1.1 --activate` |
| Git | 2.38+ | https://git-scm.com |
Verify:
```bash
node --version # v22.x.x
pnpm --version # 11.x.x
node --version # v22.22.1 or newer
pnpm --version # 11.1.1
```
---
@ -468,6 +468,10 @@ The `DATA_DIR=/app/data` volume holds all persistent data:
└── logs/ # Application logs
```
This tree is illustrative, not exhaustive. Veritas also stores workflows,
runtime evidence, telemetry, provider records, and other governed domains under
the same canonical root. Back up the entire stopped-writer volume.
**Without a named volume, data is lost on every `docker compose down`.** Always use a volume or bind mount.
For `VERITAS_STORAGE=sqlite`, persistence is not enough: the authoritative
@ -614,8 +618,8 @@ Set `PROMETHEUS_METRICS_TOKEN` on the Veritas server to the same secret, or use
| Variable | Default | Description |
| -------------------------- | -------------------- | ------------------------------------------------------- |
| `VERITAS_DATA_DIR` | `.veritas-kanban` | Config, logs, internal state (relative to project root) |
| `DATA_DIR` | `/app/data` (Docker) | Mapped data dir inside Docker container |
| `VERITAS_DATA_DIR` | Project root | Storage root used when `DATA_DIR` is unset |
| `DATA_DIR` | `/app/data` (Docker) | Preferred storage root; takes precedence |
| `TELEMETRY_RETENTION_DAYS` | `30` | Days to keep telemetry event files |
| `TELEMETRY_COMPRESS_DAYS` | `7` | Days after which telemetry files are gzip-compressed |

View file

@ -103,7 +103,7 @@ Don't use it when:
### Prerequisites
- Node.js ≥ 22
- Node.js ≥ 22.22.1
- The Veritas Kanban server running (`pnpm dev` or production)
- pnpm (for building from source)
- No OpenClaw requirement unless OpenClaw is the MCP client or agent runner you choose
@ -844,10 +844,10 @@ Configure telemetry retention in `server/.env`:
| Component | Version | Notes |
| ------------------ | ------------ | --------------------------- |
| MCP server package | `6.1.1` | Matches VK server version |
| MCP server package | `6.1.2` | Matches VK server version |
| MCP SDK | `1.29.0` | `@modelcontextprotocol/sdk` |
| MCP protocol | `2025-11-25` | Latest stable spec |
| Node.js | `≥ 22` | Matches the repo runtime |
| Node.js | `≥ 22.22.1` | Matches the repo runtime |
| TypeScript | `6.0+` | Build dependency only |
**Breaking change policy:**
@ -888,4 +888,4 @@ The `findTask` utility matches the last N characters of a task ID (minimum 6). I
---
_Last updated: 2026-08-22 · VK v6.1.1 · 42 tools / 9 categories_
_Last updated: 2026-08-24 · VK v6.1.2 · 42 tools / 9 categories_

61
docs/releases/v6.1.2.md Normal file
View file

@ -0,0 +1,61 @@
Veritas Kanban 6.1.2 completes the repository-wide reliability, security, storage, provider-runtime, CI, container, and supportability audit. It is a backward-compatible patch release for 6.1.1 with no public API or SQLite schema-version change.
## What changed
- **One runtime data root.** Paths, migration, backup, integrity, health, and Docker mounts use the canonical `DATA_DIR` contract.
- **Storage boundary restored.** File and SQLite repositories own containment, locking, atomicity, and compatibility behavior.
- **Explicit provider adapters.** Launch, probes, events, completion, mutation, and stop behavior fail closed without implicit fallback.
- **One authenticated API client.** JSON, blob, stream, and download operations preserve credentials, base paths, and error envelopes.
- **Milestone-scoped tests.** Ordinary pull requests stay fast; complete test and artifact gates run at declared integration and release milestones.
- **Continuous supply-chain controls.** CodeQL, dependency alerts, secret scanning, immutable actions, and policy guards remain active.
- **Resolved CodeQL baseline.** Reviewed all 195 initial alerts: fixed 67, dispositioned 128, and left zero open on the default branch.
- **Measured production container.** The non-root runtime closure verifies health, auth, SQLite, static web, data paths, and size ceilings.
- **Lower maintenance debt.** Four unused dependencies were removed and the server warning budget fell from 600 to 458.
- **Coordinated security hardening.** The private remediation is integrated; disclosure remains gated on supported artifacts and approval.
- **Release-gate corrections.** Runtime boundary behavior now matches its checked-in contracts.
## Issue and pull request traceability
| Audit issue | Outcome | Pull requests |
| --- | --- | --- |
| #1162 | Canonical runtime data paths and legacy compatibility | #1184 |
| #1163 | Service/storage boundary restored across persisted domains | #1190-#1220 |
| #1164 | Provider and attempt lifecycle decomposition | #1223-#1230 |
| #1165 | Credential-aware frontend API migration | #1218 |
| #1166 | Production Docker size and runtime contract | #1222 |
| #1167 | Immutable GitHub Actions | #1179 |
| #1168 | Continuous security scanning | #1180 |
| #1169 | Critical-path coverage baselines and ratchets | #1183 |
| #1170 | Unused dependency removal | #1217 |
| #1171 | Native-loader-compatible Vite and Vitest configuration | #1178 |
| #1172 | Deterministic, milestone-scoped test gates | #1175, #1177, #1181, #1228 |
| #1173 | Server type-safety lint-debt ratchet | #1221 |
| #1231 | Initial CodeQL alert baseline resolved | #1232-#1235 |
| #1238 | Recovery-key alphabet and WebSocket header forwarding | #1239 |
| #1240 | Same-task lifecycle invocation ordering | #1241 |
| #1242 | Sanitized URI prefix validation | #1243 |
## Install or upgrade
Back up the complete stopped-writer workspace before upgrading and retain the backup until the new runtime is accepted.
```bash
brew update
brew upgrade --cask bradgroux/tap/veritas-kanban
```
For a first installation:
```bash
brew install --cask bradgroux/tap/veritas-kanban
```
The Assets section provides signed and notarized macOS arm64 DMG and ZIP packages after the release workflow completes. Linux and Windows packages remain unsigned verification previews.
## Compatibility, migration, and rollback
The public REST API remains `v1`, and SQLite schema migrations remain at 30 through 33. Upgrading from 6.1.1 does not run a new schema migration. Runtime path normalization can migrate legacy files into the configured canonical data directory; operators should verify the data root, health, backup, and integrity evidence before resuming automation.
Rollback is restore-first. Stop every writer, reinstall 6.1.1 only when its data contracts remain compatible, and otherwise restore the complete stopped-writer pre-upgrade workspace. Never copy an older database over a running instance.
See the [full release notes](https://github.com/BradGroux/veritas-kanban/blob/v6.1.2/docs/V6-RELEASE-NOTES.md), [upgrade guide](https://github.com/BradGroux/veritas-kanban/blob/v6.1.2/docs/V6-UPGRADE-INSTALL-ADMIN-GUIDE.md), [compatibility policy](https://github.com/BradGroux/veritas-kanban/blob/v6.1.2/docs/V6-COMPATIBILITY-AND-RELEASE-POLICY.md), and [changelog](https://github.com/BradGroux/veritas-kanban/blob/v6.1.2/CHANGELOG.md).

View file

@ -1,6 +1,6 @@
# Lint Warning Debt
Review date: 2026-06-04
Review date: 2026-08-24
The repository still allows lint warnings, but warning debt is now managed with a
ratchetable budget and a repeatable package/rule report.
@ -30,24 +30,15 @@ pnpm lint:report
## Current Budget
Current warning budget: 600.
Current warning budget: 458.
Baseline after the production unused-value cleanup:
The 6.1.2 audit reduced the repository ceiling from 600 to 458 by narrowing
production server boundaries, replacing unsafe assertions, and removing unused
values without relaxing rules or adding broad suppressions. Use
`pnpm lint:report` for the current package and rule distribution; do not copy a
historical distribution into release evidence.
| Package | Warnings |
| ------- | -------- |
| server | 536 |
| web | 37 |
| mcp | 25 |
| shared | 2 |
Current warning classes:
| Rule | Warnings |
| ------------------------------------------ | -------- |
| `@typescript-eslint/no-explicit-any` | 342 |
| `@typescript-eslint/no-non-null-assertion` | 227 |
| `@typescript-eslint/no-unused-vars` | 31 |
The final 6.1.2 release matrix records the freshly measured total and report.
## Cleanup Order

View file

@ -1,6 +1,6 @@
# Scheduled QA Gates
Review date: 2026-06-04
Review date: 2026-08-24
The scheduled QA workflow runs heavier browser and load-test coverage outside
the fast pull-request path. Ordinary pull requests stay limited to lint,
@ -14,12 +14,10 @@ job-level `env` used the `runner.temp` context. GitHub does not expose the
error instead of producing logs. The workflow now writes `VERITAS_DATA_DIR`
from `$RUNNER_TEMP` during job setup.
Playwright and `pnpm qa:mantine` remain scheduled/manual gates while #568 and
#569 are open. Adding them to PR CI before those gates are stable would create
red PR checks with known non-PR-specific failures. Once both gates pass on
`main`, either add a small PR smoke job for `pnpm qa:mantine` and
`pnpm test:e2e -- e2e/mantine-qa-gate.spec.ts`, or record the release decision
to keep them scheduled-only here.
Playwright, Mantine QA, coverage, desktop artifacts, load profiles, and Docker
contracts are deliberate milestone gates. Apply `ci:full` to an integration or
release candidate, or use the documented scheduled/manual dispatch. Do not add
them to every ordinary pull request merely to duplicate the final milestone.
## Workflow

View file

@ -1,6 +1,6 @@
{
"name": "@veritas-kanban/mcp",
"version": "6.1.1",
"version": "6.1.2",
"description": "MCP server for Veritas Kanban",
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "veritas-kanban",
"version": "6.1.1",
"version": "6.1.2",
"private": true,
"description": "Local-first task management and AI agent orchestration platform",
"author": "Brad Groux <brad@digitalmeld.io>",

View file

@ -1,6 +1,6 @@
{
"name": "@veritas-kanban/server",
"version": "6.1.1",
"version": "6.1.2",
"private": true,
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@veritas-kanban/shared",
"version": "6.1.1",
"version": "6.1.2",
"private": true,
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@veritas-kanban/web",
"version": "6.1.1",
"version": "6.1.2",
"private": true,
"type": "module",
"scripts": {