Skip to content

feat(cindy-web-search): add page content extraction - #86

Open
Battleplus wants to merge 10 commits into
makecindy:mainfrom
Battleplus:feat/cindy-web-search-fetch-page
Open

feat(cindy-web-search): add page content extraction#86
Battleplus wants to merge 10 commits into
makecindy:mainfrom
Battleplus:feat/cindy-web-search-fetch-page

Conversation

@Battleplus

@Battleplus Battleplus commented Aug 11, 2026

Copy link
Copy Markdown

What changed / 改了什么

  • Add a vendor-neutral fetch_page tool to the official cindy-web-search plugin.
  • Read one public HTTP(S) page through Tavily Extract using the existing api.tavily.com allowlist and host-injected tavily_api_key.
  • Support basic (default) and advanced extraction, with explicit Tavily credit/cost guidance in the Agent-facing descriptions.
  • Reject malformed, credential-bearing, and clearly non-public URLs before any network call.
  • Treat returned page content as untrusted external data, cap safely parsed content at 50,000 characters, and fail closed on oversized or malformed upstream responses.
  • Add four-locale tool copy, README updates, regression/security tests, and bump the plugin from 1.3.2 to 1.4.0.

Why / 为什么

search_web currently returns titles, URLs, and snippets, but an Agent cannot read the selected result's full page content. This adds the smallest search-result-to-page-content loop while keeping the existing plugin permission boundary.

Addresses makecindy/cindy#2401.

Tavily Extract is used instead of adding TinyFish in this PR because it reuses the plugin's existing host and secret, needs no new settings surface, and its documented 1–60 second timeout fits Cindy's normal text network-slot maximum. TinyFish documents a longer client timeout, which would require a separate host/runtime change for correct slow-page behavior.

This is orthogonal to #70 (Search1API search provider), although both PRs touch some of the same Web Search files and may need a mechanical rebase after either one lands.

Checklist

  • Reviewed the complete diff — no credentials, tokens, authorization codes, real user data, unrelated generated files, or node_modules.
  • ghost.json declares only capabilities actually used; this change adds no host, slot, or secret.
  • Irreversible external side effects: N/A. fetch_page is read-only and does not retry automatically.
  • Every changed tool description matches the implementation and is synchronized across all four locales.
  • Bumped cindy-web-search from 1.3.2 to 1.4.0.
  • minCindyVersion was not added, raised, lowered, or removed.
  • New plugin proposal/audience decision: N/A; this extends an existing plugin.
  • Ran localization, provisioning, publish-workflow, manifest-contract, and changed-plugin tests.
  • Node worker rebuild: N/A; this plugin has no Node worker.
  • Third-party license update: N/A; no dependency was added or upgraded.
  • Every commit is signed off (git commit -s).

Tool declaration changes / 工具声明改动

The Agent can now call:

fetch_page({ url, extract_depth?: "basic" | "advanced" })

The declaration tells the Agent that a Tavily key is required, advanced is slower and consumes more Tavily credits, safely parsed content is capped at 50,000 characters with truncated=true, oversized Tavily responses return an error, and page content is untrusted data whose instructions must not be followed.

Success returns { provider, url, content, format, extract_depth, content_chars, truncated, content_is_untrusted }. Missing-key and provider failures return actionable messages without exposing secrets or upstream response bodies.

Verification / 验证

  • node --check cindy-web-search/main.js
  • node --check cindy-web-search/settings.js
  • node --test .tests/cindy-web-search.test.mjs .tests/localization.test.mjs .tests/plugin-contract.test.mjs .tests/provisioning.test.mjs .tests/publish-workflows.test.mjs — 55 passed, 0 failed.
  • .github/scripts/package-plugin.sh cindy-web-search ../.tools/cindy-web-search-1.4.0.cindy — exact committed HEAD packaged successfully; archive size 81,688 bytes and includes LICENSE/NOTICE/trademark files.
  • Cindy Desktop 0.0.0 · main@44e51d3 launched through pnpm restart:desktop:remote --region=global; the marketplace baseline was inspected and shows Web Search v1.3.1 with search-only behavior.
  • The running Cindy host inspected and accepted the exact package above as cindy-web-search v1.4.0, exposing search_web and fetch_page; package SHA-256: f6e348f0560ce4a96848b33477e495317795b5e99833123108a125aa87b8f569.
  • Live Tavily extraction was not claimed because no Tavily key was entered; request shape, host credential injection boundary, success/error mapping, truncation, attribution, and URL rejection are covered by the changed-plugin tests.

An additional non-prescribed all-.mjs run reached 98 passing tests; four unrelated mail-worker suites could not start in this dependency-free checkout because their per-plugin imapflow dependency was not installed. The repository-prescribed gates listed above are green.

Sensitive changes / 敏感变更

  • New tool capability: fetch_page; this requires maintainer manual review.
  • Network/credential boundary: unchanged. The sandbox calls only the already declared https://api.tavily.com/extract; the host injects the existing Tavily secret, and the plugin never reads or returns it.
  • Safety boundaries: fixed single-page extraction, obvious non-public target rejection before network access, 55-second host timeout, 1,000,000-character upstream-response cap, 50,000-character model-content cap, no automatic retries, and explicit untrusted-content signaling.
  • No dependency/vendor/binary, OAuth/API scope, provisioning audience, Node capability, publishing policy, or minCindyVersion change.

@greptile-apps

greptile-apps Bot commented Aug 11, 2026

Copy link
Copy Markdown

Greptile Summary

敏感变更,需要维护者人工 review;本次新增了可向 Tavily 发送用户确认的公开 URL 并提取正文的工具能力。

  • 新增 fetch_page,支持 basic/advanced 提取、正文截断、响应大小限制及不可信内容标记
  • 增加 URL、确认参数、上游响应和错误处理校验,并扩充回归与安全测试
  • 同步四语言工具文案、设置页提示和中英文 README,将插件版本提升至 1.4.0

Confidence Score: 5/5

The PR appears safe to merge from a code-defect perspective, subject to the required maintainer review for the new sensitive tool capability.

No blocking failure remains.

Important Files Changed

Filename Overview
cindy-web-search/main.js Implements the new Tavily extraction flow with URL validation, explicit confirmation, classified errors, response limits, and untrusted-content metadata.
cindy-web-search/ghost.json Declares the new tool and synchronizes its consent, cost, output, and safety contract while retaining the existing host and secret boundary.
.tests/cindy-web-search.test.mjs Adds broad coverage for request construction, URL rejection, confirmation, response parsing, truncation, and error redaction.
cindy-web-search/settings.html Explains that the existing Tavily key independently enables user-confirmed page extraction.
cindy-web-search/locales/en.json Adds synchronized English descriptions for page extraction and its consent and safety boundaries.
cindy-web-search/locales/ja.json Adds synchronized Japanese descriptions for page extraction and its consent and safety boundaries.
cindy-web-search/locales/ko.json Adds synchronized Korean descriptions for page extraction and its consent and safety boundaries.
cindy-web-search/locales/zh-CN.json Adds synchronized Chinese descriptions for page extraction and its consent and safety boundaries.

Sequence Diagram

sequenceDiagram
  participant U as User
  participant A as Cindy Agent
  participant P as Web Search Plugin
  participant H as Cindy Host
  participant T as Tavily Extract
  U->>A: Confirm public URL may be sent
  A->>P: "fetch_page(url, confirm_public_url=true)"
  P->>P: Validate and normalize URL
  P->>H: cindy.fetch(api.tavily.com/extract)
  H->>T: Inject Tavily credential and send URL
  T-->>H: Extract response
  H-->>P: Status and response body
  P->>P: Validate size/shape and truncate content
  P-->>A: Markdown marked as untrusted
Loading

Reviews (7): Last reviewed commit: "fix(cindy-web-search): require page URL ..." | Re-trigger Greptile

greptile-apps[bot]
greptile-apps Bot previously approved these changes Aug 11, 2026
@nanaco666

Copy link
Copy Markdown
Collaborator

当前自动门禁尚未通过(head aaf5ae1b…

新 PR 已进入巡检,当前状态:

  • Greptile 已对当前 head 复审为 5/5(Summary 标注 Last reviewed commit 即当前 head),未解决 review thread 为 0,也没有有效的 CHANGES_REQUESTED。
  • Verify pull request workflow 为 action_required(Repository-wide gates 与 changed-plugin packaging 尚未产生)。
  • Cindy 自动审查尚无针对当前 head 的结论。
  • approving review 为 Greptile 自动审批,尚缺维护者人工 approving review;且本 PR 新增 fetch_page 工具能力,按仓库契约属于敏感变更,需要维护者人工 review。

请批准并跑绿 workflow,等待 Cindy 对当前 head 复审通过并完成维护者正式 Approve;完成前请勿合并。

@zqchris

zqchris commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

🤖 Cindy Automated Review / Cindy 自动审查(head aaf5ae1

Security ⚠️ The Tavily credential remains host-injected only for api.tavily.com, and the sandbox neither reads nor copies it. The new path has no Node/subprocess/dynamic-execution/vendor changes, bounds both upstream response size and returned content, and marks page content as untrusted. However, the URL guard has a correctness defect listed below.

Design ⚠️ fetch_page is implemented for any single public HTTP(S) URL, but the top-level routing contract describes it only as reading a search-result page. More importantly, the URL validation currently rejects ordinary valid URLs containing uppercase ASCII characters.

Duplication N/A — this extends the existing Web Search plugin rather than adding a new plugin. The PR also explains why it reuses Tavily Extract instead of introducing TinyFish.

Process ✅ The packaged-content version is bumped from 1.3.2 to 1.4.0; the four locales and paired READMEs are synchronized; the actual PR commit has a matching Signed-off-by and DCO passes; no bundled dependency/license update is needed. ❓ The required Verify pull request workflow is still action_required, so repository-wide and changed-plugin packaging jobs have not run on this head.

History ✅ No prior fetch_page / Tavily Extract implementation, removal, or revert was found in this repository. makecindy/cindy#2401 proposed a provider-backed page-reading path; this PR explicitly discusses its Tavily-vs-TinyFish choice, so the history does not meet the oscillation/undisclosed-reversal threshold.

Issues

  1. P1 — valid URLs with uppercase characters are rejected before the request (cindy-web-search/main.js:146-154). The character class /[\\^@-^_\u007f]/ treats @-^ as a range, so it matches every ASCII character from @ through ^, including A-Z. Consequently normal URLs such as https://example.test/Article, uppercase query values, or an uppercase scheme fail validation despite satisfying the declared public HTTP(S) contract. Replace it with an explicit control-character check (and add uppercase path/query regression cases).
  2. P1 — routing copy understates the implemented capability (cindy-web-search/ghost.json:6; locales/{en,zh-CN,ja,ko}.json:4). The tool accepts any public page, but whenToUse limits recall to “a search result” page. Either describe arbitrary public HTTP(S) page reading consistently across all four locales, or enforce the search-result-only boundary in code and tests.

Other bot feedback: Greptile’s current-head 5/5 found no actionable defect; the two issues above were independently reproduced from the current raw head. No unresolved review thread or DCO phantom-commit report exists.

Verdict: ⚠️ Changes recommended. Please fix both P1 contract/correctness defects, update from current main, and rerun the required workflow.

Complete contract: .greptile/rules.md; merge decisions are made by maintainers.

@nanaco666

Copy link
Copy Markdown
Collaborator

当前合并门禁仍未通过(head aaf5ae1b…

Cindy 自动审查已对当前 head 出结论,门禁状态有更新:

  • Greptile 对当前 head 复审为 5/5,未解决 review thread 为 0,无有效 CHANGES_REQUESTED。
  • Verify pull request 已通过(run 73):Repository-wide gates、changed-plugin packaging、Greptile Review、DCO 全部 success。
  • Cindy 自动审查结论为 ⚠️ Changes recommended,含 2 个 P1:
    1. URL 校验将合法大写字符误判为非法(cindy-web-search/main.js:146-154,字符类 @-^ 被当作区间,A-Z 全部命中),需改为显式控制字符校验并补充大写路径/query 回归用例;
    2. whenToUse 与四语言 locale 只描述「搜索结果页」,与 fetch_page 实际接受任意公开 HTTP(S) 页面的能力不一致,需统一文案或收窄代码能力。
  • approving review 仍为 Greptile 自动审批,尚缺维护者人工 approving review。

请先修复上述 P1 并在当前 head 重新跑完门禁;完成前请勿合并。

@Battleplus

Copy link
Copy Markdown
Author

已修复 Cindy 自动审查指出的两个 P1,并同步到最新 main1e5efe5)。

  1. URL 校验:把反斜杠检查与 ASCII 控制字符检查拆开,控制字符现在明确使用 U+0000–U+001FU+007F,不再存在字符范围歧义。新增以下合法 URL 回归用例,均会正常调用 Tavily Extract:
    • https://example.test/Article
    • https://example.test/?token=ABC
    • HTTPS://EXAMPLE.TEST/Article
  2. 路由契约:ghost.jsonen / zh-CN / ja / ko 四份 locale 的 whenToUse 已统一为“读取任意公开 HTTP(S) 页面,包括但不限于搜索结果页”。测试锁定了五份描述的对应语义。

原有安全边界保持不变:反斜杠、控制字符、内嵌凭证、非 HTTP(S)、明显私网/回环/保留地址和超长 URL 仍在网络请求前拒绝;没有新增 host、secret、slot、依赖或权限。

本地验证:

  • node --check cindy-web-search/main.js
  • node --check cindy-web-search/settings.js
  • node --test .tests/cindy-web-search.test.mjs .tests/localization.test.mjs .tests/plugin-contract.test.mjs .tests/provisioning.test.mjs .tests/publish-workflows.test.mjs63 passed, 0 failed
  • git diff --check — clean
  • 官方打包脚本成功生成精确 HEAD 产物;版本仍为 1.4.0,包含 search_web / fetch_page,hosts/secrets 未变化。SHA-256:762a6a8bc31145ddfacc467db6d0d2e3d713bc85c7fb4c862b4857b6e130008f

修复 commit:37d61b2b4abd25dd79a3fa3b3b230086b8f07f47(DCO signed-off)。

greptile-apps[bot]
greptile-apps Bot previously approved these changes Aug 13, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 37d61b2b4a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread cindy-web-search/ghost.json Outdated
@Battleplus

Copy link
Copy Markdown
Author

37d61b2 修复两个 P1 的基础上,650b265 进一步补齐了页面读取的完整能力契约:

  • ghost.json、en / zh-CN / ja / ko 顶层描述和中英文 README 均明确为“任意单个公开 HTTP(S) 页面”;
  • 四语言 fetch_page 说明均明确:不负责浏览器登录、不执行页面脚本;网页内容是不可信输入;advanced 可能消耗更多 Tavily credits;正文最多 50000 字符;
  • 大写查询参数回归用例精确覆盖 https://example.test/?Token=ABC;大小写 path、scheme、host 及控制字符/私网/非 HTTP(S) 安全用例继续通过。

最新 head 本地验证:

  • repository-wide + 插件定向测试:63 passed, 0 failed;
  • node --check、JSON 解析、git diff --check:通过;
  • 官方 package-plugin.sh 对精确 HEAD dry-run 成功,产物包含 15 个预期条目,SHA-256 c77af4c5e08128023b0c15937f0e5a4180e2f5b9507273f9afe5c62712fc7293
  • commit 已 DCO signed-off,原 PR 分支仅 fast-forward 更新,未关闭或重开 PR。

@nanaco666

Copy link
Copy Markdown
Collaborator

当前合并门禁未通过(head 650b2655…

head 已更新到 650b2655(新增 commit「fix(cindy-web-search): clarify page extraction contract」),自动门禁状态如下:

  • 未解决 review thread:1 条cindy-web-search/ghost.json,非 outdated)——提示 settings 页面需补充 fetch_page 的 Tavily 配置与能力说明。
  • Verify pull request:action_required(尚未被批准跑 workflow);Repository-wide gates 与 changed-plugin packaging 未产生结果,Greptile Review 正在对该 head 重审(in_progress)。
  • Cindy 自动审查尚未对该 head 出结论(此前结论基于 aaf5ae1b);最新有效的 approving review 已失效,当前无有效 approve。

请先解决未解决线程、批准并跑绿 workflow、等待 Cindy 对当前 head 复审通过并完成维护者正式 Approve;完成前请勿合并。

@Battleplus

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@Battleplus

Copy link
Copy Markdown
Author

Additional hardening is now on the PR head in 967753e:

  • fetch_page unexpected runtime failures now return a page-reading-specific actionable message instead of being mislabeled as search failures.
  • Internal exception text (for example a provider-shape TypeError) is no longer exposed to users.
  • Added a regression case for a null provider response.

Validation on the exact committed head:

  • required repository test matrix: 65 passed, 0 failed
  • node --check cindy-web-search/main.js
  • git diff --check
  • official package script + ZIP integrity check passed
  • package SHA-256: 525dae2718344a188352228d2aee13a386ae4106d307a32a8a509bdf18ea50b2

Signed-off-by: Battleplus <3559424769@qq.com>
Signed-off-by: Battleplus <3559424769@qq.com>
Signed-off-by: Battleplus <3559424769@qq.com>
Signed-off-by: Battleplus <3559424769@qq.com>
Signed-off-by: Battleplus <3559424769@qq.com>
@Battleplus
Battleplus force-pushed the feat/cindy-web-search-fetch-page branch from 967753e to 7781e25 Compare August 13, 2026 03:34
@Battleplus

Copy link
Copy Markdown
Author

Validation refreshed after the branch was rebased onto current main (f690bce). The current PR head is 7781e25; the PR diff remains limited to Cindy Web Search.

  • required repository test matrix: 65 passed, 0 failed
  • JavaScript syntax checks and git diff --check: passed
  • official package script and ZIP integrity check: passed
  • current package SHA-256: 9f5bce20c9f0b521d061498cb567a181b7e7190eb6153901898c9a60be46ac22

greptile-apps[bot]
greptile-apps Bot previously approved these changes Aug 13, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7781e25ad8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread cindy-web-search/main.js
Signed-off-by: Battleplus <3559424769@qq.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 208b899b64

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread cindy-web-search/main.js
greptile-apps[bot]
greptile-apps Bot previously approved these changes Aug 13, 2026
Signed-off-by: Battleplus <3559424769@qq.com>
Signed-off-by: Battleplus <3559424769@qq.com>
greptile-apps[bot]
greptile-apps Bot previously approved these changes Aug 13, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cfa6e226d8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread cindy-web-search/main.js Outdated
Signed-off-by: Battleplus <3559424769@qq.com>
greptile-apps[bot]
greptile-apps Bot previously approved these changes Aug 13, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 30e5d5458e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread cindy-web-search/main.js Outdated
Comment thread cindy-web-search/ghost.json Outdated
Signed-off-by: Battleplus <3559424769@qq.com>
@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown

Want your agent to iterate on Greptile's feedback? Try greploops.

@Battleplus

Copy link
Copy Markdown
Author

最新 head 0b0b6a8 已完成本轮 P1 修复:DCO 与 Greptile exact-head 5/5/Approve 已通过,所有 review threads 已解决,本地规定测试 67/67 通过,官方包校验通过。当前 Verify run 31666384309 仍为 fork PR 的 action_required(jobs 尚未创建),烦请有写权限的维护者批准 workflow,并请 Cindy 对该 exact head 复审。新增 confirm_public_url 是为解决凭证外发审查而加入的必填显式用户确认门槛;完整 query/path 保留,网络 hosts/secrets/slots 未扩大。

@zqchris

zqchris commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

🤖 Cindy 自动审查 / Cindy Automated Review(head 0b0b6a8

Security — Pass. fetch_page requires confirm_public_url=true before any network call; cindy-web-search/main.js:146-157 rejects malformed, credential-bearing userinfo, control-character, and clearly non-public URLs, and strips browser-local fragments before sending the URL to Tavily. The request still targets only the existing api.tavily.com allowlist entry; the Tavily key remains host-injected and is not read or copied by the plugin. Response and content sizes are bounded, page content is marked untrusted, and this change adds no Node worker, subprocess, dynamic execution, weak randomness, vendor, or binary surface.

Design — Pass. The fetch_page tool contract, whenToUse, four locales, settings copy, and paired README entries now consistently describe explicitly confirmed public HTTP(S) page reading, query preservation, fragment removal, Tavily cost/limits, and untrusted content. Error paths are actionable and do not expose upstream bodies or internal exception text. The operation is read-only, so irreversible-side-effect tri-state disclosure is not applicable.

Duplication — N/A. This extends the existing Web Search plugin; it does not add a second plugin or provider-specific duplicate.

Process — Needs maintainer action. Version 1.4.0, four locales, paired READMEs, DCO, and Greptile are green; the actual PR commit list contains 10 commits and DCO is passing. All review threads are resolved. However, Verify pull request run 31666384309 is action_required, so the required Repository-wide gates and changed-plugin packaging checks have not produced CI evidence for this head. The new sensitive fetch_page capability also requires final maintainer review.

History — Pass. No prior fetch_page/Tavily Extract implementation, removal, or revert was found; the PR explains its Tavily-vs-TinyFish choice, so no undisclosed route reversal was found. The usage-limit bot comment is noise; no phantom DCO commit was found.

Issues

  1. Maintainer task: approve and run Verify pull request for head 0b0b6a8, then confirm Repository-wide gates and changed-plugin packaging pass.
  2. Maintainer task: perform the required manual review of the new sensitive page-reading capability.

Verdict: ❓ Needs maintainer judgement. Code-side P1 findings are closed; do not merge until the required workflow and manual review are complete.

Complete contract: .greptile/rules.md; merge decisions are made by maintainers.

@nanaco666

Copy link
Copy Markdown
Collaborator

当前合并门禁未通过(head 0b0b6a84…

head 已更新到 0b0b6a84(在 967753e/7781e25 加固与 rebase 基础上),自动门禁状态如下:

  • Greptile 已对当前 head 复审为 5/5 并自动 Approve(headSha 与当前 head 一致);全部 6 条 review thread 均已 resolved;DCO success。
  • Cindy 自动审查已对当前 head 出结论:❓ Needs maintainer judgement —— 代码侧 P1 已闭环(Security/Design Pass),但 Verify pull request 仍为 action_required,Repository-wide gates 与 changed-plugin packaging 尚未产生 CI 证据;新增 fetch_page 敏感能力仍需维护者人工 review。
  • approving review 目前仅有 Greptile 自动审批,尚缺维护者人工 approving review。

请批准并跑绿 Verify workflow,等待维护者完成敏感能力人工 review 并正式 Approve;完成前请勿合并。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants