dev-flow-codex 0.5.0 → 0.5.1

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
@@ -21,7 +21,7 @@ dev-flow-codex setup
21
21
  GitHub Release `v0.4.0` 与 registry 回读证据为准。
22
22
 
23
23
  当前公开支持 native macOS arm64、Node.js `>=24` 和 Codex
24
- `>=0.147.0 <0.148.0`。没有 Linux、Windows、Intel Mac、Rosetta 或 DeepSeek 产品支持声明。
24
+ `>=0.147.0`。没有 Linux、Windows、Intel Mac、Rosetta 或 DeepSeek 产品支持声明。
25
25
 
26
26
  ## Closed package
27
27
 
@@ -87,17 +87,17 @@ does not select this Skill;wrong plugin namespace、wrong Skill base name 或
87
87
  This does not disable ordinary Codex repository tools. The package does not make or claim selector-bound MCP visibility or authorization。
88
88
 
89
89
  被接纳的请求必须只涉及一个现有 Git repository,并先调用 `dev_flow_server_info({})`。当前
90
- source-local Contract 0.2 handshake 必须返回:
90
+ source-local current contract handshake 必须返回:
91
91
 
92
92
  ```text
93
- schema_version = 2
94
- core_limits_version = 0.2
95
- process = standard-development@1
93
+ process = standard-development
94
+ definition_digest = exact current process content
96
95
  method_profiles = plain, spec-kit, openspec
97
96
  exact six-tool catalog
98
97
  ```
99
98
 
100
- 不完整、不同版本或不同顺序的 catalog 会停止请求。公开工具为:
99
+ 不完整或不同顺序的 catalog、schema、process digest 会停止请求。Core 产品版本从实际 bundled
100
+ executable 读取,不要求与 Codex package version 相等。公开工具为:
101
101
 
102
102
  ```text
103
103
  dev_flow_server_info
@@ -142,10 +142,10 @@ Core 返回的五分类 Assessment 和 advice。Probe 零写入;只有显式 r
142
142
  Core-derived transition 或创建一次 blocker。Adapter 不判断 classification、retry safety、resume
143
143
  node 或 destination。
144
144
 
145
- ## Schema 1 unsupported guidance
145
+ ## pre-graph data unsupported guidance
146
146
 
147
- Graph package 只支持 fresh Schema 2、snapshot-v2 和精确 `standard-development@1`。遇到 Schema
148
- 1/pre-graph data 时 Core 返回 `SCHEMA_UNSUPPORTED`,且不 decode、migrate、rename、truncate、
147
+ Graph package 只支持 current SQLite layoutstrict current snapshot 和精确 `standard-development`。
148
+ 遇到 incompatible/pre-graph data 时 Core 返回 `SCHEMA_UNSUPPORTED`,且不 decode、migrate、rename、truncate、
149
149
  delete 或 reset 旧数据。不要重复启动或自动清理。
150
150
 
151
151
  用户必须明确选择一个新的绝对、canonical、usable `DEV_FLOW_DATA_DIR`,或在 Core 外部手工
@@ -158,7 +158,7 @@ archive/rename/delete 旧目录,再启动 graph Core。错误信息不回显
158
158
 
159
159
  setup/update/remove/uninstall 均保留 Core task data 和未知相邻文件,不会修改目标 repository 或
160
160
  Git。remove 应先证明 plugin/marketplace absence,再单独执行 package-manager uninstall。重新安装
161
- 兼容的 graph artifact 可以从同一 Schema 2 数据目录恢复任务;没有任何 Schema 1 reader 或
161
+ 兼容的 graph artifact 可以从同一 current SQLite format 数据目录恢复任务;没有任何 pre-graph data reader 或
162
162
  conversion path。
163
163
 
164
164
  ## Closed node payload construction
@@ -58,9 +58,6 @@ export async function runCLI(arguments_, dependencies = {}) {
58
58
  environment,
59
59
  currentDirectory: paths.packageRoot,
60
60
  });
61
- if (coreVersion !== packageVersion) {
62
- throw new Error(`package version ${packageVersion} does not match Core version ${coreVersion}`);
63
- }
64
61
  stdout.write(`dev-flow-codex ${packageVersion} (core ${coreVersion})\n`);
65
62
  return { code: 0, signal: null };
66
63
  }
package/lib/lifecycle.mjs CHANGED
@@ -20,7 +20,7 @@ import { containedPath } from "./paths.mjs";
20
20
 
21
21
  const execFile = promisify(execFileCallback);
22
22
 
23
- export const CODEX_COMPATIBILITY_RANGE = ">=0.147.0 <0.148.0";
23
+ export const CODEX_COMPATIBILITY_RANGE = ">=0.147.0";
24
24
  export const MARKETPLACE_NAME = "dev-flow-local";
25
25
  export const PLUGIN_NAME = "dev-flow-codex";
26
26
  export const PLUGIN_SELECTOR = `${PLUGIN_NAME}@${MARKETPLACE_NAME}`;
@@ -293,9 +293,6 @@ async function preflightSetup({ paths, packageVersion, codexExecutable, environm
293
293
  environment,
294
294
  currentDirectory: paths.packageRoot,
295
295
  });
296
- if (coreVersion !== packageVersion) {
297
- throw new Error(`packaged Core version ${coreVersion} does not match package version ${packageVersion}`);
298
- }
299
296
  const codexVersion = await inspectCodexVersion(codexExecutable, {
300
297
  environment,
301
298
  currentDirectory: paths.packageRoot,
@@ -473,7 +470,6 @@ function assertRegistrationAbsent(state, paths) {
473
470
  function assertRemovalReceipt(receipt, paths, packageVersion) {
474
471
  const matches =
475
472
  receipt.product.version === packageVersion &&
476
- receipt.product.core_version === packageVersion &&
477
473
  receipt.registration.marketplace_name === MARKETPLACE_NAME &&
478
474
  receipt.registration.marketplace_root === paths.marketplaceRoot &&
479
475
  receipt.registration.plugin_name === PLUGIN_NAME &&
@@ -739,7 +735,6 @@ function createReceipt({
739
735
  installedAt,
740
736
  }) {
741
737
  return validateReceipt({
742
- schema_version: 3,
743
738
  product: {
744
739
  name: PLUGIN_NAME,
745
740
  version: packageVersion,
@@ -822,29 +817,26 @@ async function readJSON(path, label) {
822
817
  }
823
818
 
824
819
  export function versionSatisfiesRange(version, range = CODEX_COMPATIBILITY_RANGE) {
825
- const match = /^>=(\S+)\s+<(\S+)$/.exec(range);
820
+ const match = /^>=(\S+)$/.exec(range);
826
821
  if (!match) throw new Error(`unsupported compatibility range ${JSON.stringify(range)}`);
827
822
  const candidate = parseSemver(version, "Codex version");
828
823
  const minimum = parseSemver(match[1], "compatibility minimum");
829
- const maximum = parseSemver(match[2], "compatibility maximum");
830
- return compareSemver(candidate, minimum) >= 0 && compareSemver(candidate, maximum) < 0;
824
+ return compareSemver(candidate, minimum) >= 0;
831
825
  }
832
826
 
833
827
  export function validateReceipt(receipt, { compatibilityRange = CODEX_COMPATIBILITY_RANGE } = {}) {
834
828
  assertObject(receipt, "registration receipt");
835
829
  assertExactKeys(
836
830
  receipt,
837
- ["schema_version", "product", "host", "registration", "paths", "resource_digests", "installed_at"],
831
+ ["product", "host", "registration", "paths", "resource_digests", "installed_at"],
838
832
  "registration receipt",
839
833
  );
840
- if (receipt.schema_version !== 3) throw new Error("registration receipt schema_version must equal 3");
841
834
 
842
835
  assertObject(receipt.product, "product");
843
836
  assertExactKeys(receipt.product, ["name", "version", "core_version", "codex_compatibility"], "product");
844
837
  assertEqual(receipt.product.name, "dev-flow-codex", "product.name");
845
838
  parseSemver(receipt.product.version, "product.version");
846
839
  parseSemver(receipt.product.core_version, "product.core_version");
847
- assertEqual(receipt.product.core_version, receipt.product.version, "product Core version");
848
840
  assertEqual(receipt.product.codex_compatibility, compatibilityRange, "product compatibility range");
849
841
 
850
842
  assertObject(receipt.host, "host");
@@ -1005,7 +997,6 @@ function assertCompatibleReceiptUpgrade(previousReceipt, currentReceipt) {
1005
997
 
1006
998
  function upgradeOwnershipProjection(receipt) {
1007
999
  return {
1008
- schema_version: receipt.schema_version,
1009
1000
  product: {
1010
1001
  name: receipt.product.name,
1011
1002
  codex_compatibility: receipt.product.codex_compatibility,
@@ -1022,7 +1013,6 @@ function upgradeOwnershipProjection(receipt) {
1022
1013
 
1023
1014
  function ownershipProjection(receipt) {
1024
1015
  return {
1025
- schema_version: receipt.schema_version,
1026
1016
  product: receipt.product,
1027
1017
  host: receipt.host,
1028
1018
  registration: receipt.registration,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-flow-codex",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "private": false,
5
5
  "description": "Explicit-only Dev Flow integration for Codex CLI.",
6
6
  "license": "Apache-2.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-flow-codex",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Explicit-only Dev Flow integration for Codex CLI.",
5
5
  "author": {
6
6
  "name": "Dev Flow"
@@ -5,7 +5,7 @@ description: "Explicit-only Dev Flow entry point for Codex. Use only when the cu
5
5
 
6
6
  # Dev Flow
7
7
 
8
- This Skill is the Contract 0.2 Codex adapter for the shared Dev Flow Core. Core owns task state,
8
+ This Skill is the current Core contract Codex adapter for the shared Dev Flow Core. Core owns task state,
9
9
  current node, legal transitions, destinations, recovery, blockers, and terminal outcomes. The Skill
10
10
  admits one explicit request, presents a complete Core Action, renders method work, and forwards one
11
11
  closed result without keeping adapter state.
@@ -44,11 +44,10 @@ Only after admission passes, call `dev_flow_server_info({})`; it must be the fir
44
44
  call. Require one complete structured result proving:
45
45
 
46
46
  - product is exactly `dev-flow`, and Core version equals the packaged product version;
47
- - `schema_version` is exactly `2` and `core_limits_version` is exactly `0.2`;
48
47
  - transport is exactly `stdio`, health is exactly `ready`, and the supported host set contains
49
48
  `codex`;
50
- - `supported_processes` contains exactly one closed `standard-development@1` entry:
51
- `process_id` is `standard-development`, `process_version` is `1`, `definition_digest` is present
49
+ - `supported_processes` contains exactly one closed `standard-development` entry:
50
+ `process_id` is `standard-development` is `1`, `definition_digest` is present
52
51
  and canonical, and `new_task_supported` is exactly `true`;
53
52
  - `method_profiles` is exactly `plain`, `spec-kit`, `openspec` in that order;
54
53
  - the tool catalog contains exactly these six raw names, in this order:
@@ -116,7 +115,7 @@ or resumes a task. Report an ownership or contract conflict unchanged in meaning
116
115
  ## Governed action loop
117
116
 
118
117
  The inseparable Action fields are exactly `task_id`, `revision`, `action_id`, `action_kind`,
119
- `process_id`, `process_version`, `process_definition_digest`, `current_node`, `node_purpose`,
118
+ `process_id`, `process_definition_digest`, `current_node`, `node_purpose`,
120
119
  `entry_conditions`, `completion_conditions`, `allowed_effects`, `required_evidence`,
121
120
  `method_profile`, `method_steps`, `available_transitions`, `payload_contract`, `guidance`,
122
121
  `repository_binding_digest`, and `issued_at`.
@@ -247,7 +246,6 @@ Map every mutation top-level field from the same fresh Action:
247
246
  - `fresh_action.action_id` -> top-level `action_id`;
248
247
  - `fresh_action.action_kind` -> top-level `action_kind`;
249
248
  - `fresh_action.process_id` -> top-level `process_id`;
250
- - `fresh_action.process_version` -> top-level `process_version`;
251
249
  - `fresh_action.process_definition_digest` -> top-level `process_definition_digest`;
252
250
  - `fresh_action.current_node` -> top-level `source_cursor`;
253
251
  - `fresh_action.repository_binding_digest` -> top-level `repository_binding_digest`;
@@ -262,7 +260,6 @@ apply_arguments = {
262
260
  "action_id": fresh_action.action_id,
263
261
  "action_kind": fresh_action.action_kind,
264
262
  "process_id": fresh_action.process_id,
265
- "process_version": fresh_action.process_version,
266
263
  "process_definition_digest": fresh_action.process_definition_digest,
267
264
  "source_cursor": fresh_action.current_node,
268
265
  "repository_binding_digest": fresh_action.repository_binding_digest,
@@ -312,7 +309,7 @@ transport-failed instead of returning one complete structured result. Do not imm
312
309
  `dev_flow_apply_action` and do not infer the result from repository state or worktree contents.
313
310
 
314
311
  Before calling `dev_flow_apply_action`, retain the original `request_id`, `task_id`, `process_id`,
315
- `process_version`, `process_definition_digest`, `source_cursor`, `revision`, `action_id`,
312
+ `process_definition_digest`, `source_cursor`, `revision`, `action_id`,
316
313
  `action_kind`, `repository_binding_digest`, and exact closed `payload` from the same fresh action and
317
314
  the same apply dispatch. Never derive or reconstruct them from an incomplete response or partial
318
315
  output.
@@ -324,7 +321,6 @@ When all required original identity values are retained, construct exactly this
324
321
  {
325
322
  "operation_id": "<original apply request_id>",
326
323
  "process_id": "standard-development",
327
- "process_version": 1,
328
324
  "process_definition_digest": "<original process definition digest>",
329
325
  "source_cursor": "<original source cursor>",
330
326
  "expected_revision": 3,
@@ -1,6 +1,6 @@
1
1
  # Codex Method Profile Rendering Reference
2
2
 
3
- This is the closed Codex Host-rendering reference for Core Contract 0.2 semantic method steps. Read
3
+ This is the closed Codex Host-rendering reference for current Core contract semantic method steps. Read
4
4
  it only after Core returns a complete current Action. It explains how Codex may perform the work; it
5
5
  is not a process definition or a second task cursor.
6
6
 
@@ -1,4 +1,4 @@
1
- # Core Contract 0.2 Node Payload Construction
1
+ # current Core contract Node Payload Construction
2
2
 
3
3
  This reference helps the Codex Adapter construct the one closed payload branch returned by the
4
4
  current Core Action. It is not a process definition, transition table, cursor, or authority. The
Binary file