Skip to content

chore(release): v0.200.2 - #9

Merged
cabcookie merged 1 commit into
mainfrom
chore/release-v0.200.2
Oct 2, 2026
Merged

cabcookie merged 1 commit into
mainfrom
chore/release-v0.200.2

Conversation

@cabcookie

Copy link
Copy Markdown
Member

cargo xtask version set 0.200.2: workspace version, lockfile, docs/generated, and an empty beta feed entry (no pending fragments).

Carries #8 — @nexus-flow/mcp names its repository, so npm accepts the provenance statement that v0.200.1's staged publish was refused over (E422). The first release that should leave @nexus-flow/mcp staged on npm for the owner's 2FA approval (6j6v.c7dd).

skip-changelog: a release PR folds fragments instead of adding one.

🤖 Generated with Claude Code

https://claude.ai/code/session_018Sipejn8YQhKgngxeHpMhT

Carries #8: @nexus-flow/mcp names its repository, so npm accepts the
provenance statement that v0.200.1's staged publish was refused over.
No user-facing change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Sipejn8YQhKgngxeHpMhT
@cabcookie cabcookie added the skip-changelog Opt out of changelog-check (PRs with no user impact) label Oct 2, 2026
@cabcookie
cabcookie merged commit 24957cf into main Oct 2, 2026
13 of 14 checks passed
@cabcookie
cabcookie deleted the chore/release-v0.200.2 branch October 2, 2026 10:50
cabcookie added a commit that referenced this pull request Oct 4, 2026
…ly policy reads, named revoked-trust cause, group stop

- A build reads a user-level folder only under a NAMED development instance, never the
  production one, and an unresolvable home or instance means no folder rather than an error
  (Code #2, #3; Integrity #3, #4). Guard test: a build under the production instance does not
  see personas planted in the production folder.
- An existing but unreadable user-level folder is an error, not a silence (Integrity #5).
- `threads show`, `search`, `Engine::thread` and `Engine::search` read the merged channels
  only (`merged_channels`), so a malformed persona file cannot make a thread unreadable (Code #1).
- `nxc prime`, `Engine::prime_as` and `nxs prime --persona` resolve the catalogue once
  (`prime_with`) (Code #5).
- The revoked-trust cancel fires only on an answer not yet served, so a question delivered
  before the revocation does not cancel; two negative controls, mutation-checked (Test #1,
  Integrity #7).
- A stuck peer handover runs in its own process group, which is killed as a whole and then
  reaped by polling; the sidecar it started has a group of its own and survives; start-idempotence
  rests on the admission claim (Code #7, Integrity #6). Test drops the wall-clock assertion and
  gates `true` on unix (Test #3, #4).
- The freeze test now edits a user-level hurdle too (Code #6); loader failing cases for
  channels, a missing and an unreadable folder, a dangling member (Test #2).
- A user-level `external` admits only from workspaces the running repository trusts — tested
  through the binary and written in the guide (Integrity #2); the guide no longer calls a hiding
  "never silent" but says where it is shown (Integrity #1, the lock question filed as 6j6v.3mgy).
- Stale prose and wraps (Code #4, #9).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Sipejn8YQhKgngxeHpMhT
cabcookie added a commit that referenced this pull request Oct 4, 2026
…s (nxf 6j6v.7k58, 6j6v.dcpd) (#17)

* One persona definition for every repository: a user-level declaration folder, merged per name (nxf 6j6v.7k58)

Beside a workspace's own `.nxs-personas/`, every workspace reads the user-level folder
`<service home>/personas` — `~/.nexusflow/personas` for the installed suite and an embedding
app, `~/.nexusflow-<name>/personas` for a development build. A persona or channel the
repository declares hides the user-level one of the same name; everything else is added.

- The merge lives in `Definitions::resolve` alone, so the CLI, every `Engine` verb, `nxs prime`
  and a spawned persona's own `nxc` see one team. Duplicates are judged per folder (naming it);
  handle form and flow cycles on the merged team.
- `DeclarationSource` carries `user_path`, `from_user` and `shadowed`, all off the wire when
  there is no user-level declaration, so such a machine reads exactly as before (point 8).
- `nxc list` / `Engine::directory` stamp `origin: user` per entry and print the account
  whenever the user-level folder takes part; `nxs prime` says it under "Declarations".
- A user-level persona's session start says where its declaration lives: a relative path in a
  prompt means the repository the session runs in, never the declaration's folder.
- The freeze projects the merged catalogue, so it holds for user-level hurdles and prompts;
  proved by an edit mid-operation.
- The readers that loaded the folder directly (thread/search channel policy, list, prime) go
  through the merged catalogue now.

Proved through the real binary: two repositories without a pm file both run the user-level
pm, the commission scenario runs on it, a repository file hides it out loud; the live test
with real sessions now uses one user-level pm for both repositories (22 s, green).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Sipejn8YQhKgngxeHpMhT

* Border follow-ups from the review of PR #14: revoked trust is named, a stuck handover is stopped, the cooperative depth is written down (nxf 6j6v.dcpd)

1. When the caller's workspace stops trusting the receiver while a border thread is open, the
   receiver's newest message is unvouched and steers nothing. The caller's coordinator now
   cancels at once with "the answer arrived from <peer>, a workspace no longer trusted here"
   and wakes the commissioner, instead of "no sign of life" two hours later.
2. The depth across the border rests on the trusted coordinator's stamp — within the trust
   model (spec section 4); said where `external` and the depth guard are documented.
3. A peer handover past HANDOVER_WAIT is killed and reaped, so the long-lived service no
   longer accumulates stuck children.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Sipejn8YQhKgngxeHpMhT

* Pin the in-process home through pinned_home_env, and mark the dcpd fragment's facade impact

The two single-test binaries set HOME by hand, which the source gate
every_pinned_home_pins_the_instance refuses: a pinned home without the instance resolves
another directory under this repo's .envrc. They now apply nxs_test_support::pinned_home_env()
to their own process. The dcpd fragment says `facade: changed` (a behaviour change behind
unchanged signatures: an unvouched answer now cancels the border thread).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Sipejn8YQhKgngxeHpMhT

* Mitigate the review of PR #17: hermetic user-level folder, channel-only policy reads, named revoked-trust cause, group stop

- A build reads a user-level folder only under a NAMED development instance, never the
  production one, and an unresolvable home or instance means no folder rather than an error
  (Code #2, #3; Integrity #3, #4). Guard test: a build under the production instance does not
  see personas planted in the production folder.
- An existing but unreadable user-level folder is an error, not a silence (Integrity #5).
- `threads show`, `search`, `Engine::thread` and `Engine::search` read the merged channels
  only (`merged_channels`), so a malformed persona file cannot make a thread unreadable (Code #1).
- `nxc prime`, `Engine::prime_as` and `nxs prime --persona` resolve the catalogue once
  (`prime_with`) (Code #5).
- The revoked-trust cancel fires only on an answer not yet served, so a question delivered
  before the revocation does not cancel; two negative controls, mutation-checked (Test #1,
  Integrity #7).
- A stuck peer handover runs in its own process group, which is killed as a whole and then
  reaped by polling; the sidecar it started has a group of its own and survives; start-idempotence
  rests on the admission claim (Code #7, Integrity #6). Test drops the wall-clock assertion and
  gates `true` on unix (Test #3, #4).
- The freeze test now edits a user-level hurdle too (Code #6); loader failing cases for
  channels, a missing and an unreadable folder, a dangling member (Test #2).
- A user-level `external` admits only from workspaces the running repository trusts — tested
  through the binary and written in the guide (Integrity #2); the guide no longer calls a hiding
  "never silent" but says where it is shown (Integrity #1, the lock question filed as 6j6v.3mgy).
- Stale prose and wraps (Code #4, #9).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Sipejn8YQhKgngxeHpMhT

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Opt out of changelog-check (PRs with no user impact)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant