feat(boss): 登录后自动关闭治理公告弹窗;沟通页新招呼/未读 tab 初始化

- 新增 GOVERNANCE_NOTICE_DIALOG_* 选择器与 dismissGovernanceNoticeDialog(),
  在 launchBrowserAndNavigateToChat 与 startBossAutoBrowse 登录后调用,避免阻塞自动化。
- 沟通页:先切「新招呼」再强制点「未读」刷新列表;switchToTab 支持 force 选项。
- 文档:recruiter_architecture §14 弹窗清单与 §6 常量更新;CLAUDE.md 补充登录后弹窗说明;
  新增 plan/README.md、plan/chat_page_tab_navigation.md。

Made-with: Cursor
This commit is contained in:
rqi14
2026-03-27 12:04:13 +08:00
parent 3fb7089c9e
commit 0bb94409a2
7 changed files with 524 additions and 29 deletions
+5
View File
@@ -101,6 +101,11 @@ Key files and their roles:
Anti-detection: stealth + laodeng + anonymize-ua plugins; all clicks via `ghost-cursor` (`createHumanCursor`); random delays via `sleepWithRandomDelay`.
**Known post-login popups** — all must be auto-dismissed or automation will hang:
- **Governance notice** (`dialog-uninstall-extension`) — appears every login; handled by `dismissGovernanceNoticeDialog(page)` in `index.mjs`, called after login in both `launchBrowserAndNavigateToChat` and `startBossAutoBrowse`. Confirm button is `div.confirm-btn` (a `<div>` styled with a background image, not a `<button>`). See `plan/recruiter_architecture.md §14.1` and `examples/BOSS直聘-治理公告*.html`.
- **Intent dialog** (`.op-btn.rightbar-item div.dialog-container`) — per-session, per-conversation; handled in `chat-page-processor.mjs`.
- When selectors break, update `constant.mjs` first, then follow the checklist in `plan/recruiter_architecture.md §14.5`.
## Code Style
Enforced by eslint + prettier in `packages/ui`: