Conversation
spacexun2
force-pushed
the
rebuild/pr-12
branch
from
September 10, 2026 03:28
d452498 to
03411b8
Compare
…standalone verify:events) Rebased onto main (1caff61, 0.1.16-rc.1): the alpha.2+ write path kept the guard contract (appendTeamEvent checking the harness KNOWN_SESSION_EVENT_TYPES, containment of session write failures, captainSessionOf fallback), so the coverage carries over with the event vocabulary updated to the current 10 agent-teams/* types (adds team-halted, team-resumed, plan-discarded). The loader stub is kept so the NanmiCoder#8 scenario stays pinned regardless of the installed harness build; verify:events stays out of the aggregate gate per the earlier decision. Refs NanmiCoder#8
spacexun2
force-pushed
the
rebuild/pr-12
branch
from
September 11, 2026 02:32
03411b8 to
b7aed42
Compare
WhiteWh
added a commit
to WhiteWh/dsh-agent-teams
that referenced
this pull request
Sep 19, 2026
…ontract message, event guard) Transfers reviewed open PRs from NanmiCoder/dsh-agent-teams into this branch. None of them was merged upstream; each was re-verified locally first. NanmiCoder#186 (xwchris) Harness 0.1.5-rc.2 support: - compatibility.json adds 0.1.5-rc.2 on the preview track; recommendedHost stays 0.1.5-rc.1, so the release toolchain and README pair are unchanged. - package.json: 21 @deepseek-ai/* peer ranges gain 0.1.5-rc.2. - docs/harness-0.1.5-rc.2-acceptance.md records the host diff and the scope the upstream author actually exercised. - npm serves 0.1.5-rc.2 as latest; peer warnings disappear for those users. NanmiCoder#169 (chenkai2) stop writing a bespoke message source kind (NanmiCoder#160): - src/command.ts injected source { kind: 'agent-teams-command' } for the /agent-teams activation directive and the unknown-profile directive. - The installed host keeps a closed whitelist in @deepseek-ai/dsh-session-format-v2-to-v3/lib/index.js: SOURCE_KINDS holds plugin but not agent-teams-command, and line 125 throws SessionFormatUnsupportedMigrationError("cannot safely transform unclassified message source"), so every historical session containing one became impossible to open after a host upgrade. - Both directives now emit the plugin source shape the delivery paths already use: kind plugin, plugin dsh-agent-teams; the module augmentation that declared the removed kind is gone too. - scripts/command-source.test.mjs pins all three cases (activation, unknown profile, untouched ordinary turn) and is wired as verify:command-source. NanmiCoder#177 (Tonited) name the colliding lists when a contract contradicts itself: - classifyChangedPath consults outOfScope before inScope, so a path listed in both was rejected with a bare "is out_of_scope", which blames the path and sends the member hunting for a scope violation that is really a contract defect. evaluateQualityCompletion now names both lists. - The upstream test half was rewritten onto this branch's harness (the upstream file is 1233 lines, ours is 1791 and grew by this step) as section I. NanmiCoder#140 (spacexun2) session event write-guard regression test (NanmiCoder#8): - scripts/verify-events.mjs plus scripts/mock-dsh-session-loader.mjs pin the guard in src/events.ts: out-of-repo agent-teams/* types are never written to the session log, recognised types still are, append failures stay contained, and captain resolution prefers a live session over the fallback. - Wired as verify:events, deliberately not inside the aggregate verify chain, matching the upstream PR. NanmiCoder#141 (spacexun2) align the module export name with the package name: - src/index.ts exported name = 'agent-teams' while package.json declares @nanmicoder/dsh-agent-teams and cordis.patch.yml mounts that package name. Verification: tsc -p tsconfig.json and tsconfig.client.json --noEmit both clean; full build (clean-build + tsc + tsdown) clean; every server-side suite in the verify chain green, including quality-gates-tdd with the new section I check, command-source (3/3), verify-events (7/7), lifecycle, stress, harness-contract, stability, capabilities, member-spawn-recovery, compatibility and doctor (231 package identities). scripts/verify.mjs and node --test files cannot run in this confined pwsh sandbox (spawn EPERM on named pipes) - the same failure reproduces on the untouched parent commit, verified in a throwaway worktree, so it is an environment limit, not a regression.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note: re-opening the original PR #12
This PR re-submits the original [#12]. It was auto-closed by GitHub with "head repository deleted" on 2026-09-04 when the author's head fork (spacexun2/dsh-agent-teams) was deleted by accident — not a rejection on the merits. The fork has been rebuilt and the branch is replayed on top of the current main (426024f).
What it does
An offline regression test for the session event write-guard from issue #8, plus a standalone
pnpm verify:eventsentry:scripts/verify-events.mjs: drives the builtlib/events.jsagainst a stubbed@deepseek-ai/dsh-sessionand pins four behaviors: (1)agent-teams/*event types the harness does not recognize are never written to the session log; (2) recognized first-party types (e.g.tool-workflow/run-started) are written as usual; (3) a throwingsession.appendis contained insideappendTeamEvent; (4) thecaptainSessionOffallback semantics (offline captain falls back to the caller session; a live captain session wins).scripts/mock-dsh-session-loader.mjs: an ESM loader stub that pins the issue session.append 写入不可忽略的自定义事件类型,导致历史会话拒读(SessionFormatUnsupportedError) #8 scenario deterministically (a harness that only knows first-partytool-workflow/*/agent/*vocabulary), so the test does not drift with the locally installed harness version.package.json: adds"verify:events": "node scripts/verify-events.mjs". As decided earlier, it stays out of the aggregateverifygate; the rest of the chain is untouched.Fit to the current write path (post-alpha.2)
The original PR targeted the 0.1.10-era write path. After the alpha.2 refactor (bf50b49 and follow-ups) the guard contract is intact:
appendTeamEventinsrc/events.tsstill decides write/skip by the harnessKNOWN_SESSION_EVENT_TYPES, still wrapssession.appendin try/catch, andcaptainSessionOfkeeps its signature and fallback semantics. TheconversationEvents → uiConversationrename happened on the client side and does not touch this test surface. Adaptation in this replay: the event vocabulary now covers the 10agent-teams/*types in the currentsrc/event-types.ts(including the newerteam-halted,team-resumed,plan-discarded), with the stub comments updated; since rc.1 the@deepseek-ai/*packages are installed as devDependencies and the stub is kept anyway to pin the scenario.Local verification (current main + this branch, Windows / Node v24.16.0)
Refs #8