Repository navigation
feat(advisor): Core-owned external-state consent gate and decision artifact - #28
Closed
Epslion404 wants to merge 1 commit into
Closed
Epslion404 wants to merge 1 commit into
Epslion404 wants to merge 1 commit into
Conversation
Adds services/advisor_consent.py (default-off gate, deterministic preview, consent scoped to endpoint set, field set and run id) and services/decision_artifacts.py (wavebench.decision.v1 writer with exclusive creation and no run directory means no artifact). Extends config with an append-only [advisor] section whose enable switch requires both allowlists, documents the egress boundary in the configuration reference, and covers the contract with 29 offline tests.
Epslion404
pushed a commit
to Epslion404/wavebench
that referenced
this pull request
Sep 29, 2026
PR Scaxlibur#27 and the focused advisor draft PR Scaxlibur#28 are closed: upstream-facing changes now start from upstream/master, while this fork keeps the competition package.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
本 PR 是 RFC #20(advisor 插件类别,
Draft)的阶段 2 实现:把「数据外发同意门」与decision artifact收归 Core。RFC 仍在 Draft,因此本 PR 先以 Draft 形式提出。内容
src/wavebench/services/advisor_consent.py:Core 侧同意门src/wavebench/services/decision_artifacts.py:wavebench.decision.v1decisions/,附加式、独占创建;无 run 目录时不落盘,不触碰run.json/summary.csv/steps/*;ThresholdPolicy),插件不得自带。src/wavebench/config.py+wavebench.example.toml:追加式的[advisor]段(enabled开启时必须同时给出endpoint_hosts与allowed_state_fields白名单;阈值需满足0 <= review <= accept <= 1)。docs/reference/configuration.md:新增「Advisor 外发边界」小节。不在本 PR 范围
AdvisorPlugin/EgressDeclaration/ advisor registry / 内置rule_advisor)、package_inspect与 lifecycle 支持、advisor askCLI、文档页与 RFC 索引登记——分别是 RFC 的阶段 1/3/4,会单独提出。验证
python -m pytest -q tests/test_advisor_consent.py tests/test_advisor_config.py tests/test_decision_artifacts.py tests/test_config_overrides.py tests/test_access_policy.py→ 74 passed, 30 subtests passed(全离线,无网络、无 API key、无第三方 SDK)python -m ruff check .→ All checks passedpython .agents/skills/wavebench-docs/scripts/audit_docs.py --quiet-warnings→ 0 errorspython scripts/generate_docs.py --check→ 生成 Reference 与源码同步说明
分支从
upstream/master拉出,只包含上述 Core 改动,便于单独评审;RFC 里advisor.external_state是否纳入 access policy(裁定 5b 暂不纳入)与 decision artifact 是否并入run report(裁定 6a 暂不并入)都不在本 PR 改动范围内。