triss-coworker 0.44.0 → 0.44.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +81 -45
- package/README.md +26 -11
- package/SECURITY.md +23 -13
- package/THIRD_PARTY_NOTICES +1 -1
- package/bin/triss.js +11 -543
- package/docs/cli-reference.md +38 -17
- package/docs/configuration.md +34 -11
- package/docs/data-flows.md +7 -0
- package/docs/engines/omp.md +21 -1
- package/docs/generated/cli-reference.md +1214 -0
- package/docs/generated/mcp-reference.md +914 -0
- package/docs/getting-started.md +10 -3
- package/docs/integrations/jira.md +2 -1
- package/docs/integrations/linear.md +3 -2
- package/docs/mcp.md +22 -7
- package/docs/security-model.md +18 -11
- package/docs/troubleshooting.md +130 -6
- package/docs/usage-accounting.md +8 -3
- package/package.json +13 -10
- package/src/cli-program.js +564 -0
- package/src/coder-engine-registry.js +4 -1
- package/src/commands/coder.js +9 -6
- package/src/integrations/_registry.js +9 -2
- package/src/mcp/tools.js +25 -13
- package/templates/claude-full.md +24 -14
- package/templates/codex-full.md +17 -9
package/CHANGELOG.md
CHANGED
|
@@ -7,50 +7,77 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## [0.44.2] — 2026-10-29
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
absent, true, or false — the string `"false"` is never a truthy opt-in) and
|
|
27
|
-
`TRISS_MODEL_TRANSPORTS` (exact-model direct transport override map).
|
|
28
|
-
- The `direct` engine now serves `opencode-zen` and `opencode-go` models
|
|
29
|
-
through audited per-model transports (OpenAI Chat, OpenAI Responses,
|
|
30
|
-
Anthropic Messages); a model without resolvable direct metadata fails with
|
|
31
|
-
the stable `TRISS_DIRECT_ENGINE_REQUIRED` code and an actionable
|
|
32
|
-
`TRISS_MODEL_TRANSPORTS` remedy instead of a generic registry error.
|
|
33
|
-
- `--protect-credentials` / `--no-protect-credentials` on model-backed
|
|
34
|
-
commands: the former requests the parent-owned proxy and falls back to a
|
|
35
|
-
warned best-effort raw run when a protected route is unavailable; the latter
|
|
36
|
-
overrides a persisted protection choice for one run. MCP forwards
|
|
37
|
-
`protect_credentials` as the same tri-state.
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Keep the pinned Harness npx acceptance check executable by installing its
|
|
15
|
+
required peer dependencies explicitly instead of hanging in npm peer
|
|
16
|
+
hoisting. The real add/remove and provider-route checks remain enabled.
|
|
17
|
+
- Update production and development dependencies, including Anthropic SDK
|
|
18
|
+
1.3.0, MCP SDK 1.32.2, dotenv 18.0.9, linkedom 0.18.14 and OpenAI SDK
|
|
19
|
+
7.43.0, and refresh vulnerable transitive dependencies.
|
|
20
|
+
- Keep standalone builds within the existing installer archive limits by
|
|
21
|
+
omitting dependency source maps and TypeScript declaration files. Runtime
|
|
22
|
+
sources, package metadata and licenses remain included.
|
|
23
|
+
- Refresh website dependencies, including Wrangler and Undici security fixes.
|
|
24
|
+
Website development and builds require Node >=22.22.0; the CLI runtime
|
|
25
|
+
requirement remains Node >=22.12.0.
|
|
38
26
|
|
|
39
27
|
### Changed
|
|
40
28
|
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
29
|
+
- Incorporate the dependency updates from Dependabot PRs #137, #139,
|
|
30
|
+
#141–#145, #147, #148 and #150–#152. MCP SDK 1.32.2 supersedes the older
|
|
31
|
+
1.32.0 proposal. GitHub Actions remain pinned to immutable commit hashes.
|
|
32
|
+
- Align `triss-dsh-provider-bundle` at 0.44.2; provider routes and settings
|
|
33
|
+
remain unchanged.
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Artifact integrity (0.44.2)
|
|
37
|
+
|
|
38
|
+
- `triss-dsh-provider-bundle-0.44.2.tgz` — sha256
|
|
39
|
+
`46b4b875bc4f8f833765200bbb4440bd7ddbe60699f4acfc32f3ba6eea055528`
|
|
40
|
+
— `sha512-XsGZTWVLVyvNqatXyXc3/xjq/bCrd9Nt913oWrZA28ytCKTZEZ+8se2Kw5JQTbju+AL4sIR42irbdyhEi5S3rg==`
|
|
41
|
+
(computed with npm pack; the output is byte-deterministic).
|
|
42
|
+
- Root `triss-coworker-0.44.2.tgz` sha256 is reproducible via `npm pack` at
|
|
43
|
+
tag `v0.44.2`; its tarball includes this changelog, so its hash is verified
|
|
44
|
+
separately rather than embedded here.
|
|
45
|
+
|
|
46
|
+
## [0.44.1] — 2026-09-09
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- All nine open Dependabot security alerts (#21–#29) are closed in one
|
|
51
|
+
sweep. Root package: `hono` 4.13.7 (CVE-2026-84363 query-parser fragment
|
|
52
|
+
differential, CVE-2026-84364 `parseBody()` memory exhaustion,
|
|
53
|
+
CVE-2026-84365 `toSSG()` path traversal) and `js-yaml` 4.3.2
|
|
54
|
+
(CVE-2026-84375). Site: `astro` 7.3.2 (critical RCE via AVIF image
|
|
55
|
+
optimization, GHSA-26w7-cxv4-gfx2), `sharp` 0.35.4 (libheif
|
|
56
|
+
GHSA-g89c-p67h-r497, GHSA-2jg2-4ch7-h545), `js-yaml` 4.3.2, and `svgo`
|
|
57
|
+
4.1.0 (CVE-2026-84369, CVE-2026-84370). `npm audit` reports 0
|
|
58
|
+
production vulnerabilities for the root package and the site.
|
|
59
|
+
- Carried dependency groups superseded from Dependabot: `@anthropic-ai/sdk`
|
|
60
|
+
^0.124.0 (production) and the development-dependencies group (`keyv`
|
|
61
|
+
5.6.0, `flat-cache` 6.1.23 lockfile-only).
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- The 2026-09-08 documentation audit landed (D01–D16, A01–A03): generated
|
|
66
|
+
CLI and MCP references, security-model and getting-started updates, and
|
|
67
|
+
packaged-documentation acceptance in the publish pipeline.
|
|
68
|
+
- `triss-dsh-provider-bundle` is version-aligned at 0.44.1 and republished
|
|
69
|
+
unchanged; its OpenCode Zen, OpenCode Go, and Z.AI routes are unchanged.
|
|
70
|
+
|
|
71
|
+
### Artifact integrity (0.44.1)
|
|
72
|
+
|
|
73
|
+
- `triss-dsh-provider-bundle-0.44.1.tgz` — sha256
|
|
74
|
+
`76b74f0092665c9f0a4e7cc1060f8f359ea9de04be59cd24557580d4f71ec3a1`
|
|
75
|
+
— `sha512-8/taMLUGjQjM2i4HME6gcZev+XycbhR6TmNv0zKtbPxT66MzVm98w3aZ1LPK3oNqqkPEMWz1yGMP5n1rGUdmNw==`
|
|
76
|
+
(computed with npm pack; the output is byte-deterministic).
|
|
77
|
+
- Root `triss-coworker-0.44.1.tgz` sha256 is reproducible via `npm pack` at
|
|
78
|
+
tag `v0.44.1`; the root tarball ships `CHANGELOG.md`, so its hash cannot
|
|
79
|
+
be recorded inside this file. Registry verification compares the packed
|
|
80
|
+
artifact with the published tarball byte-for-byte.
|
|
54
81
|
|
|
55
82
|
## [0.44.0] — 2026-09-08
|
|
56
83
|
|
|
@@ -73,19 +100,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
73
100
|
- Headless apply: `triss config wizard --yes --agent none [--install]`
|
|
74
101
|
assembles a complete configuration from existing files, the environment,
|
|
75
102
|
and explicit flags; missing requirements exit non-zero before writing.
|
|
76
|
-
`triss init --setup` delegates to the same wizard
|
|
77
|
-
|
|
103
|
+
`triss init --setup` delegates to the same wizard before any rules write,
|
|
104
|
+
preserving init's target and scope intent.
|
|
78
105
|
- Every execution engine now serves every canonical provider: crush runs any
|
|
79
106
|
provider through a run-scoped config with `$ENV` credential references
|
|
80
107
|
(provider block seeded before `crush models use`), and opencode2, omp, and
|
|
81
108
|
crush execute non-coder projections (`ask`, `review`, `chat`, `write`,
|
|
82
109
|
`commit-msg`) best-effort with structured warnings naming the unverified
|
|
83
|
-
limitation.
|
|
110
|
+
limitation. Provider and engine are independent choices for model-backed
|
|
111
|
+
commands, honored as selected with truthful warnings for best-effort
|
|
112
|
+
routes.
|
|
84
113
|
- `--protect-credentials` / `--no-protect-credentials` on model-backed
|
|
85
114
|
commands; MCP forwards `protect_credentials` as the same tri-state and
|
|
86
115
|
carries credential mode and disclosures in the run envelope.
|
|
87
|
-
-
|
|
88
|
-
|
|
116
|
+
- New persisted fields: `TRISS_CODER_PROVIDER` (coder-only provider default
|
|
117
|
+
that never rewrites `TRISS_DEFAULT_PROVIDER`), `TRISS_DEFAULT_EFFORT`,
|
|
118
|
+
`TRISS_CODER_EFFORT` (honored by every engine; crush discloses when a
|
|
119
|
+
provider declares no effort support), the `TRISS_PROTECT_CREDENTIALS` /
|
|
120
|
+
`TRISS_CODER_PROTECT_CREDENTIALS` tri-state (absent, true, or false — the
|
|
121
|
+
string `"false"` is never a truthy opt-in), and `TRISS_MODEL_TRANSPORTS`
|
|
122
|
+
(exact-model direct transport override map; a model without resolvable
|
|
123
|
+
direct metadata fails with the stable `TRISS_DIRECT_ENGINE_REQUIRED` code
|
|
124
|
+
and this remedy).
|
|
89
125
|
|
|
90
126
|
### Changed
|
|
91
127
|
|
package/README.md
CHANGED
|
@@ -55,7 +55,7 @@ triss config wizard --yes --agent none
|
|
|
55
55
|
Connect Claude Code, Codex, or both:
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
triss init --target claude --global --setup #
|
|
58
|
+
triss init --target claude --global --setup # runs the setup wizard first, then writes rules
|
|
59
59
|
triss init --target codex --global
|
|
60
60
|
triss mcp install --target claude --global
|
|
61
61
|
triss mcp install --target codex --global
|
|
@@ -65,12 +65,17 @@ triss mcp install --target codex --global
|
|
|
65
65
|
integration. Omit values to enter them interactively; secret input is masked:
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
+
triss config set -g TRISS_OPENAI_COMPATIBLE_BASE_URL
|
|
68
69
|
triss config set -g TRISS_OPENAI_COMPATIBLE_API_KEY
|
|
69
70
|
triss config set -g TRISS_OPENAI_COMPATIBLE_MODEL
|
|
70
71
|
triss config set -g TRISS_OPENAI_COMPATIBLE_SMALL_MODEL
|
|
71
72
|
```
|
|
72
73
|
|
|
73
|
-
|
|
74
|
+
`openai-compatible` is a configurable profile, not a provider detector: its
|
|
75
|
+
built-in endpoint is `https://api.deepseek.com/v1`. Set the base URL explicitly
|
|
76
|
+
when using another compatible endpoint. These four commands edit profile
|
|
77
|
+
fields; they do not reset an existing default provider or engine. Check the
|
|
78
|
+
effective configuration with `triss status` before the first request.
|
|
74
79
|
|
|
75
80
|
For an installed host, run `triss mcp status` and restart that host's session. There is no need to repeat `triss init` or `triss mcp install` if the wizard already connected it. Terminal users skip this step.
|
|
76
81
|
|
|
@@ -123,7 +128,7 @@ Every provider has an endpoint, credential, `model` role, and `smallModel` role.
|
|
|
123
128
|
4. global `~/.config/triss/.env`;
|
|
124
129
|
5. registry defaults.
|
|
125
130
|
|
|
126
|
-
`TRISS_DEFAULT_PROVIDER` selects the provider when a request omits one; `TRISS_DEFAULT_ENGINE` selects `direct`, `opencode`, `opencode2`, `omp`, or `crush` when it omits an engine.
|
|
131
|
+
`TRISS_DEFAULT_PROVIDER` selects the provider when a request omits one; `TRISS_DEFAULT_ENGINE` selects `direct`, `opencode`, `opencode2`, `omp`, or `crush` when it omits an engine. The `--model` value is either a qualified `<canonical-provider>/<native-id>` selector or a bare native id; a bare id resolves against `--provider` when given, otherwise against the effective default provider. An explicit `--provider` that conflicts with a qualified model prefix is rejected, not silently replaced. Every engine can execute non-coder model projections (`ask`, `review`, `chat`, …); what differs per engine is the available protection, not permission to run. `opencode` and `direct` have a verified read-only projection; `opencode2` runs the same deny-everything projection agent through its run-scoped config surface, `omp` uses its run-private policy overlay, and `crush` runs single-agent with the restrict allowlist. Engines without a verified projection report their concrete limitation as a warning on the result — never as a refusal.
|
|
127
132
|
|
|
128
133
|
Shared reasoning effort values:
|
|
129
134
|
|
|
@@ -135,7 +140,8 @@ Examples:
|
|
|
135
140
|
|
|
136
141
|
```bash
|
|
137
142
|
triss ask --provider zai --model glm-5.2 --effort high \
|
|
138
|
-
--paths src
|
|
143
|
+
--paths 'src/**/*.js' \
|
|
144
|
+
--question "Find correctness defects. Cite file paths and line numbers."
|
|
139
145
|
|
|
140
146
|
triss review --provider moonshot --model kimi-k3 --effort max
|
|
141
147
|
|
|
@@ -143,6 +149,11 @@ triss chat --provider openai-compatible --effort low \
|
|
|
143
149
|
"Explain this error"
|
|
144
150
|
```
|
|
145
151
|
|
|
152
|
+
`--paths` accepts text files or quoted glob patterns. Directories are not read
|
|
153
|
+
recursively; an input like `--paths src` fails with a "no readable file
|
|
154
|
+
content" error before any model call. Quote globs so Triss, rather than the
|
|
155
|
+
shell, expands them.
|
|
156
|
+
|
|
146
157
|
Omit `--model` to use the command's provider role. There are no public model presets.
|
|
147
158
|
|
|
148
159
|
## Configuration
|
|
@@ -184,11 +195,15 @@ never gains ambient file, shell, edit, skill, or delegation access. The other
|
|
|
184
195
|
engines apply their best-effort equivalents (run-scoped config surface,
|
|
185
196
|
run-private policy overlay, or the restrict allowlist) and attach a warning
|
|
186
197
|
that names exactly what is not verified. The process still runs as the current
|
|
187
|
-
OS user and is not a filesystem sandbox.
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
`
|
|
198
|
+
OS user and is not a filesystem sandbox. Best-effort tool-policy support does
|
|
199
|
+
not imply an automatic credential downgrade: a selected protected route fails
|
|
200
|
+
closed — before any credential-bearing spawn — when the raw key cannot be
|
|
201
|
+
contained by the checked credential boundary or when the proxy cannot start.
|
|
202
|
+
`--protect-credentials` requests the parent-owned credential proxy;
|
|
203
|
+
`--no-protect-credentials` is an explicit choice to run with the selected raw
|
|
204
|
+
credential and a disclosed limitation, and it overrides a persisted
|
|
205
|
+
`TRISS_PROTECT_CREDENTIALS=true` (or `TRISS_CODER_PROTECT_CREDENTIALS=true`)
|
|
206
|
+
choice for one run. For coder runs configured
|
|
192
207
|
through the wizard, `--coder-protect-credentials` / `--coder-no-protect-credentials`
|
|
193
208
|
persist `TRISS_CODER_PROTECT_CREDENTIALS=true` / `=false` (cannot be combined);
|
|
194
209
|
the coder-specific value takes precedence over the shared
|
|
@@ -287,7 +302,7 @@ Engine details:
|
|
|
287
302
|
|
|
288
303
|
If the wizard has not already connected your host, choose Claude Code or Codex in the [host-connection guide](https://triss.work/docs/getting-started/#step-4). Only run setup for the host you intend to use.
|
|
289
304
|
|
|
290
|
-
Core tools include `triss_ask`, `triss_chat`, `triss_fetch`, `triss_review`, `triss_write`, `triss_commit_msg`, `triss_status
|
|
305
|
+
Core tools include `triss_ask`, `triss_chat`, `triss_fetch`, `triss_review`, `triss_review_shard`, `triss_write`, `triss_commit_msg`, and `triss_status`. Updates and migration stay CLI-side: the MCP server emits passive update notices but exposes no update or migration tool. Coder tools appear when any canonical provider credential is configured. Tracker tools appear only when their integration credential is ready.
|
|
291
306
|
|
|
292
307
|
The MCP schemas use the same `provider`, `model`, `effort`, and engine contracts as the CLI. Full reference: [MCP](https://github.com/ayleen/triss-coworker/blob/main/docs/mcp.md).
|
|
293
308
|
|
|
@@ -316,7 +331,7 @@ Usage records preserve provider, model, token-class provenance, billing mode, an
|
|
|
316
331
|
## Updates
|
|
317
332
|
|
|
318
333
|
```bash
|
|
319
|
-
triss update
|
|
334
|
+
triss update
|
|
320
335
|
triss update --apply
|
|
321
336
|
triss update --rollback
|
|
322
337
|
```
|
package/SECURITY.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Security
|
|
2
2
|
|
|
3
3
|
Triss is a local CLI and MCP server that can read files, fetch URLs, call
|
|
4
|
-
tracker APIs, and send selected context to
|
|
5
|
-
makes the trust boundary worth spelling out plainly.
|
|
4
|
+
tracker APIs, and send selected context to the model provider you configure.
|
|
5
|
+
That makes the trust boundary worth spelling out plainly.
|
|
6
6
|
|
|
7
7
|
## Reporting vulnerabilities
|
|
8
8
|
|
|
@@ -22,8 +22,8 @@ advisory unless they ask to remain anonymous.
|
|
|
22
22
|
|
|
23
23
|
## What leaves your machine
|
|
24
24
|
|
|
25
|
-
Model-backed commands send the requested prompt and selected
|
|
26
|
-
|
|
25
|
+
Model-backed commands send the requested prompt and selected context to the
|
|
26
|
+
resolved endpoint of your selected canonical provider:
|
|
27
27
|
|
|
28
28
|
- `triss ask`
|
|
29
29
|
- `triss chat`
|
|
@@ -84,21 +84,31 @@ content is never written to this log** — metadata only. If working-directory
|
|
|
84
84
|
paths are themselves sensitive (client names in folder names), set
|
|
85
85
|
`TRISS_USAGE_LOG_CWD=0`, or disable the log entirely with
|
|
86
86
|
`TRISS_USAGE_LOG=0`. The file rotates once past `TRISS_USAGE_LOG_MAX_BYTES`;
|
|
87
|
-
the generated defaults table in
|
|
87
|
+
the generated defaults table in
|
|
88
|
+
[docs/configuration.md](docs/configuration.md#network-and-usage-controls)
|
|
88
89
|
is the source of truth. Delete it at any time with `triss usage --reset`.
|
|
89
90
|
|
|
90
91
|
## Data residency and GDPR
|
|
91
92
|
|
|
92
93
|
Triss is a local tool, not a hosted service — it stores none of your data
|
|
93
94
|
server-side and has no subprocessors of its own. The party that processes
|
|
94
|
-
your prompts is **whatever model endpoint you configure**.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
95
|
+
your prompts is **whatever model endpoint you configure**.
|
|
96
|
+
|
|
97
|
+
Model-backed commands send their selected context to the resolved provider
|
|
98
|
+
endpoint. For the `openai-compatible` profile, configure
|
|
99
|
+
`TRISS_OPENAI_COMPATIBLE_BASE_URL`, `TRISS_OPENAI_COMPATIBLE_API_KEY`, and the
|
|
100
|
+
profile's model fields. Other canonical providers use their own endpoint
|
|
101
|
+
fields (see the provider field table in
|
|
102
|
+
[docs/configuration.md](docs/configuration.md#canonical-providers)).
|
|
103
|
+
`TRISS_WORKER_BASE_URL` is a pre-0.42 migration input, not a current setup
|
|
104
|
+
instruction; the migration reference in
|
|
105
|
+
[src/migration/legacy-inventory.js](src/migration/legacy-inventory.js) maps it
|
|
106
|
+
to the canonical field. Triss does not enforce a provider's retention,
|
|
107
|
+
training, residency, or contractual policies — your organisation's agreement
|
|
108
|
+
with that provider is the controlling document. Triss does not add undocumented
|
|
109
|
+
data flows on top of the configured provider; see the complete flow table in
|
|
110
|
+
[docs/data-flows.md](docs/data-flows.md), including integrations, approved
|
|
111
|
+
setup downloads, and the credential-free passive update check.
|
|
102
112
|
|
|
103
113
|
## Supply chain
|
|
104
114
|
|
package/THIRD_PARTY_NOTICES
CHANGED
|
@@ -4,7 +4,7 @@ Triss Coworker third-party notices
|
|
|
4
4
|
The npm package installs the following direct runtime dependencies. Their
|
|
5
5
|
license texts and transitive notices are distributed with those packages:
|
|
6
6
|
|
|
7
|
-
- @anthropic-ai/sdk —
|
|
7
|
+
- @anthropic-ai/sdk — Apache-2.0
|
|
8
8
|
- @modelcontextprotocol/sdk — MIT
|
|
9
9
|
- commander — MIT
|
|
10
10
|
- dotenv — BSD-2-Clause
|