Repository navigation
Conversation
auto-merge was automatically disabled
October 24, 2026 03:00
Head branch was pushed to by a user without write access
auto-merge was automatically disabled
October 24, 2026 03:09
Head branch was pushed to by a user without write access
This branch has not been deployed
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.
Summary
Personal quote replies sent with
chat +messages-reply --at-open-dingtalk-idscan display a literal<@ID>instead of a native mention. The shared quote encoder HTML-escapes the marker inside the nestedcontentJSON; the gateway does not recognize that representation. Reusejsonutil.Marshal, matching the working atomic reply path:Full CI also exposed a pre-existing build prerequisite failure: host PE inspection tools reject the checksum-pinned Windows arm64 DLL, so Linux
make buildstops before tests run. Verify the PE signature and little-endian COFF Machine field directly using POSIXod, independent of host tool guesses. Checksum and export verification remain intact; wrong architectures and malformed headers fail closed.Risk tier
Verification
.changes/chat-quote-mention-json-encoding.mdand.changes/runtime-payload-pe-unknown-architecture.md../scripts/policy/check-release-fragments.sh origin/main HEAD— passed. Release-seal validation is N/A;CHANGELOG.mdis untouched.DWS_PACKAGE_VERSION=0.0.0-test go test -race ./internal/helpers ./internal/shortcut/chat -run 'TestCrossPlatformCoverage(ChatQuoteContentPreservesMentionMarkers|ReplyMentionPreservesWirePlaceholders)$' -count=1— passed.SUCCESS) and message-ID readback.DWS_PACKAGE_VERSION=0.0.0-test go test ./test/scripts -run '^TestRuntimePayloadPE' -count=1— all 15 scenarios pass with direct PE verification, including wrong Machine fields, malformed signatures, truncated headers, strict mode and unsupported/misidentifying host tools.sh -n scripts/policy/check-runtime-payload.shandmake build— passed, including payload verification and attachment.go vet ./test/scriptsand affected chat packages — passed.git diff --check— passed.DWS_PACKAGE_VERSION=0.0.0-test GIT_CONFIG_NOSYSTEM=1 GIT_CONFIG_GLOBAL=/dev/null go test ./... -count=1 -timeout=10mis running; expanded CI reruns the full gates. An initial release-script run hit two fixture-hook failures caused by this machine's globalcore.hooksPath; both pass with the isolated Git configuration used by the full run.Notes
replyMsgTyperemainstext; changing it is unnecessary. JSON round-trip coverage includes quotes, newline, backslash, angle brackets and ampersand. This follows up on the mention support in #881.Merge Danger
Door: two-way; no persistent data or payload binary changes.
Blast Radius: personal-quote-content serialization and runtime-payload architecture verification during builds/releases.