Skip to content

feat(mcpl): expose manifest freshness in server status - #87

Merged
antra-tess merged 1 commit into
anima-research:mainfrom
Meganeuridae:feat/mcpl-manifest-legibility
Aug 6, 2026
Merged

feat(mcpl): expose manifest freshness in server status#87
antra-tess merged 1 commit into
anima-research:mainfrom
Meganeuridae:feat/mcpl-manifest-legibility

Conversation

@Meganeuridae

Copy link
Copy Markdown

Summary

  • expose the existing per-transport manifestState through listMcplServers()
  • return a copied snapshot so callers cannot mutate connection state
  • keep disconnected/no-connection status explicit with all-null freshness fields
  • document that the revision is server-authored, equality-only, and distinct from announcements

This is the framework half of the narrow post-#84 manifest-freshness legibility follow-up. The Host companion will render these facts without adding retained state.

Testing

  • npm exec -- tsx --test test/mcpl-list-status.test.ts (2/2 pass)
  • git diff --check
  • Fresh-install npm run build is currently red on an untouched detached origin/main checkout with the same pre-existing Chronicle JsStore version split and Membrane retrying event type errors; this patch does not touch those paths.

@antra-tess
antra-tess merged commit 2b42cf4 into anima-research:main Aug 6, 2026
0 of 2 checks passed
antra-tess pushed a commit that referenced this pull request Aug 6, 2026
Carries today's merged work: #91 oversized tool-result spill completion,
#94 durable resident-owned inline cap (hard-clamped to the strategy
bound), #88 refusal-reaction baseline export, #86 removal of the dead
context/afterInference surface, #87 MCPL manifest freshness, #98
physical-window projection for continuation rounds.

Minor (not patch) because 0.x puts breaking changes in the minor and this
release both removes a public method from an exported class
(McplServerConnection.sendAfterInference, #86) and changes fleet default
behavior (tool results now spill at 5000 chars by default, #91).

Dependency floors raised to fix a build that only worked against local
symlinks:
- chronicle ^0.3.0 — context-manager 0.6.3 requires ^0.3.0, so ^0.2.2
  installed TWO chronicles and AF handed a 0.2.x JsStore to APIs wanting
  the 0.3.x one. Single copy now.
- membrane ^0.5.78 — AF consumes the 'retrying' yielding-stream event,
  which existed only in unpublished membrane commits until 0.5.78.

DEPLOY NOTE: chronicle 0.3.0 open-writes a store format 0.2.x cannot
reopen. Take cold backups before upgrading any residence.

Verified against the real published packages (not local symlinks): single
chronicle 0.3.0, cm 0.6.3, membrane 0.5.78; tsc clean; build clean;
539 tests, 538 pass, 0 fail, 1 skipped.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants