fix(tools): remove canned source-derived tools - #1302
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head8d50d677a46e9e331d0d0d19cf08f85e3052dfed. -
Head SHA:
8d50d677a46e9e331d0d0d19cf08f85e3052dfed -
Workflow run: 31701653311
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Backend (2 files)"]
S2 --> I2["API and service runtime"]
I2 --> R2["Review risk: Backend (2 files)"]
R2 --> V2["backend tests"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage evidence job did not run or did not publish coverage evidence. Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Backend (2 files)"]
S2 --> I2["API and service runtime"]
I2 --> R2["Review risk: Backend (2 files)"]
R2 --> V2["backend tests"]
|
|
PR governance metadata gate is not ready for
|
…onto live #1301 Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
@coderabbitai review Please review the unchanged exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== Exact HEAD and parents =='
git rev-parse HEAD
git show -s --format='commit=%H%nparents=%P%nsubject=%s' HEAD
git diff --name-status 646a2401de35529425163fdefa7ad5e6355c349f HEAD
git diff --check 646a2401de35529425163fdefa7ad5e6355c349f HEAD
echo '== Scoped diff =='
git diff --unified=40 646a2401de35529425163fdefa7ad5e6355c349f HEAD -- \
AGENTS.md CHANGELOG.md backend/api/tools.py backend/tests/test_tools_api.py
echo '== tools.py outline =='
ast-grep outline backend/api/tools.py --items all --view expanded || true
echo '== Removed-code references and tool handler registrations =='
rg -n -C 4 \
-e '\b(thread_summarizer|action_item_extractor|sender_dag_analytics|meeting_candidate_finder)\b' \
-e 'TOOL_HANDLERS|TOOL_CATALOG|tool.*catalog|register.*tool|execute.*tool' \
backend/api/tools.py backend/tests/test_tools_api.py
echo '== Router and handler context =='
rg -n -C 12 \
-e '^(async )?def (list_tools|get_tool|execute_tool)\b' \
-e 'HTTPException' \
-e 'Tool not found' \
backend/api/tools.pyLength of output: 59317 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== Repository-wide references to removed codes =='
rg -n -C 3 \
-g '!CHANGELOG.md' -g '!AGENTS.md' \
-e '\b(thread_summarizer|action_item_extractor|sender_dag_analytics|meeting_candidate_finder)\b' \
.
echo '== Tool registrations in current source =='
ast-grep run \
--pattern 'registry.register($INFO, $HANDLER)' \
--lang python \
backend/api/tools.py
echo '== Tool registry and route implementation =='
sed -n '105,165p;570,675p' backend/api/tools.py
echo '== Import and route wiring for tools router =='
rg -n -C 4 \
-e 'from api\.tools import' \
-e 'include_router\(.*tools' \
-e 'tools\.router' \
backend
echo '== Pull request state and exact-head checks =='
gh pr view 1302 --repo ContextualWisdomLab/naruon \
--json number,isDraft,headRefOid,baseRefName,headRefName,mergeStateStatus,statusCheckRollup \
--jq '{number,isDraft,headRefOid,baseRefName,headRefName,mergeStateStatus,checks:[.statusCheckRollup[]|{name,status,conclusion,detailsUrl}]}'Length of output: 23693 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo="ContextualWisdomLab/naruon"
sha="2ee0c65097c78a99849fc749a3a848440c50271c"
echo '== Failed workflow run =='
gh run view 32072753332 --repo "$repo" --log-failed || true
echo '== Exact-head check runs =='
gh api \
-H 'Accept: application/vnd.github+json' \
"/repos/$repo/commits/$sha/check-runs?per_page=100" \
--jq '.check_runs[] | {
name,
status,
conclusion,
started_at,
completed_at,
details_url,
output_title: .output.title,
output_summary: .output.summary
}'
echo '== Exact-head commit statuses =='
gh api \
-H 'Accept: application/vnd.github+json' \
"/repos/$repo/commits/$sha/status" \
--jq '{state, statuses: [.statuses[] | {context, state, target_url, description}]}'Length of output: 1897
I found no actionable code defects in the four-file diff against live parent The four removed codes have no remaining application references or registry registrations. The catalog, detail, and execute routes use the registry. Therefore, each removed code returns the required
PR No approval is issued.
|
…tor' into codex/pr1302-current
|
Exact head 현재 parent 계약을 포함한 focused suite 75개가 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Customer and safety outcome
Remove four built-in handlers that returned source-independent canned thread, task, relationship, and meeting outputs. Signed-session catalog/detail/execute paths omit those codes and return
404 Tool not found; no template, cached fixture, default-success, keyword, or phrase-table fallback is installed. #1300 mutation tombstones and #1301 phishing-detector absence remain unchanged.Current stacked authority
develop@042b0c70531b229af3acbd0421a2f23098d848b3fix/remove-unsafe-phishing-detector@ae299ce9287893fce4046e2b015cfe4dba9067c4fix/fail-closed-tool-mutations@0833fcbdba583b3c508620e5a09ccca060ab40e68739454f2e6e2ae6be742ee82f66cff103b28b90CHANGELOG.md,backend/api/tools.py,backend/tests/test_tools_api.pyNon-force parent restack
#1301 advanced from
050ee158...toae299ce...to adopt #1300's canonicalAGENTS.mdownership repair. This branch had already merged050ee158...ata39ba78d.... Commit8739454f...performs a normal two-parent merge with the new #1301 head and resolves that parent-only documentation change by taking the parent'sAGENTS.mdblob. All canned-tool product changes are preserved.The result keeps the whole #1300→#1301→#1302 stack out of parallel
AGENTS.mdownership: this PR now has only three effective product files. Predecessor checks/reviews do not transfer.Removed built-ins
thread_summarizer— fixed summary/key-points/questions with only the supplied thread ID interpolated;action_item_extractor— the same tasks and stale fixed due dates for every source;sender_dag_analytics— the same organization role, relation, and interaction count;meeting_candidate_finder— fixed meeting candidates independent of source evidence.These outputs could create fictitious decisions, work, organizational relationships, and calendar entries. Safe behavior is absence until source-bound evidence and an actual provider or disclosed deterministic transformation exist.
For every removed code on clean startup, catalog omission plus
404 Tool not foundon detail/execute is the required contract. A future implementation must resolve an authorized immutable source snapshot, invoke a real tenant-scoped provider or deterministic disclosed source transformation, return typed provenance/evidence, validate output schema, and fail closed on missing source/provider evidence. Fixed examples may not be reused as production results.Verification boundary
The new head invalidates predecessor local/hosted checks and reviews. Regenerate current-head repository and organization required evidence once the stacked prerequisite chain is executable. Do not use dummy commits, self-approval, bypass, or predecessor status transfer.
Merge boundary
Keep Draft until #1300/#1301 and their upstream prerequisite are protected-integrated or completely succeeded, this unchanged final head has every then-live required check terminal-success, all valid findings/threads are resolved, and qualifying post-last-push independent approval exists. No force-push, destructive rebase, self-approval, admin bypass, review dismissal/fabrication, gate weakening, dummy/no-op requeue commit, parallel docs ownership, or predecessor-evidence transfer.