Skip to content

feat(report): host-declared surface meta in status reports - #280

Closed
ranxianglei wants to merge 1 commit into
masterfrom
2026-09-13_surface-meta-status
Closed

ranxianglei wants to merge 1 commit into
masterfrom
2026-09-13_surface-meta-status

Conversation

@ranxianglei

Copy link
Copy Markdown
Owner

Closes #278.

What

StatusReportOptions gains optional meta: { pack?, packVersion?, host? }. The overview and the compressed drilldown render a leading:

ACTIVE SURFACE: pack=lean v3 | host=billion-context-pi 0.1.69

No meta → reports stay byte-identical.

Design

  • SurfaceMeta interface + renderSurfaceLine() in src/report.ts; SurfaceMeta re-exported from the barrel (src/index.ts).
  • Which pack is active is host policy — the kernel never resolves packs, it only renders what the host declares (billion-context #730 division of labor).
  • Line is prefixed with a blank-line separator to the overview and compressed-drilldown outputs only. Uncompressed ranges/messages views are untouched, per issue scope.
  • Empty/undefined fields are filtered: partial meta renders only the parts present (pack=v3 when only packVersion given); all-empty meta ({}) behaves exactly like absent meta.

Verification

  • tsc --noEmit clean; full suite 731/731 pass (7 new tests in tests/surface-meta.test.ts: no-meta byte-clean, empty-meta equivalence, overview leading line, compressed leading line, partial-meta variants ×3, uncompressed views never get the line).
  • Byte-identity against pre-change code: ran HEAD's buildStatusReport vs new one over a fixture state (nested T1/T2 blocks + inactive block + tool messages) across all scope/view/sort/limit combos — all 8 outputs byte-identical without meta.
  • npm run build succeeds.

StatusReportOptions gains optional meta: { pack?, packVersion?, host? }. Overview and compressed drilldown render a leading 'ACTIVE SURFACE: pack=<name> <version> | host=<host>' line. No meta -> reports stay byte-identical (verified against pre-change code across all scope/view/sort combos). Which pack is active is host policy; the kernel only renders what the host declares.
@github-actions

Copy link
Copy Markdown

📦 Built Package Artifact

Branch: 2026-09-13_surface-meta-status (342efe9)

Option A — Install from npm PR tag (recommended)

In your adapter project:

npm install acp-kernel@pr-280

Each push to this PR publishes a new version under the pr-280 npm tag.

Option B — Download artifact

  1. Download the artifact from the Actions run
  2. Extract the tarball and install:
tar xzf acp-kernel-pr280.tgz
npm install ./package

This comment is automatically updated on each push.

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.

1 participant