sortie-dogs 0.13.14 → 0.13.15

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/README.md CHANGED
@@ -19,8 +19,8 @@ evidence-backed result, not more agents for their own sake.
19
19
  [![Node.js](https://img.shields.io/node/v/sortie-dogs)](https://www.npmjs.com/package/sortie-dogs)
20
20
  [![MIT License](https://img.shields.io/npm/l/sortie-dogs)](LICENSE)
21
21
 
22
- **Current release: [v0.13.14](https://github.com/zufall-upon/Sortie-dogs/releases/tag/v0.13.14)**
23
- · [Release notes](docs/release-v0.13.14.md)
22
+ **Current release: [v0.13.15](https://github.com/zufall-upon/Sortie-dogs/releases/tag/v0.13.15)**
23
+ · [Release notes](docs/release-v0.13.15.md)
24
24
 
25
25
  [Quick start](#quick-start) · [Workflow](#mission-workflow) · [Models](#default-models) ·
26
26
  [Measured results](#measured-results) · [Configuration](#configuration) · [Documentation](#documentation)
@@ -57,7 +57,7 @@ Use an existing Codex CLI signed in with **ChatGPT**. On Windows, PowerShell **7
57
57
  available; POSIX uses bash. Sortie does not install Codex, start login or use a metered API fallback.
58
58
 
59
59
  ```sh
60
- npm install --save-dev sortie-dogs@0.13.14
60
+ npm install --save-dev sortie-dogs@0.13.15
61
61
  npx --no-install sortie-dogs codex init .
62
62
  ```
63
63
 
@@ -86,7 +86,7 @@ bridge. [Codex guide: SDK, permissions, progress, resume and manifest route](doc
86
86
  Use **OpenCode V2**. In the target project:
87
87
 
88
88
  ```sh
89
- npm install --save-dev sortie-dogs@0.13.14
89
+ npm install --save-dev sortie-dogs@0.13.15
90
90
  npx --no-install sortie-dogs init .
91
91
  ```
92
92
 
@@ -188,7 +188,7 @@ known expense. Official local evaluation and leaderboard acceptance are separate
188
188
  **8/23 (34.8%)**, versus v0.12.25's 7/23; all seven prior resolutions retained, no empty patches or
189
189
  official evaluation errors. [Fixed conditions, stopped-run accounting and costs](docs/benchmarks/swebench-lite-history.md#v0131-dev23-2026-09-30).
190
190
 
191
- All scores belong to their fixed candidates, **not v0.13.14**. SWE-bench remains an optional
191
+ All scores belong to their fixed candidates, **not v0.13.15**. SWE-bench remains an optional
192
192
  measurement, not a release gate. Different budgets, models and conditions are not controlled comparisons.
193
193
 
194
194
  ## Configuration
@@ -211,7 +211,7 @@ Install the desired package version and rerun **your host's** initializer:
211
211
 
212
212
  An OpenCode config-local bridge may resolve a separate package; npm-global update alone does not
213
213
  update it. [Global/update instructions](docs/configuration.md#global-availability).
214
- The current Mission asset marker is `0.13.14-mission-recovery-v1`; the unchanged Codex skill marker is
214
+ The current Mission asset marker is `0.13.15-native-identity-v1`; the unchanged Codex skill marker is
215
215
  `0.13.11-codex-skill-v2`. Installed markers alone do not prove a running host reloaded the new version.
216
216
 
217
217
  There is no supported uninstall command. Remove the dependency and only known Sortie-owned paths;
@@ -227,7 +227,7 @@ follow the [manual removal guide](docs/uninstall.md), never delete the entire `.
227
227
  [SWE-bench history](docs/benchmarks/swebench-lite-history.md) · [Historical local case study](docs/benchmark-reference.md).
228
228
  - **Development:** [Testing](docs/testing.md) · [CLI testing](docs/cli-testing.md) ·
229
229
  [Windows tests](docs/windows-tests.md) · [Release routine](docs/release-batch.md).
230
- - **Releases:** [v0.13.14](docs/release-v0.13.14.md) · [v0.13.13](docs/release-v0.13.13.md) · [v0.13.12](docs/release-v0.13.12.md) · [v0.13.11](docs/release-v0.13.11.md) · [v0.13.10](docs/release-v0.13.10.md) ·
230
+ - **Releases:** [v0.13.15](docs/release-v0.13.15.md) · [v0.13.14](docs/release-v0.13.14.md) · [v0.13.13](docs/release-v0.13.13.md) · [v0.13.12](docs/release-v0.13.12.md) · [v0.13.11](docs/release-v0.13.11.md) · [v0.13.10](docs/release-v0.13.10.md) ·
231
231
  [v0.13.9](docs/release-v0.13.9.md) · [All GitHub releases](https://github.com/zufall-upon/Sortie-dogs/releases).
232
232
 
233
233
  ## Community
@@ -3,6 +3,6 @@
3
3
  * installed project marker without importing every asset body.
4
4
  */
5
5
  export declare const RUNTIME_ASSET_VERSION = "0.3.89-completion-proof-v1";
6
- export declare const V010_RUNTIME_ASSET_VERSION = "0.13.14-mission-recovery-v1";
6
+ export declare const V010_RUNTIME_ASSET_VERSION = "0.13.15-native-identity-v1";
7
7
  export declare const CODEX_SKILL_ASSET_VERSION = "0.13.11-codex-skill-v2";
8
8
  export type RuntimeAssetVersion = typeof RUNTIME_ASSET_VERSION | typeof V010_RUNTIME_ASSET_VERSION | typeof CODEX_SKILL_ASSET_VERSION;
@@ -3,5 +3,5 @@
3
3
  * installed project marker without importing every asset body.
4
4
  */
5
5
  export const RUNTIME_ASSET_VERSION = "0.3.89-completion-proof-v1";
6
- export const V010_RUNTIME_ASSET_VERSION = "0.13.14-mission-recovery-v1";
6
+ export const V010_RUNTIME_ASSET_VERSION = "0.13.15-native-identity-v1";
7
7
  export const CODEX_SKILL_ASSET_VERSION = "0.13.11-codex-skill-v2";
@@ -266,17 +266,21 @@ export function createProfiledPlugin(profile, assetVersion) {
266
266
  async function identity(id) {
267
267
  const info = payload(await session("get", { path: { id }, query: { directory: input.directory } }));
268
268
  const parent = record(info) && typeof info.parentID === "string" ? info.parentID : undefined;
269
- let agent = selected.get(id);
269
+ // Native session identity survives reload; a completion's metadata.agent is its
270
+ // child author, not a selection of the receiving session's agent.
271
+ let agent = selected.get(id) ?? (record(info) && typeof info.agent === "string" ? info.agent : undefined);
270
272
  if (agent === undefined) {
271
273
  const history = await messages(id);
272
274
  for (const message of [...history].reverse()) {
275
+ if (Array.isArray(message.parts) && message.parts.length > 0 &&
276
+ message.parts.every(part => record(part) && part.synthetic === true))
277
+ continue;
273
278
  const metadata = record(message.info) ? message.info : message;
274
279
  if (metadata.role === "user" && typeof metadata.agent === "string") {
275
280
  agent = metadata.agent;
276
281
  break;
277
282
  }
278
283
  }
279
- agent ??= record(info) && typeof info.agent === "string" ? info.agent : undefined;
280
284
  }
281
285
  return { role: canonicalAgent(profile, agent), ...(parent === undefined ? {} : { parent }) };
282
286
  }
package/dist/plugin/v2.js CHANGED
@@ -147,7 +147,9 @@ function legacyClient(context) {
147
147
  active: async () => ({ data: await (context.session.active ? context.session.active() : active()) }),
148
148
  get: async (request) => {
149
149
  const id = sessionID(request);
150
- return { data: id === undefined ? undefined : await context.session.get({ sessionID: id }) };
150
+ const info = id === undefined ? undefined : await context.session.get({ sessionID: id });
151
+ // The native correction alias is still this same Reviewer's logical role.
152
+ return { data: record(info) && correctionAgent(info.agent) ? { ...info, agent: "dog-reviewer-v010" } : info };
151
153
  },
152
154
  messages: async (request) => {
153
155
  const id = sessionID(request);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sortie-dogs",
3
- "version": "0.13.14",
3
+ "version": "0.13.15",
4
4
  "description": "Bounded agent harness and validated orchestration loop plugin for OpenCode",
5
5
  "keywords": [
6
6
  "opencode",