@polderlabs/bizar-omp 0.7.7 → 0.7.9

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.
Files changed (73) hide show
  1. package/README.md +15 -11
  2. package/dist/cli/agents-ink.d.ts +9 -0
  3. package/dist/cli/agents-ink.d.ts.map +1 -1
  4. package/dist/cli/agents-ink.js +57 -15
  5. package/dist/cli/agents-ink.js.map +1 -1
  6. package/dist/cli/agents.d.ts +1 -1
  7. package/dist/cli/agents.d.ts.map +1 -1
  8. package/dist/cli/agents.js +23 -4
  9. package/dist/cli/agents.js.map +1 -1
  10. package/dist/cli/doctor.d.ts +4 -4
  11. package/dist/cli/omb-update.d.ts.map +1 -1
  12. package/dist/cli/omb-update.js +17 -2
  13. package/dist/cli/omb-update.js.map +1 -1
  14. package/dist/core/acceptance.d.ts.map +1 -1
  15. package/dist/core/acceptance.js +22 -2
  16. package/dist/core/acceptance.js.map +1 -1
  17. package/dist/core/transitions.d.ts.map +1 -1
  18. package/dist/core/transitions.js +17 -1
  19. package/dist/core/transitions.js.map +1 -1
  20. package/dist/core/types.d.ts +13 -0
  21. package/dist/core/types.d.ts.map +1 -1
  22. package/dist/core/types.js +15 -1
  23. package/dist/core/types.js.map +1 -1
  24. package/dist/extension.d.ts +2 -0
  25. package/dist/extension.d.ts.map +1 -1
  26. package/dist/extension.js +220 -79
  27. package/dist/extension.js.map +1 -1
  28. package/dist/omp/compatibility.d.ts +5 -5
  29. package/dist/omp/compatibility.d.ts.map +1 -1
  30. package/dist/omp/compatibility.js +2 -2
  31. package/dist/omp/compatibility.js.map +1 -1
  32. package/dist/omp/daemon-service.d.ts +2 -0
  33. package/dist/omp/daemon-service.d.ts.map +1 -1
  34. package/dist/omp/daemon-service.js +38 -7
  35. package/dist/omp/daemon-service.js.map +1 -1
  36. package/dist/omp/lifecycle.d.ts +1 -1
  37. package/dist/omp/lifecycle.d.ts.map +1 -1
  38. package/dist/omp/lifecycle.js +2 -1
  39. package/dist/omp/lifecycle.js.map +1 -1
  40. package/dist/omp/omb-sessions.d.ts +54 -5
  41. package/dist/omp/omb-sessions.d.ts.map +1 -1
  42. package/dist/omp/omb-sessions.js +167 -22
  43. package/dist/omp/omb-sessions.js.map +1 -1
  44. package/dist/omp/omb-settings.d.ts +9 -0
  45. package/dist/omp/omb-settings.d.ts.map +1 -1
  46. package/dist/omp/omb-settings.js +7 -0
  47. package/dist/omp/omb-settings.js.map +1 -1
  48. package/dist/omp/terminal-title.d.ts +70 -0
  49. package/dist/omp/terminal-title.d.ts.map +1 -0
  50. package/dist/omp/terminal-title.js +123 -0
  51. package/dist/omp/terminal-title.js.map +1 -0
  52. package/dist/omp/tmux.d.ts +69 -0
  53. package/dist/omp/tmux.d.ts.map +1 -1
  54. package/dist/omp/tmux.js +193 -14
  55. package/dist/omp/tmux.js.map +1 -1
  56. package/dist/storage/journal.d.ts +1 -1
  57. package/dist/storage/journal.d.ts.map +1 -1
  58. package/dist/storage/journal.js +2 -1
  59. package/dist/storage/journal.js.map +1 -1
  60. package/dist/tools/workflow.d.ts.map +1 -1
  61. package/dist/tools/workflow.js +11 -1
  62. package/dist/tools/workflow.js.map +1 -1
  63. package/docs/compatibility/baseline.json +8 -7
  64. package/docs/compatibility/supported-surfaces.json +2 -1
  65. package/docs/development/ci-release-implementation-guide.md +3 -3
  66. package/docs/releases/0.7.8.md +21 -0
  67. package/docs/releases/0.7.9.md +18 -0
  68. package/docs/releases/npm-publishing.md +12 -12
  69. package/docs/releases/support-matrix.md +1 -1
  70. package/package.json +1 -1
  71. package/skills/omp-native-development/SKILL.md +1 -1
  72. package/skills/omp-native-development/references/accuracy-and-versioning.md +1 -1
  73. package/skills/omp-native-development/references/source-manifest.json +3 -3
@@ -15,7 +15,8 @@
15
15
  "dry-run migration"
16
16
  ],
17
17
  "qualified": [
18
- "OMP 18.4.1 / release commit 2e07c170b514df32f45b3e84cb8660c3ed86a93d",
18
+ "OMP 18.4.2 / release commit 4620bb8338e0ecace7ea237da9d5088d16068617",
19
+ "OMP 18.4.1 compatibility regression",
19
20
  "OMP 18.3.2 compatibility regression",
20
21
  "OMP 18.3.0 compatibility regression",
21
22
  "OMP 18.2.11 compatibility regression",
@@ -439,8 +439,8 @@ Before the release commit/tag exists:
439
439
 
440
440
  ```sh
441
441
  npm ci
442
- npm run check
443
- npm run verify:release-state
442
+ make check
443
+ node scripts/verify-release-state.mjs --strict-network
444
444
  ```
445
445
 
446
446
  When an OMP runtime is locally available, also run:
@@ -964,7 +964,7 @@ Add `.github/PULL_REQUEST_TEMPLATE.md` adapted from upstream OMP but Bizar-speci
964
964
 
965
965
  ## Checklist
966
966
 
967
- - [ ] `npm run check` passes
967
+ - [ ] `make check` passes
968
968
  - [ ] Changed behavior was exercised directly, not only unit-tested
969
969
  - [ ] OMP-sensitive changes ran the required native qualification
970
970
  - [ ] `[Unreleased]` changelog updated if user-facing
@@ -0,0 +1,21 @@
1
+ ## Bug Fixes
2
+
3
+ - Report a session whose turn has ended as waiting for input instead of disconnected, whether or not a client is attached; `disconnected` is now reserved for a live session with no journal evidence either way.
4
+ - Read live activity from the journal the host actually writes. A pane started with OMP's own project directory was previously matched against Bizar's private directory, so a working session reported a stale journal — and with no link manifest present, reported `disconnected`.
5
+ - Scope a host's activity to the native session generation it is bound to, so a session never reports another session's work in the same shared project directory.
6
+ - Allow an explicit `/resume` inside a host. The target journal is probed for a competing writer, then this host's tmux generation binding and journal manifest are moved together so a later dead-pane respawn resumes the conversation actually selected. Any step that cannot be completed leaves the host deliberately unrecoverable rather than still bound to the conversation it left.
7
+ - Do not hold a journal lease across the `session_before_switch` → `session_switch` gap. OMP 18.4.2 emits no cancel or failure event for a switch that does not commit, so a retained lease locked the target journal until shutdown. The preflight is now a point-in-time probe and exclusivity is re-established on the confirmed switch, acquiring the new journal before releasing the old one.
8
+ - Stop the agents hub from blanking every row when the multiplexer cannot answer a session scan. An unanswered scan is no longer applied as "no sessions exist": the last confirmed list is kept and the hub is marked degraded. Opening the hub on a host whose multiplexer is down now reports that instead of showing an empty list.
9
+ - Name the managed run and the way to release it when a managed workflow refuses a tool call. A run left mid-flight — a sleep, a kill, a Ctrl-C — previously kept every `task` call and every non-allowlisted tool blocked for the rest of the session with no in-band way out.
10
+ - Derive the managed-run gate from one shared terminal-phase list. The literal had been copied into four places and omitted `blocked`, a phase the transition table can reach; a blocked run would have looked active forever.
11
+ - Report a host whose pane is bound to a generation its journal directory no longer holds as `unknown` instead of falling back to another session's journal, which presented a stale conversation as current.
12
+
13
+ ## New Features
14
+
15
+ - Show stopped sessions in the agents hub by default and add an active/stopped/both filter (`f` in the hub, or the settings overlay), replacing the boolean that could not express "only stopped".
16
+ - Continue a stopped session from the hub: Enter on a stopped row restarts a host bound to that exact conversation and attaches to it, instead of failing because nothing was left to attach to. A legacy private journal is migrated into OMP's project directory first, verified against the selected session's native id.
17
+ - Set the terminal tab title to the Bizar session name, with a spinner while the agent works and a settled title when it stops.
18
+
19
+ ## Compatibility
20
+
21
+ - OMP compatibility bump: 18.4.1 → 18.4.2 (commit 4620bb8).
@@ -0,0 +1,18 @@
1
+ ## Bug Fixes
2
+
3
+ - Keep the changelog newest-first across consecutive releases. Promotion left the fresh `[Unreleased]` heading below the release it had just promoted, so the following release was inserted underneath its predecessor; 0.7.8 shipped below 0.7.7 as a result. `[Unreleased]` now sits directly beneath the title.
4
+ - Admit plain acceptance-criterion strings as deterministic criteria bound to the run's own checks. They were admitted as `operator-judgment`, which acceptance skipped outright, so the common default gated nothing. `operator-judgment` still requires an operator receipt, and only when a caller asks for it by supplying `criteria`.
5
+ - Require an operator to authorize an objective amendment that removes a criterion or check spec. The contract seal prevented silent mutation but not the model explicitly dropping what it was measured against.
6
+ - Take the operator identity on a receipt from the environment rather than the call arguments, and refuse to issue one when no operator is configured. A model-callable tool that supplied its own `operatorId` was a content checksum, not operator authorization.
7
+ - Admit OMP batch `task` calls under a managed run. Bizar configures `task.batch=true`, so a valid call carries `tasks: [{ agent, isolated }]` with no top-level fields; the gate read only the flat shape and rejected every batch call.
8
+ - Match the managed-task agent allowlist to the packaged `agents/*.md` names. The gate used underscored spellings, so every call to a real packaged specialist was refused as non-packaged. The list is now derived from `AGENT_ROLES` instead of duplicated.
9
+ - Preserve `integrationScope` through the public `bizar_workflow start` tool. It was dropped before admission, and `integrate()` is fail-closed without one, making controlled integration unreachable from the public tool.
10
+ - Constrain `omb update` to the newest *qualified* OMP version. It previously installed whatever npm reported as latest, moving a working installation onto an unqualified runtime, and the plugin refresh then bypassed the compatibility guard for exactly that case.
11
+ - Stop `createOmbSession()` clearing a session tombstone before a host is proven. A failed create un-hid a journal the operator had deleted.
12
+ - Enforce the dashboard request-body deadline. Body size was bounded but duration was not, and the unauthenticated `/dash/session` exchange read the body before any token check, so a local client could hold a socket open indefinitely. An abandoned read now answers 408.
13
+ - Support Windows terminal launch for dashboard and tray attach. `openCommandInTerminal` was POSIX-only and forced `sh -lc`, so "open terminal" could never attach on a host OMB otherwise supports through psmux. Terminal selection is now platform-aware and testable off-platform.
14
+
15
+ ## Documentation
16
+
17
+ - Replace the `npm run check` gate reference in `AGENTS.md` and the active CI guide with `make check`, which is the command that exists.
18
+ - Refresh the npm/GitHub Packages publishing guide to match CI: publication uses the built-in `github.token` and npm Trusted Publishing, not a `RELEASE_USER_TOKEN`, and a registry read immediately after publish can still report the previous version.
@@ -16,14 +16,12 @@ Configure the package's npm **Trusted Publisher** as:
16
16
  The repository is linked through `package.json#repository`. npm remains the public distribution registry. The unified `.github/workflows/ci.yml` release pipeline uses GitHub-hosted runners, a policy-selected Node line, npm `>=11.5.1`, and `id-token: write` in the npm publication job; no npm token secret is required. Do not use `npm whoami` to test OIDC: token exchange happens during publication.
17
17
 
18
18
  The same validated tarball is also published to GitHub Packages as
19
- `@polderlabs/bizar-omp`. Its workflow uses a user-authorized token so the
20
- authenticated account owns the publication. Configure the `RELEASE_USER_TOKEN`
21
- Actions secret with repository contents, pull request, and package write access,
22
- and a matching `RELEASE_USER_LOGIN` repository variable. The workflow verifies
23
- the account before publishing and fails closed when either is absent or
24
- mismatched. GitHub Packages consumers outside Actions need a Personal Access
25
- Token (classic) with package read access and a scoped npm registry entry such
26
- as:
19
+ `@polderlabs/bizar-omp`. That job authenticates with the built-in
20
+ `github.token` (`NODE_AUTH_TOKEN`), not a user-authorized secret: the
21
+ publication is attributed to the workflow run, and no `RELEASE_USER_TOKEN` or
22
+ `RELEASE_USER_LOGIN` is configured or required. GitHub Packages consumers
23
+ outside Actions need a Personal Access Token (classic) with package read access
24
+ and a scoped npm registry entry such as:
27
25
 
28
26
  ```ini
29
27
  @polderlabs:registry=https://npm.pkg.github.com
@@ -35,15 +33,17 @@ that the first package is linked to this repository and inherits its access
35
33
  permissions; organization policy can disable automatic inheritance. Do not
36
34
  change package visibility as part of an ordinary release.
37
35
 
38
- Release procedure: the operator runs `npm run release -- <kind|version>` locally (e.g. `patch`, `minor`, `0.7.1`). The local orchestrator (`scripts/release.mjs`) atomically increments `package.json`, updates the lockfile, updates `docs/compatibility/baseline.json -> package.version`, promotes the CHANGELOG `[Unreleased]` section, commits `chore: bump version to <version>`, and pushes `main` + `refs/tags/v<version>` atomically. CI never creates tags. The release pipeline discovers the tag at HEAD on `main`, runs strict release preflight, tests and qualifies one packed artifact, then publishes it to npm through Trusted Publishing and to GitHub Packages with the user-authorized token. It creates the GitHub release under that same user account. GitHub writes fail closed unless the token matches `RELEASE_USER_LOGIN`. Each publisher refuses to replace an existing version with different integrity. A partial registry failure is retried by rerunning CI after correcting the cause; the successful registry's immutable version is verified and retained. Published versions cannot be overwritten.
36
+ Release procedure: the operator runs `npm run release -- <kind|version>` locally (e.g. `patch`, `minor`, `0.7.1`). The local orchestrator (`scripts/release.mjs`) atomically increments `package.json`, updates the lockfile, updates `docs/compatibility/baseline.json -> package.version`, promotes the CHANGELOG `[Unreleased]` section, commits `chore: bump version to <version>`, and pushes `main` + `refs/tags/v<version>` atomically. CI never creates tags. The release pipeline discovers the tag at HEAD on `main`, runs strict release preflight, tests and qualifies one packed artifact, then publishes it to npm through Trusted Publishing and to GitHub Packages with the built-in token. It creates the GitHub Release with the built-in `GH_TOKEN`. No user-authorized token is involved in any write path.
39
37
 
40
38
  GitHub Release notes start with categorized highlights from `CHANGELOG.md`,
41
39
  then list every merged PR since the previous release tag with a full compare
42
40
  link. PR labels map to categories in `.github/release.yml`.
43
41
 
44
- After npm accepts a publish, its registry can take several minutes to expose the
45
- package integrity. The npm verification step polls for up to five minutes and
46
- then compares the registry artifact with the exact CI tarball.
42
+ After npm accepts a publish, its registry can take a short time to expose the
43
+ new version. A registry read immediately after the job can still report the
44
+ previous version; that is propagation lag, not a failed publish. The
45
+ publication validation gate compares the registry artifact with the exact CI
46
+ tarball once it is visible.
47
47
 
48
48
  The repository is private, so npm provenance is disabled; OIDC authentication still works. Do not advertise provenance for this release. If repository visibility changes, reevaluate provenance separately.
49
49
 
@@ -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.4.1 at release commit `2e07c170b514df32f45b3e84cb8660c3ed86a93d`; 18.3.2 remains regression-qualified |
7
+ | OMP | 18.4.2 at release commit `4620bb8338e0ecace7ea237da9d5088d16068617`; 18.4.1 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.7.7",
3
+ "version": "0.7.9",
4
4
  "description": "Native oh-my-pi engineering workflow extension with typed evidence and serialized integration.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -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.4.1 at commit `2e07c170b514df32f45b3e84cb8660c3ed86a93d`. Earlier accepted runtimes are listed in the repository compatibility baseline; this bundled research corpus retains source fingerprints for v18.2.6, v18.2.5, and v18.2.4 only. The bundled research corpus remains pinned to main commit `dbf3afad4894bde827d90f965e77b3fe1c5a95e5`, dated 2026-09-17, and must not be presented as the current release source.
12
+ Read [accuracy-and-versioning.md](references/accuracy-and-versioning.md) first. The current qualification target is `can1357/oh-my-pi` v18.4.2 at commit `4620bb8338e0ecace7ea237da9d5088d16068617`. Earlier accepted runtimes are listed in the repository compatibility baseline; this bundled research corpus retains source fingerprints for v18.2.6, v18.2.5, and v18.2.4 only. 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.4.1@2e07c170b514df32f45b3e84cb8660c3ed86a93d`, npm integrity `sha512-g5UmsZRcgIBKVIGathP+SpUNupGR3BEWc9/6GC4zcNQKT93LLc7d11iagt5otU6RPNSIVOalmLyvnvQq75gYgA==`.
21
+ Current qualification target: `v18.4.2@4620bb8338e0ecace7ea237da9d5088d16068617`, npm integrity `sha512-1NA/75YYLQmQl7U0nnArFPlOgitK7Iv/kyDxzAG05wGkrA5a/v01i0w5UEcvIpRxRVtLVjExmel/zzv88/WZxQ==`.
22
22
  Earlier accepted runtimes are listed in `docs/compatibility/baseline.json`. This pinned research corpus records source fingerprints for `v18.2.6@78b753124d11f8dd3ae73e2524125890ff7c977e`, `v18.2.5@37273117021129e96bd05d8277b140ec3fd61990`, and `v18.2.4@1c0303b1f2ec515cbf4b44a9a49d68a029531aac`; it does not provide source fingerprints for every accepted runtime.
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.4.1",
9
- "commit": "2e07c170b514df32f45b3e84cb8660c3ed86a93d",
10
- "npm_integrity": "sha512-g5UmsZRcgIBKVIGathP+SpUNupGR3BEWc9/6GC4zcNQKT93LLc7d11iagt5otU6RPNSIVOalmLyvnvQq75gYgA==",
8
+ "tag": "v18.4.2",
9
+ "commit": "4620bb8338e0ecace7ea237da9d5088d16068617",
10
+ "npm_integrity": "sha512-1NA/75YYLQmQl7U0nnArFPlOgitK7Iv/kyDxzAG05wGkrA5a/v01i0w5UEcvIpRxRVtLVjExmel/zzv88/WZxQ==",
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": {