Repository navigation
Closed
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersMessaging module and external providersscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Milestone
Description
Parent
QQ group chat specification #1149
What to build
Explicitly opt one QQ group into ordinary-message collection, let its Bot observe the real conversation through existing attention/harvest behavior, and demonstrate an intentional own-app contribution in that group without answering every message.
Collection and external speech remain distinct decisions. Extend the official QQ Provider's ordinary-event path and qualify its real permissions and current receiver lease; do not run its standalone bridge alongside Core or invent remote group-history support.
Acceptance criteria
- Mentions-only remains the default. The actual Client makes ordinary collection an explicit per-conversation choice and shows saved preference separately from full-message permission and current receiver evidence.
- Qualification includes a fresh non-mentioned real QQ group event delivered on the active exclusive receiver lease through the checked Provider boundary. Official documentation or a persisted old capability flag alone does not enable the claimed capability.
- In mentions-only mode, ordinary content does not enter canonical collection or trigger a Bot wake. In the opted-in mode, eligible ordinary events preserve source attribution and follow the existing authorized Inbox/Channel path.
- Existing Observation, count/time harvest and independent member wake rules read received local context without forcing a reply for every event. A trusted direct mention retains its own attention semantics.
- In the real group, demonstrate one ordinary-context understanding and one intentional own-identity contribution under current posting authority, including native receipt and correlation with the originating conversation.
- Ordinary participation uses the qualified proactive path where required by QQ. Apply the existing safe-turn/loop policies and native limits; collecting content does not itself grant external speech.
- Disabling collection, blocking the conversation or losing the receiver lease stops future collection/effects as applicable. Reconnect preserves valid policy without duplicate events, missing-message invention or replaying blocked intervals.
- Public-contract regressions cover mention/ordinary qualification, switch-off races, stale lease evidence, attention/harvest behavior, own echoes, authority fences and unavailable full-message/proactive conditions.
- If account eligibility or actual ordinary delivery is unavailable, retain verified mentions-only use with a reason. The ordinary participation scope is not completed and no personal-account fallback is introduced.
- Supply the real QQ/Client runnable acceptance, UI evidence, affected bilingual guides and ledgers, focused checks and immutable artifact qualification; contribute reusable Provider changes to the maintained fork and upstream.
Blocked by
- QQ tracer: manage conversations, Channel sync and truthful reconnect history #1153 — usable conversation controls and source placement for opted-in collection.
- QQ tracer: authorized delayed-result posts with preserved unknown outcomes #1154 — the authorized proactive result/post path needed for intentional ordinary-group speech.
Metadata
Metadata
Assignees
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersMessaging module and external providersscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Type
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 14, 2026
Agent work claim
codex/local/01a13902-0d72-7872-ac0f-440e152155d5(not a DSH Session)codex/1155-qq-ordinary-main(Core and maintained Provider fork)DoodleBears commentedon Oct 14, 2026
Agent work progress
Task:
codex/local/01a13902-0d72-7872-ac0f-440e152155d5· Core draft #1670 · Maintained Provider #29 · Upstream dependency draft #359.The checked ordinary-text path, current receiver qualification after intake cutoff, and default mentions-only collection regressions are implemented. The existing Client supplies per-conversation collection and wake controls. Core exact-head CI passes; focused results include final Core QQ 7/7, shared inbound 108, development Provider pin 6/6 and maintained Provider QQ 218/218. The upstream layer separately passes 204 QQ tests, build and package verification; its unmerged prerequisites and native-runtime gap are explicit.
QA2 alone connected to the candidate and the real Client showed saved mentions-only preference separately from unverified ordinary delivery. No fresh non-mentioned probe arrived in the controlled window, so canonical ordinary collection, understanding and intentional group contribution remain unqualified. No ordinary opt-in or ordinary-context post was performed. The test receiver was stopped; both original Apps are connected again and the original receiver registration is unchanged. The earlier Human screenshot verifies normal replies after the #1154 restoration, not this subsequent window.
Remaining: a fresh coordinated native QQ/Client run (non-@ probe, explicit opt-in, observation/harvest, one understood own-App contribution, switch-off/reconnect evidence), paired visual evidence, immutable packed-product qualification and Provider release integration. The published product still uses
.20; the immutable development candidate is not a released Provider. Local head-bound HTML pages are generated but have no reviewer-accessible hosting. This draft does not close #1155 and is not ready to merge.7 remaining items
docs(qq): record accepted ordinary native behavior
merge refreshed QQ delayed-result prerequisite and current main
feat(qq): include the qualified ordinary Provider in product packages
docs(qq): qualify installed packages before merge and deployment
DoodleBears commentedon Oct 15, 2026
Agent work outcome — accepted ordinary-text slice merged and deployed
codex/local/01a13902-0d72-7872-ac0f-440e152155d5(not a DSH Session).f069c211edf9c8f4af6814da804907cfe4e3ad9b.b1ebee7409e2b58eab204d7c570d621b1beca2cc.Native acceptance is recorded in the final qualification document: failed D exposed the production-factory option loss; fresh E qualified the repair without collecting ordinary content by default. Actual Client opt-in collected genuine context, the real ten-minute timer harvested it, and one Owner Schedule read the two genuine Sources before posting a single correct own-App/original-group summary. The Human confirmed its visible contents and uniqueness. A/B were one native message; this run does not claim a real count-two trigger. Fresh collection-off text created no Source/wake/post. Native Session records and the receipt support the independent posting path.
Final Core CI and package preparation passed. The integrated focused suite passed 89/89; maintained QQ regressions passed 219/219; separate upstream QQ regressions passed 205/205. Full Windows Provider tests are not declared green: unrelated image/update failures were reproduced on the unchanged baseline, and the candidate HTTP subset passed independently after the broad parallel run failed.
Product packaging now pins Provider
.21to immutable runtime sourcebeaed4a6dabb583654d28fb09298716267039b4a. Six actual tarballs were installed and verified through an independent official DSH0.2.0-rc.2CLI. Actual Client/model execution returned 17; the real screenshot is embedded in the merged PR. It is package execution evidence, not a QQ screenshot. Matched QQ screenshots remain unavailable because this environment lacks an operable signed-in QQ web chat; the runnable Human path and exception are documented. Local exact-head HTML is not reviewer-hosted evidence.The Human-authorized original dual-App Host was backed up and upgraded to
1.3.0-test.1155.3from merged main. Both Apps connected; the saved identities and per-group mentions-only policies are preserved. Both Orchestrator/default Assignment routes remain official DeepSeek Flash following the separately authorized Go-quota recovery. New receiver evidence correctly starts unverified. Receiver registration is unchanged, and the temporary candidate/package-smoke Hosts are stopped. No global npm release/tag or unrelated VPS deployment occurred.Remaining handoff: fresh genuine @mentions to both Apps plus a new unquoted/non-@ ordinary probe on the deployed receiver. Verify native delivery evidence and mentions-only exclusion, then obtain Human QQ rendering confirmation. Do not reuse older receiver proof as proof of this final upgrade. Ordinary media, remote history and native own-echo qualification remain separate scope.
DoodleBears commentedon Oct 15, 2026
Final deployed QQ acceptance — completed
Task:
codex/local/01a13902-0d72-7872-ac0f-440e152155d5· State: completed.The final local package
1.3.0-test.1155.3/ Provider4.32.0-botharness.21now has fresh post-upgrade native and Human QQ confirmation:provider-acceptedsource reply with a native receipt and the exact text部署正常. The Human confirmed both appeared in the original group.deepseek-official/deepseek-flash, withbridge_reply. This verifies the actual invocation, beyond saved model configuration.GROUP_MESSAGE_CREATE, type 0, with zero mentions, quoted elements or attachments. Both original-group grants now show current-lease ordinary delivery verified while their saved collection stays mentions-only.This completes the final deployment handoff described in the preceding outcome. The pre-upgrade delayed C and ordinary-context acceptance remain separately documented; they are not relabeled as post-upgrade runs. The bounded delayed-result and ordinary-text scopes are complete and deployed locally. Global publication, ordinary media/own-echo work and the dependency-draft upstream PR remain separate; no broader completion is claimed.