qwen-code/docs/design
ChengHui Chen 1f92787aa0
feat(channels): add dmPolicy config to disable private/DM messages (#6521)
* feat(channels): add dmPolicy config to disable private/DM messages

Add DmGate class mirroring GroupGate to gate DM/private messages in
channel adapters. Operators can now set dmPolicy: 'disabled' in their
channel config to silently drop all DM messages while keeping group
messages active.

Closes #6392

* fix(channels): address review feedback for dmPolicy

- Add dmPolicy: 'open' to all test config factories (8 files) to
  maintain type correctness with required ChannelConfig field
- Add integration tests in ChannelBase.test.ts:
  - preflightInbound: DM dropped + group passes when dmPolicy=disabled
  - isStoredLoopTargetAuthorized: DM loop job disabled + group passes
- Add dmPolicy assertions in config-utils.test.ts (default + explicit)
- Keep dmPolicy as required field (not optional) for strict parity
  with groupPolicy
2026-07-08 12:01:10 +00:00
..
adaptive-output-token-escalation fix(core): stop repeated truncated write_file/edit retries from looping (#5934) 2026-06-27 12:17:12 +00:00
auth refactor(cli): provider-first auth registry with unified install pipeline (#3864) 2026-05-08 12:19:28 +08:00
auto-memory fix(core): prevent OOM in auto-memory extraction during /quit (#5147) (#5181) 2026-06-19 08:17:45 +08:00
channels feat(channels): add dmPolicy config to disable private/DM messages (#6521) 2026-07-08 12:01:10 +00:00
compact-mode feat: optimize compact mode UX — shortcuts, settings sync, and safety (#3100) 2026-04-16 09:29:24 +08:00
compaction-image-stripping feat(core): strip inline media before chat compaction summary (#4101) 2026-05-14 10:20:11 +08:00
customize-banner-area feat(cli): customize banner area (logo, title, hide) (#3710) 2026-05-07 10:17:53 +08:00
daemon-acp-http feat(daemon,sdk): resumable /acp session stream (Last-Event-ID) + opt-in SDK transports export (#5852) 2026-06-30 02:07:48 +00:00
daemon-session-artifacts feat(daemon): add session artifact APIs (#5895) 2026-07-03 08:58:43 +00:00
daemon-sidechannel-coordination docs(design): daemon side-channel coordination (A1/A2/A4/A5) (#4511) 2026-07-05 09:43:46 +00:00
daemon-transport-abstraction feat(serve): add daemon idle detection to GET /health?deep=true (#4934) 2026-06-18 06:55:03 +00:00
fork-subagent feat(core): implement fork subagent for context sharing (#2936) 2026-04-14 14:27:38 +08:00
hot-reload Feat: LSP Server support hot reload (#5953) 2026-07-05 13:50:00 +00:00
performance perf(cli): defer startup prefetch tasks (#6303) 2026-07-07 15:31:55 +00:00
prompt-cache feat(core): stabilize tool schema declaration order (#6339) 2026-07-05 12:24:59 +00:00
prompt-suggestion fix(followup): prevent tool call UI leak and Enter accept buffer race (#2872) 2026-04-09 00:07:03 +08:00
rt-optimization feat(telemetry): foundation for skill-based RT optimization (P0+P1) (#4565) 2026-05-29 02:17:40 +08:00
session-idle-reaper feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
session-recap feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
session-title feat(session): auto-title sessions via fast model, add /rename --auto (#3540) 2026-04-23 20:37:05 +08:00
skill-nudge feat(memory): add autoSkill background project skill extraction (#3673) 2026-05-09 14:25:02 +08:00
slash-command feat(cli): improve slash command discovery (#3736) 2026-05-09 14:25:44 +08:00
structured-output docs: user + design docs for --json-schema structured output (#4051) 2026-05-17 23:10:34 +08:00
tool-use-summary feat(tui): partition tool display by type — collapse read/search, show mutation tools individually (#5661) 2026-06-25 12:44:50 +00:00
virtual-viewport feat(cli): virtual viewport for long conversations on ink 7 (#4146) 2026-06-02 13:57:17 +08:00
2026-05-15-async-memory-recall-design.md fix(core): decouple auto-memory recall from main-agent request path (#4172) 2026-05-19 13:58:58 +08:00
2026-05-21-memory-pressure-monitor-design.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-05-26-daemon-logger-design.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-05-27-daemon-workspace-service-design.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-06-12-session-shell-permission-policy.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-06-13-file-history-snapshot-persistence.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-06-15-simulated-sed-file-history.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-06-23-fix-conflicts-command.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-06-24-daemon-clientid-self-heal-design.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-06-24-stream-inactivity-timeout-design.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-06-30-unified-reasoning-effort-cli.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-07-01-channel-lifecycle-status-adapters.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-07-01-channel-lifecycle-status-umbrella.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-07-01-channel-p0-identity-task-lifecycle-design.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-07-05-large-frame-handling-measurement.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-07-06-session-start-profiler.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
2026-07-07-bounded-replay-snapshot-window.md feat(serve): Bound replay snapshot history (#6482) 2026-07-08 06:53:58 +00:00
auto-compaction-threshold-redesign.md feat(core)!: redesign auto-compaction thresholds with three-tier ladder (#4345) 2026-05-25 21:11:08 +08:00
custom-api-key-auth-wizard-prd.md docs(auth): add custom API key wizard PRD (#3583) 2026-05-13 14:04:41 +08:00
daemon-extension-at-mention.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
daemon-idle-detection-api.md feat(loop): wire prompt-only /loop to self-paced wakeups (#5197) 2026-06-18 18:36:24 +08:00
daemon-multi-workspace-phase1-registry.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
daemon-multi-workspace-phase2a-sessions.md feat(cli): Enable multi-workspace session routing (#6511) 2026-07-08 10:06:31 +00:00
daemon-workspace-remember.md fix(memory): allow forget to remove user managed memory (#6432) 2026-07-08 09:51:36 +00:00
declarative-agents-port.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
extension-file-reload.md feat: extension file reload — watch for plugin changes and hot-reload runtime (#6347) 2026-07-08 11:16:21 +00:00
f2-mcp-transport-pool.md refactor(cli): rename serve files to kebab-case (#5592) 2026-06-22 13:13:07 +08:00
issue-4479-token-usage-stats-coordination.md feat(stats): expose token usage for cost visibility (#4564) 2026-06-19 07:14:07 +08:00
markdown-syntax-extension.md feat(cli): expand TUI markdown rendering (#3680) 2026-05-07 16:24:13 +08:00
openrouter-auth-and-models.md refactor(cli): remove legacy qwen auth CLI subcommand, redirect to /auth TUI dialog (#3959) 2026-05-11 16:44:09 +08:00
prompt-queue-backpressure.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
serve-server-final-split.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
serve-server-split.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
skill-required-capabilities.md docs(web-shell): document chart renderer integration (#6353) 2026-07-06 04:55:26 +00:00
telemetry-llm-request-timing-design.md feat(telemetry): Phase 4b — retry visibility for qwen-code.llm_request (#3731) (#4432) 2026-06-05 13:45:47 +08:00
telemetry-outbound-propagation-design.md feat(telemetry): client-side HTTP span + opt-in W3C traceparent propagation (#4384) (#4390) 2026-05-25 22:16:54 +08:00
telemetry-resource-attributes-design.md feat(telemetry): support custom resource attributes and add metric cardinality controls (#4367) 2026-05-21 13:54:37 +08:00
telemetry-subagent-spans-design.md feat(telemetry): Phase 3 — qwen-code.subagent span with concurrent isolation (#3731) (#4410) 2026-06-05 17:12:34 +08:00
tui-spacing-density-pr1.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
tui-user-message-half-line-pr2.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
webshell-mention-icon-chips.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00
workflow-tracing-gaps.md feat(telemetry): unify span creation paths for hierarchical trace tree (#4126) 2026-05-16 22:29:55 +08:00
worktree.md feat(worktree): Phase D — startup --worktree flag + symlinkDirectories + PR refs (#4381) 2026-05-27 17:04:51 +08:00
yaml-parser-replacement.md docs: consolidate design docs and plans under docs/ (#6417) 2026-07-07 06:05:05 +00:00