Gitea MCP 未向当前会话暴露,按仓库规则回退项目根目录安全配置与 Gitea API 创建本工单;凭据未写入工单、代码或日志。
来源:用户于 2026-08-31 提问「Agent 通过浏览器打开 PDD 链接跳转商品页时,如果链接失效被跳到 PDD App 首页,失败提示文字是什么」,在只读核验后明确要求建单区分该失败场景与提示文案。
目的:把「链接已失效、被弹回 PDD 首页」从通用的「未进入商品详情页」兜底中分离出来,使运维能区分「换链接」与「重试/改规则」,并避免对必然失败的链接继续重试。
代码基线:4e05048(2026-08-31)。核验日期 2026-08-31,范围为 Android 入口导航与错误码回传路径。
4e05048
PddPageClassifier.classify
PddNavigation.kt:12-27
商品已下架 / 商品不存在 / 链接已失效 / 页面不存在
PDD_LINK_INVALID
null
PDD_DETAIL_ENTRY_FAILED / 未进入 PDD 商品详情页
PddProductDetailCollector.kt:628
PddNavigation.kt:80
PDD_DETAIL_ENTRY_FAILED / 没有进入拼多多商品页面
PurchaseRehearsalExecutor.kt:201
:213
navigationRecovery.reopenBrowser
PDD_DETAIL_ENTRY_FAILED
PddNavigation.kt:66-79
maxAttempts
ActivityEvidenceTracker
GoAutoAccessibilityService.kt:96
RuleExecutor.kt:64
step.activityName
pageEvidence
packageName + activityName + selector
RuleContract.kt:204-212
reopenBrowser
transientSoldOutRecovery
docs/08-agent-api-contract.md
Android-Agent-API-Contract
在 CG30 / PDD 8.22.0 上,使用一个已失效的 PDD 链接执行安全采集,记录被弹回首页时 ActivityEvidenceTracker 给出的精确 Activity 类名。只记录包名与 Activity 类名,不记录页面文字、坐标、控件树或截图。取证结果写回本工单。
v2 规则新增可选对象 linkExpiredEvidence:
linkExpiredEvidence
packageName
activityName
selector
rejectUnknown
linkExpiredEvidence.activityName
PDD_LINK_EXPIRED_TO_HOME
PddDetailEntryRunner 只对 PDD_DETAIL_ENTRY_FAILED 触发 reopenBrowser 重试;PDD_LINK_EXPIRED_TO_HOME 立即返回,不重试。
PddDetailEntryRunner
在 docs/08-agent-api-contract.md 与 Wiki Android-Agent-API-Contract 记录 linkExpiredEvidence 规则字段、PDD_LINK_EXPIRED_TO_HOME 错误码语义及其不参与重试的约定。
PDD_LINK_EXPIRED_TO_HOME / 商品链接已失效,被跳转到拼多多首页
executionMode=rehearsal
sync
sync --check
PddPageClassifier
rehearsal
有长期文档影响。 新增规则字段 linkExpiredEvidence 与错误码 PDD_LINK_EXPIRED_TO_HOME,须更新 docs/08-agent-api-contract.md 与 Wiki Android-Agent-API-Contract;在线回读 revision 后执行一次 python dev_scripts/harness.py sync 和一次 sync --check,revision 回写工单。
python dev_scripts/harness.py sync
待确认(2026-08-31 创建,等待用户确认方案后方可实施)。
No dependencies set.
The note is not visible to the blocked user.
原始需求摘要
来源:用户于 2026-08-31 提问「Agent 通过浏览器打开 PDD 链接跳转商品页时,如果链接失效被跳到 PDD App 首页,失败提示文字是什么」,在只读核验后明确要求建单区分该失败场景与提示文案。
目的:把「链接已失效、被弹回 PDD 首页」从通用的「未进入商品详情页」兜底中分离出来,使运维能区分「换链接」与「重试/改规则」,并避免对必然失败的链接继续重试。
基线与已核实事实
代码基线:
4e05048(2026-08-31)。核验日期 2026-08-31,范围为 Android 入口导航与错误码回传路径。PddPageClassifier.classify(PddNavigation.kt:12-27)只在页面出现商品已下架 / 商品不存在 / 链接已失效 / 页面不存在时返回PDD_LINK_INVALID。被弹回 PDD 首页时页面通常不含这些文字,分类器返回null。PDD_DETAIL_ENTRY_FAILED / 未进入 PDD 商品详情页(PddProductDetailCollector.kt:628、PddNavigation.kt:80),采购路径为PDD_DETAIL_ENTRY_FAILED / 没有进入拼多多商品页面(PurchaseRehearsalExecutor.kt:201、:213)。navigationRecovery.reopenBrowser对PDD_DETAIL_ENTRY_FAILED会触发重开浏览器重试(PddNavigation.kt:66-79,maxAttempts规则限制为 1)。链接已失效时该重试必然失败,浪费设备占用与 attempt 次数。PDD_DETAIL_ENTRY_FAILED做二次映射(全仓检索无匹配),任务详情展示的即 Agent 上报原文。ActivityEvidenceTracker已提供经 Android 确认、按包名隔离的当前 Activity(GoAutoAccessibilityService.kt:96),RuleExecutor.kt:64已按step.activityName精确校验;v2 规则pageEvidence已声明packageName + activityName + selector(RuleContract.kt:204-212)。判定「停在 PDD 首页形态」无需新增机制。目标
reopenBrowser重试,直接失败。PDD_DETAIL_ENTRY_FAILED语义与文案不变。非目标
transientSoldOutRecovery。前置依赖与并行性
docs/08-agent-api-contract.md与 WikiAndroid-Agent-API-Contract;为避免与 #164 的契约改动冲突,契约文档与 Wiki 更新排在 #164 之后,或由两单协商合并为一次更新。固定实施方案
第 1 步:取证(先于编码)
在 CG30 / PDD 8.22.0 上,使用一个已失效的 PDD 链接执行安全采集,记录被弹回首页时
ActivityEvidenceTracker给出的精确 Activity 类名。只记录包名与 Activity 类名,不记录页面文字、坐标、控件树或截图。取证结果写回本工单。第 2 步:规则契约
v2 规则新增可选对象
linkExpiredEvidence:packageName、activityName(必填,精确相等)、可选selector;沿用rejectUnknown严格校验,未知字段拒绝。packageName只允许 PDD 包名。第 3 步:Android 判定
PDD_DETAIL_ENTRY_FAILED的那一刻做一次判定。linkExpiredEvidence.activityName精确相等(配置了selector时该 selector 需唯一命中)。PDD_LINK_EXPIRED_TO_HOME,文案:商品链接已失效,被跳转到拼多多首页。PDD_DETAIL_ENTRY_FAILED与原文案。不做包含匹配、前缀匹配或文字猜测。第 4 步:重试边界
PddDetailEntryRunner只对PDD_DETAIL_ENTRY_FAILED触发reopenBrowser重试;PDD_LINK_EXPIRED_TO_HOME立即返回,不重试。第 5 步:契约与文档
在
docs/08-agent-api-contract.md与 WikiAndroid-Agent-API-Contract记录linkExpiredEvidence规则字段、PDD_LINK_EXPIRED_TO_HOME错误码语义及其不参与重试的约定。验收标准
linkExpiredEvidence且现场确认停在 PDD 首页时,采集与采购均报PDD_LINK_EXPIRED_TO_HOME / 商品链接已失效,被跳转到拼多多首页。reopenBrowser重试,任务一次失败。linkExpiredEvidence时,行为、错误码与文案与基线4e05048完全一致。PDD_DETAIL_ENTRY_FAILED,不发生误判。linkExpiredEvidence含未知字段、非 PDD 包名或缺activityName时规则解析失败。executionMode=rehearsal或采集任务;未修改地址、未创建订单、未支付。Android-Agent-API-Contract已更新,在线回读 revision 后完成一次sync和一次sync --check,revision 回写本工单。必测场景
PDD_LINK_EXPIRED_TO_HOME,无重试。PDD_DETAIL_ENTRY_FAILED及原文案与原重试行为。PddPageClassifier优先返回原有登录、验证码、风控错误码,不被新判定抢占。PDD_LINK_INVALID,不受影响。activityName分别拒绝。风险与安全门禁
rehearsal,不修改地址、不创建订单、不支付。文档影响
有长期文档影响。 新增规则字段
linkExpiredEvidence与错误码PDD_LINK_EXPIRED_TO_HOME,须更新docs/08-agent-api-contract.md与 WikiAndroid-Agent-API-Contract;在线回读 revision 后执行一次python dev_scripts/harness.py sync和一次sync --check,revision 回写工单。相邻问题(不在本单范围)
状态
待确认(2026-08-31 创建,等待用户确认方案后方可实施)。