@polderlabs/bizar-omp 0.6.6 → 0.6.8
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 +8 -8
- package/dist/cli/agents.d.ts +1 -1
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +1 -1
- package/dist/cli/doctor.d.ts +4 -4
- package/dist/cli/omb-commands.js +1 -1
- package/dist/cli/omb-commands.js.map +1 -1
- package/dist/cli/omb-update.d.ts +5 -0
- package/dist/cli/omb-update.d.ts.map +1 -1
- package/dist/cli/omb-update.js +14 -5
- package/dist/cli/omb-update.js.map +1 -1
- package/dist/cli/update-ink.d.ts +51 -0
- package/dist/cli/update-ink.d.ts.map +1 -0
- package/dist/cli/update-ink.js +185 -0
- package/dist/cli/update-ink.js.map +1 -0
- package/dist/core/acceptance.d.ts.map +1 -1
- package/dist/core/acceptance.js +2 -1
- package/dist/core/acceptance.js.map +1 -1
- package/dist/core/recovery.d.ts.map +1 -1
- package/dist/core/recovery.js +47 -3
- package/dist/core/recovery.js.map +1 -1
- package/dist/core/transitions.d.ts +3 -2
- package/dist/core/transitions.d.ts.map +1 -1
- package/dist/core/transitions.js +34 -8
- package/dist/core/transitions.js.map +1 -1
- package/dist/core/types.d.ts +32 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/extension.d.ts +14 -3
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +50 -23
- package/dist/extension.js.map +1 -1
- package/dist/omp/compatibility.d.ts +5 -5
- package/dist/omp/compatibility.d.ts.map +1 -1
- package/dist/omp/compatibility.js +2 -2
- package/dist/omp/compatibility.js.map +1 -1
- package/dist/omp/daemon-service.d.ts.map +1 -1
- package/dist/omp/daemon-service.js +116 -2
- package/dist/omp/daemon-service.js.map +1 -1
- package/dist/omp/dashboard-html.d.ts.map +1 -1
- package/dist/omp/dashboard-html.js +70 -3
- package/dist/omp/dashboard-html.js.map +1 -1
- package/dist/omp/dispatch-admission.d.ts +4 -1
- package/dist/omp/dispatch-admission.d.ts.map +1 -1
- package/dist/omp/dispatch-admission.js +2 -2
- package/dist/omp/dispatch-admission.js.map +1 -1
- package/dist/omp/omb-sessions.d.ts +9 -0
- package/dist/omp/omb-sessions.d.ts.map +1 -1
- package/dist/omp/omb-sessions.js +16 -8
- package/dist/omp/omb-sessions.js.map +1 -1
- package/dist/omp/result-reconciliation.js +1 -1
- package/dist/omp/result-reconciliation.js.map +1 -1
- package/dist/omp/rpc.d.ts +3 -1
- package/dist/omp/rpc.d.ts.map +1 -1
- package/dist/services/candidate-verify.d.ts +35 -0
- package/dist/services/candidate-verify.d.ts.map +1 -0
- package/dist/services/candidate-verify.js +138 -0
- package/dist/services/candidate-verify.js.map +1 -0
- package/dist/storage/journal.d.ts.map +1 -1
- package/dist/storage/journal.js +6 -21
- package/dist/storage/journal.js.map +1 -1
- package/dist/storage/lease.d.ts +16 -0
- package/dist/storage/lease.d.ts.map +1 -0
- package/dist/storage/lease.js +153 -0
- package/dist/storage/lease.js.map +1 -0
- package/dist/storage/repository-identity.d.ts.map +1 -1
- package/dist/storage/repository-identity.js +1 -0
- package/dist/storage/repository-identity.js.map +1 -1
- package/dist/tools/integrate.d.ts.map +1 -1
- package/dist/tools/integrate.js +52 -23
- package/dist/tools/integrate.js.map +1 -1
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +57 -14
- package/dist/tools/verify.js.map +1 -1
- package/dist/tools/workflow.d.ts +12 -2
- package/dist/tools/workflow.d.ts.map +1 -1
- package/dist/tools/workflow.js +39 -6
- package/dist/tools/workflow.js.map +1 -1
- package/docs/compatibility/baseline.json +9 -8
- package/docs/compatibility/supported-surfaces.json +2 -1
- package/docs/releases/0.6.6.md +3 -2
- package/docs/releases/0.6.7.md +29 -0
- package/docs/releases/0.6.8.md +11 -0
- package/docs/releases/native-stable.md +1 -1
- package/docs/releases/npm-publishing.md +1 -1
- package/docs/releases/support-matrix.md +1 -1
- package/package.json +2 -2
- package/skills/omp-native-development/SKILL.md +1 -1
- package/skills/omp-native-development/references/accuracy-and-versioning.md +1 -1
- package/skills/omp-native-development/references/source-manifest.json +3 -3
package/dist/tools/workflow.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import type { WorkItem } from "../core/types.js";
|
|
2
2
|
import type { SessionBinding } from "../omp/lifecycle.js";
|
|
3
|
-
export type WorkflowAction = "start" | "status" | "transition" | "add-work" | "accept-work" | "complete" | "cancel" | "next";
|
|
3
|
+
export type WorkflowAction = "start" | "status" | "transition" | "add-work" | "accept-work" | "complete" | "cancel" | "next" | "amend-objective";
|
|
4
4
|
export declare function runWorkflow(binding: SessionBinding, action: WorkflowAction, params: Record<string, unknown>): import("../core/types.js").StateSnapshot | WorkItem | import("../core/types.js").WorkflowRun | {
|
|
5
5
|
action: "start";
|
|
6
6
|
run: import("../core/types.js").WorkflowRun;
|
|
7
7
|
decision: import("../core/types.js").RouteDecision;
|
|
8
|
-
} |
|
|
8
|
+
} | {
|
|
9
|
+
workItemId: string;
|
|
10
|
+
workRevision: number;
|
|
11
|
+
dispatchId: string;
|
|
12
|
+
candidateId: string;
|
|
13
|
+
candidateTree: string;
|
|
14
|
+
evidenceIds: string[];
|
|
15
|
+
checkSpecHashes: string[];
|
|
16
|
+
policyRevision: string;
|
|
17
|
+
targetDigest: string;
|
|
18
|
+
} | undefined;
|
|
9
19
|
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/tools/workflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/tools/workflow.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAqB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAEjJ,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;cAwE3G"}
|
package/dist/tools/workflow.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readyWorkItems } from "../services/readiness.js";
|
|
2
|
+
import { acceptWorkItem, addWorkItem, completeRun, freezeObjective, transition } from "../core/transitions.js";
|
|
2
3
|
import { requireFreshEvidence } from "../core/evidence.js";
|
|
3
4
|
import { classifyRoute } from "../core/policies.js";
|
|
4
5
|
import { ContractError } from "../core/errors.js";
|
|
@@ -26,6 +27,20 @@ export function runWorkflow(binding, action, params) {
|
|
|
26
27
|
binding.journal.append(result.event, `transition:${state.run.runId}:${state.run.revision}:${to}`, state.revision);
|
|
27
28
|
return result.run;
|
|
28
29
|
}
|
|
30
|
+
if (action === "amend-objective") {
|
|
31
|
+
const proposed = params.objective;
|
|
32
|
+
const objective = freezeObjective(proposed);
|
|
33
|
+
const reason = String(params.reason ?? "").trim();
|
|
34
|
+
const by = params.by === "check-spec" ? "check-spec" : "criterion";
|
|
35
|
+
if (!reason)
|
|
36
|
+
throw new ContractError("A reason is required to amend the objective");
|
|
37
|
+
if (!objective || !objective.objective.trim() || objective.acceptanceCriteria.length === 0)
|
|
38
|
+
throw new ContractError("A complete amended objective is required");
|
|
39
|
+
const existing = by === "check-spec" ? state.run.objective.checkSpecs?.map(spec => spec.id) ?? state.run.objective.verificationPlan : state.run.objective.criteria?.map(criterion => criterion.id) ?? [];
|
|
40
|
+
const amended = by === "check-spec" ? objective.checkSpecs?.map(spec => spec.id) ?? objective.verificationPlan : objective.criteria?.map(criterion => criterion.id) ?? [];
|
|
41
|
+
binding.journal.append({ type: "objective.amended", runId: state.run.runId, objective, by, added: amended.filter(id => !existing.includes(id)), removed: existing.filter(id => !amended.includes(id)), reason }, `objective-amended:${state.run.runId}:${state.run.revision}`, state.revision);
|
|
42
|
+
return binding.journal.snapshot().run;
|
|
43
|
+
}
|
|
29
44
|
if (action === "cancel") {
|
|
30
45
|
const reason = String(params.reason ?? "operator cancellation");
|
|
31
46
|
binding.journal.append({ type: "run.cancelled", runId: state.run.runId, reason }, `cancel:${state.run.runId}:${state.run.revision}`, state.revision);
|
|
@@ -42,11 +57,29 @@ export function runWorkflow(binding, action, params) {
|
|
|
42
57
|
const evidenceIds = params.evidenceIds;
|
|
43
58
|
if (!Array.isArray(evidenceIds))
|
|
44
59
|
throw new ContractError("Evidence IDs are required to accept work");
|
|
45
|
-
|
|
60
|
+
const targetDigest = workingTreeDigest(binding.cwd);
|
|
61
|
+
requireFreshEvidence(state.evidence, evidenceIds, targetDigest);
|
|
62
|
+
const item = state.run.workItems.find(candidate => candidate.id === workItemId);
|
|
63
|
+
if (!item)
|
|
64
|
+
throw new ContractError(`Unknown work item: ${workItemId}`);
|
|
65
|
+
if (item.lifecycle !== "settled")
|
|
66
|
+
throw new ContractError(`Work item must be settled before acceptance (current: ${item.lifecycle})`);
|
|
67
|
+
const dispatch = state.dispatches.find(intent => intent.workItemId === workItemId);
|
|
68
|
+
if (!dispatch)
|
|
69
|
+
throw new ContractError("Work item has no recorded dispatch");
|
|
70
|
+
if (dispatch.status !== "settled")
|
|
71
|
+
throw new ContractError(`Work item dispatch must be settled (current: ${dispatch.status})`);
|
|
72
|
+
if (!dispatch.candidateId || !dispatch.candidateTree)
|
|
73
|
+
throw new ContractError("Settled dispatch must reference a candidate");
|
|
74
|
+
const checkSpecHashes = state.evidence.filter(record => evidenceIds.includes(record.id)).map(record => record.checkSpecHash ?? "");
|
|
75
|
+
if (checkSpecHashes.length !== evidenceIds.length)
|
|
76
|
+
throw new ContractError("All evidence must carry a checkSpecHash to be accepted");
|
|
46
77
|
const next = acceptWorkItem(state.run, workItemId);
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
78
|
+
const accepted = next.workItems.find(candidate => candidate.id === workItemId);
|
|
79
|
+
const receipt = { workItemId, workRevision: item.revision, dispatchId: dispatch.id, candidateId: dispatch.candidateId, candidateTree: dispatch.candidateTree, evidenceIds: [...evidenceIds], checkSpecHashes, policyRevision: state.run.objective.policyRevision ?? "admission", targetDigest };
|
|
80
|
+
binding.journal.append({ type: "work-item.upserted", runId: next.runId, item: accepted }, `work-accepted:${next.runId}:${workItemId}:${accepted.revision}`, state.revision);
|
|
81
|
+
binding.journal.append({ type: "acceptance.recorded", runId: next.runId, receipt }, `acceptance:${next.runId}:${workItemId}:${accepted.revision}`, state.revision + 1);
|
|
82
|
+
return receipt;
|
|
50
83
|
}
|
|
51
84
|
if (action === "complete") {
|
|
52
85
|
if (state.integrations.some(attempt => attempt.outcome === "unknown-outcome") || state.dispatches.some(intent => !["settled", "rejected"].includes(intent.status)))
|
|
@@ -59,7 +92,7 @@ export function runWorkflow(binding, action, params) {
|
|
|
59
92
|
return result.run;
|
|
60
93
|
}
|
|
61
94
|
if (action === "next")
|
|
62
|
-
return state.run.workItems
|
|
95
|
+
return readyWorkItems(state.run.workItems)[0] ?? null;
|
|
63
96
|
throw new ContractError(`Unknown workflow action: ${action}`);
|
|
64
97
|
}
|
|
65
98
|
//# sourceMappingURL=workflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/tools/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/tools/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"researchDate": "2026-09-
|
|
3
|
+
"researchDate": "2026-09-22",
|
|
4
4
|
"bizarReference": {
|
|
5
5
|
"repository": "../BizarHarness",
|
|
6
6
|
"commit": "e13aa131bdcd368548118464f0da1bace302e64b",
|
|
@@ -8,17 +8,18 @@
|
|
|
8
8
|
},
|
|
9
9
|
"omp": {
|
|
10
10
|
"repository": "https://github.com/can1357/oh-my-pi",
|
|
11
|
-
"testedVersion": "18.2.
|
|
12
|
-
"testedCommit": "
|
|
11
|
+
"testedVersion": "18.2.8",
|
|
12
|
+
"testedCommit": "5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c",
|
|
13
13
|
"previouslyQualifiedVersions": [
|
|
14
14
|
"18.2.4",
|
|
15
15
|
"18.2.5",
|
|
16
|
-
"18.2.6"
|
|
16
|
+
"18.2.6",
|
|
17
|
+
"18.2.7"
|
|
17
18
|
],
|
|
18
19
|
"researchedMainCommit": "dbf3afad4894bde827d90f965e77b3fe1c5a95e5",
|
|
19
|
-
"releaseVersionSeenInResearch": "18.2.
|
|
20
|
-
"releaseCommitSeenInResearch": "
|
|
21
|
-
"qualification": "The npm package was tested at 18.2.
|
|
20
|
+
"releaseVersionSeenInResearch": "18.2.8",
|
|
21
|
+
"releaseCommitSeenInResearch": "5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c",
|
|
22
|
+
"qualification": "The npm package was tested at 18.2.8 with integrity sha512-I8JXVNLJb8PfGS6mRGSKNq73+EX+R/GoaRBoMj8HTtOiwF112QXH72UP2klTwoCiR2gTsACbAIWjD0JdrR3A3g==; 18.2.7 remains a separately qualified compatibility version. Package version alone does not prove source commit identity."
|
|
22
23
|
},
|
|
23
24
|
"bun": {
|
|
24
25
|
"minimum": "1.3.14",
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
},
|
|
27
28
|
"package": {
|
|
28
29
|
"name": "@polderlabs/bizar-omp",
|
|
29
|
-
"version": "0.6.
|
|
30
|
+
"version": "0.6.8",
|
|
30
31
|
"integrity": "computed by npm pack in CI",
|
|
31
32
|
"extensionEntry": "dist/extension.js"
|
|
32
33
|
}
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"dry-run migration"
|
|
16
16
|
],
|
|
17
17
|
"qualified": [
|
|
18
|
-
"OMP 18.2.
|
|
18
|
+
"OMP 18.2.8 / release commit 5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c",
|
|
19
|
+
"OMP 18.2.7 compatibility regression",
|
|
19
20
|
"OMP 18.2.6 compatibility regression",
|
|
20
21
|
"OMP 18.2.5 compatibility regression",
|
|
21
22
|
"OMP 18.2.4 compatibility regression",
|
package/docs/releases/0.6.6.md
CHANGED
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
## Validation
|
|
10
10
|
- 230/230 tests across 28 files.
|
|
11
|
-
- `npm run typecheck`, `npm run build`, `npm run verify:package` (11 checks), `npm run verify:security` (
|
|
11
|
+
- `npm run typecheck`, `npm run build`, `npm run verify:package` (11 checks), `npm run verify:security` (276 files), `npm run pack:check` (759 files, 474.9 kB packed) all pass.
|
|
12
12
|
- Cross-process propagation verified by separate OS processes (watcher imports `dist/omp/omb-settings.js`, daemon writes via `PATCH /settings`); A logged `mouseScrolling:false` ~100 ms after B's atomic temp+rename.
|
|
13
|
+
- Packed-native gates pass against the published artifact: `npm run verify:omp` (`{"ok":true,"tools":8,"agents":8,"skills":8}`, packed install/repeat install/native discovery/profile isolation/uninstall PASS) and `npm run verify:omp:registry` (registry plugin install, native discovery, and doctor PASS at 0.6.6).
|
|
13
14
|
- Live `GET /omp/collab` smoke against an isolated daemon: `{"hosts":[]}`, 401 without token, served HTML carries `id="collab-list"`, 96 unique DOM ids with zero duplicates.
|
|
14
15
|
|
|
15
16
|
## Merged PRs
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
- #65 `feat/collab-urls` (`b3b4d56`)
|
|
19
20
|
|
|
20
21
|
## Release commit
|
|
21
|
-
`
|
|
22
|
+
`a053a5d` (release: 0.6.6) on `main`. Tag `v0.6.6` points to this commit.
|
|
22
23
|
|
|
23
24
|
## Deliberate limits in this release
|
|
24
25
|
- `omp collab link` is not called from the dashboard (it rotates access tokens and is interactive). Link minting stays in the terminal.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 0.6.7
|
|
2
|
+
|
|
3
|
+
## Highlights
|
|
4
|
+
- `omb a` is now a shortcut for `omb agents` (same behaviour, identical output). `omb hub` and `omb a` are documented as aliases in the help text.
|
|
5
|
+
- Interactive Ink progress panel for `omb update`: renders the update lifecycle (checking → downloading → installing) with stage indicators and a live outcome block. The panel fires only when stdout is a TTY and none of `--json`, `--check`, or `--dry-run` are set; text and JSON output are unchanged for scripts and CI.
|
|
6
|
+
- Dashboard SSE chat stream: the daemon now serves `GET /sessions/:name/messages/stream` as a Server-Sent Events endpoint. The dashboard consumes it with `fetch` + `body.getReader()` (not `EventSource`, which cannot send the `Authorization` header the daemon requires). A connection-status pill shows live, connecting, polling, idle, and offline states. On stream failure the dashboard degrades to the previous 1.6 s journal poll.
|
|
7
|
+
- New unauthenticated `GET /capabilities` route advertising `protocolVersion` and the `messages-stream` capability (same trust posture as `/ping`).
|
|
8
|
+
- Daemon graceful-shutdown fix: `service.close()` now runs every active SSE cleanup callback (clearing poll/keepalive timers) and calls `server.closeAllConnections?.()` before awaiting `server.close()`, so a connected streaming client can no longer hold daemon shutdown open.
|
|
9
|
+
|
|
10
|
+
## Validation
|
|
11
|
+
- 248/248 tests across 29 files.
|
|
12
|
+
- `npm run typecheck`, `npm run build`, `npm run verify:package`, `npm run verify:docs`, `npm run verify:security` (278 files) all pass.
|
|
13
|
+
- Packed-native gate `npm run verify:omp` → `{"ok":true,"tools":8,"agents":8,"skills":8}` + `Packed install, repeat install, native discovery/tools, profile isolation and uninstall: PASS`.
|
|
14
|
+
- Registry gate `npm run verify:omp:registry` → `Registry plugin install, native discovery, and doctor: PASS (@polderlabs/bizar-omp@0.6.7)`.
|
|
15
|
+
- SSE snapshot test asserts the dashboard receives the `event: snapshot` payload within 2 s of `event: ready`; close-drain test asserts `service.close()` resolves while an SSE connection is still open.
|
|
16
|
+
|
|
17
|
+
## Merged PRs
|
|
18
|
+
- #66 `2eb9989` — `feat(cli): add omb a alias for agents view`
|
|
19
|
+
- #67 `c32f259` — `feat(dashboard): stream session messages over SSE with RPC status`
|
|
20
|
+
- #69 `c52805b` — `feat(cli): add interactive Ink progress UI for omb update`
|
|
21
|
+
- #70 `37b0432` — `fix(docs): add 0.6.5 entry, correct 0.6.6 release notes`
|
|
22
|
+
|
|
23
|
+
## Release commit
|
|
24
|
+
- `7bb959b` (after merging #70, #66, #69, #67 into `a053a5d`)
|
|
25
|
+
|
|
26
|
+
## Deliberate limits
|
|
27
|
+
- `EventSource` is not used because it cannot send the `Authorization` header; the dashboard deliberately uses `fetch` + `body.getReader()`.
|
|
28
|
+
- The Ink panel is opt-in (TTY + no `--json`/`--check`/`--dry-run`); non-interactive and CI environments keep the existing text/JSON output exactly as in 0.6.6.
|
|
29
|
+
- No new runtime dependencies.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 0.6.8
|
|
2
|
+
|
|
3
|
+
## Highlights
|
|
4
|
+
|
|
5
|
+
- Qualifies the plugin against OMP 18.2.8 at release commit 5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c.
|
|
6
|
+
- Keeps OMP 18.2.7 as a separately tested compatibility version.
|
|
7
|
+
- Updates CI, release qualification, installation diagnostics, and the native-development skill fingerprint.
|
|
8
|
+
|
|
9
|
+
## Validation
|
|
10
|
+
|
|
11
|
+
The automated OMP compatibility workflow opens this release PR only after the packed native install qualification passes.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# Native release policy
|
|
2
2
|
|
|
3
|
-
The package is releasable when typecheck, tests, packed-install qualification, and documentation checks pass against the supported OMP/Bun baseline. A GitHub release is created from an exact `v<version>` tag; npm publication uses trusted publishing. See npm-publishing.md for setup and 0.6.
|
|
3
|
+
The package is releasable when typecheck, tests, packed-install qualification, and documentation checks pass against the supported OMP/Bun baseline. A GitHub release is created from an exact `v<version>` tag; npm publication uses trusted publishing. See npm-publishing.md for setup and 0.6.8.md for the current release notes. A passing release gate does not imply every native provider or worker route has been tested.
|
|
@@ -7,7 +7,7 @@ Configure the package's npm **Trusted Publisher** as:
|
|
|
7
7
|
| Field | Value |
|
|
8
8
|
| --- | --- |
|
|
9
9
|
| Provider | GitHub Actions |
|
|
10
|
-
| Organization or user | `
|
|
10
|
+
| Organization or user | `PolderLabs` |
|
|
11
11
|
| Repository | `BizarHarness-OMP` |
|
|
12
12
|
| Workflow filename | `release.yml` |
|
|
13
13
|
| Environment | Leave blank |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
| --- | --- |
|
|
5
5
|
| Node | 22.x and 24.x in CI |
|
|
6
6
|
| Bun | 1.3.14 compatibility job |
|
|
7
|
-
| OMP | 18.2.
|
|
7
|
+
| OMP | 18.2.8 at release commit `5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c`; 18.2.7 remains regression-qualified |
|
|
8
8
|
| Install | `npx --yes @polderlabs/bizar-omp setup` is the supported full install; `omp plugin install <package-spec>` is extension-only and `omp plugin link <checkout>` is for development |
|
|
9
9
|
| Security | Trusted in-process extension; native task isolation required for managed editing |
|
|
10
10
|
| Workflow state | Journal v2 validation, candidate-bound acceptance, bounded inspection/projection, and offline evidence bundles are locally qualified; v1 state remains legacy input |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polderlabs/bizar-omp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.8",
|
|
4
4
|
"description": "Native oh-my-pi engineering workflow extension with typed evidence and serialized integration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
"repository": {
|
|
52
52
|
"type": "git",
|
|
53
|
-
"url": "https://github.com/
|
|
53
|
+
"url": "https://github.com/PolderLabs/BizarHarness-OMP.git"
|
|
54
54
|
},
|
|
55
55
|
"license": "MIT",
|
|
56
56
|
"publishConfig": {
|
|
@@ -9,7 +9,7 @@ Treat this skill as a source-grounded engineering procedure, not an assertion of
|
|
|
9
9
|
|
|
10
10
|
## Establish the target before implementing
|
|
11
11
|
|
|
12
|
-
Read [accuracy-and-versioning.md](references/accuracy-and-versioning.md) first. The current qualification target is `can1357/oh-my-pi` v18.2.
|
|
12
|
+
Read [accuracy-and-versioning.md](references/accuracy-and-versioning.md) first. The current qualification target is `can1357/oh-my-pi` v18.2.8 at commit `5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c`; OMP 18.2.6, 18.2.5, and 18.2.4 remain separately tested compatibility versions. The bundled research corpus remains pinned to main commit `dbf3afad4894bde827d90f965e77b3fe1c5a95e5`, dated 2026-09-17, and must not be presented as the current release source.
|
|
13
13
|
|
|
14
14
|
Record the developer's actual OMP package version, lockfile/integrity, source commit when available, Bun version, execution mode, profile, cwd, and relevant settings. Never print secrets. Verify the exact exports and behavior of that target, rather than assuming these snapshots apply unchanged. A missing environment or unrun test means UNKNOWN or NOT RUN, never PASS.
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ Separate five kinds of statement: DOCUMENTED, SOURCE-OBSERVED, TESTED, PROPOSED
|
|
|
18
18
|
|
|
19
19
|
## Target fingerprint
|
|
20
20
|
|
|
21
|
-
Current qualification target: `v18.2.
|
|
21
|
+
Current qualification target: `v18.2.8@5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c`, npm integrity `sha512-I8JXVNLJb8PfGS6mRGSKNq73+EX+R/GoaRBoMj8HTtOiwF112QXH72UP2klTwoCiR2gTsACbAIWjD0JdrR3A3g==`.
|
|
22
22
|
Previous compatibility targets: `v18.2.6@78b753124d11f8dd3ae73e2524125890ff7c977e`, `v18.2.5@37273117021129e96bd05d8277b140ec3fd61990` and `v18.2.4@1c0303b1f2ec515cbf4b44a9a49d68a029531aac`.
|
|
23
23
|
Research source: `can1357/oh-my-pi@dbf3afad4894bde827d90f965e77b3fe1c5a95e5`; it remains a source/documentation corpus pin, not a claim about the current package release. Compare artifacts/commits, not just a semver string.
|
|
24
24
|
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
"reference_date": "2026-09-17",
|
|
6
6
|
"docs_tree_sha": "c0055f49ceb172ff6da9490cf74773e9b187966b",
|
|
7
7
|
"current_qualification": {
|
|
8
|
-
"tag": "v18.2.
|
|
9
|
-
"commit": "
|
|
10
|
-
"npm_integrity": "sha512-
|
|
8
|
+
"tag": "v18.2.8",
|
|
9
|
+
"commit": "5e0fc867f8a58dfe8812b5e99b2e7b6a0313da6c",
|
|
10
|
+
"npm_integrity": "sha512-I8JXVNLJb8PfGS6mRGSKNq73+EX+R/GoaRBoMj8HTtOiwF112QXH72UP2klTwoCiR2gTsACbAIWjD0JdrR3A3g==",
|
|
11
11
|
"qualification": "Runtime-qualified by the Bizar packed-install contract; the bundled docs/source inventory remains pinned to the research commit below."
|
|
12
12
|
},
|
|
13
13
|
"comparison_release": {
|