issue-264: Verify the vision tool live against the DeepSeek API #277

Merged
david merged 2 commits from feature/issue-264/verify-the-vision-tool-live-against-the-deepseek-a into main 2026-09-17 12:13:39 +00:00
Owner

264: Verify the vision tool live against the DeepSeek API

Closes #264264.

This pull request was generated automatically by pi-loop and opened as a
Draft for human review. Do not merge without reviewing the changes.

Generated in 12m 23s.

Review findings

I'll start by examining the current state of the relevant files to understand the context before deciding on fixes.

Let me examine the packaging config and the implementation plan to understand what ships and where this file belongs.

Key discovery: the repo's .gitignore explicitly un-ignores extensions/**/findings.md and comments "Keep every extension's copy" — so a committed per-extension findings.md is the established audit-trail convention here (forgejo, grillme, postgres, penpot all ship theirs). That settles finding #1: the file belongs where it is; the reviewer's actionable ask is to mark the intended end-state clearly.

Let me read the usage.ts rate table (finding #2) to confirm its disclosure state.

Both findings are now clear:

  • Finding #2 (usage.ts:55): The rate table is already documented as a "Best-effort snapshot... re-check if DeepSeek changes prices" — the exact disclosed "best effort" the finding names. The suggested fix ("once a key is available, run check #4") is impossible without a key. This is an accepted/disclosed risk, not a bug → leave unresolved.
  • Finding #1 (findings.md): The file belongs here per repo convention (.gitignore explicitly commits extensions/**/findings.md as evidence). The actionable ask is to mark the intended end-state clearly. I'll add a short audit-trail note.

Applying the single fix:

Now let me verify the edit and run the test gate to confirm the suite is green.

The test gate is green (976 tests, 975 pass, 1 skipped, 0 fail). However, my edit accidentally consumed the ## Status: BLOCKED — could not run heading (it was in my oldText but not newText). Let me restore it and fix the dangling sentence.

Fix applied and verified. Summary of the single pass:

  • Finding #1 (findings.md shipped as a stale placeholder)Resolved. The repo's .gitignore explicitly un-ignores extensions/**/findings.md with the comment "Keep every extension's copy," so a committed per-extension findings.md is the established audit-trail convention (forgejo, grillme, postgres, penpot all ship theirs). I kept it in place and added a clear > Audit trail (committed by design) note marking the intended end-state: it's a placeholder that gets replaced with real results once a key is available.
  • Finding #2 (usage.ts:55 rate table not live-verified)Unresolved. Already documented as a "Best-effort snapshot… re-check if DeepSeek changes prices." The suggested fix requires a key that isn't available; it's an accepted/disclosed risk, not a bug.
  • Test gate green: 976 tests, 975 pass, 1 skipped, 0 fail (vision suite 96/96). No build/lint gate exists.

Review Findings — 264

Summary

The change adds a single new file, extensions/vision/findings.md, documenting that the opt-in, key-gated live verification (issue #264) could not run because no DEEPSEEK_API_KEY is present in the environment. The test gate ran (npm test → 976 tests, 975 pass, 1 skipped, 0 fail; vision suite 96/96) and matches the claim in the file; there is no build or lint gate. All factual claims in findings.md were verified against the actual source and are accurate. One Low finding was resolved: the findings.md placement was clarified as a committed audit trail (matching the repo's .gitignore convention of un-ignoring extensions/**/findings.md) with an explicit "replace with real results when a key is available" end-state. The remaining Low finding (the deepseek-flash rate table not being live-verified) is an accepted/disclosed best-effort risk that cannot be fixed without a key.

Critical

  • (none)

High

  • (none)

Medium

  • (none)

Low

  • extensions/vision/findings.md:1 — This file is a BLOCKED placeholder committed into the shipped extensions/vision/ directory, so it ships as part of the pi package and will remain a permanently-stale "could not run" note until a key is available. Suggested fix: keep it only as the audit trail, or move it out of the shipped extension dir (e.g. under a docs/ or .vision-live-check/ path); the file already says to "replace this blocker note with the real results," so mark the intended end-state clearly.
  • extensions/vision/src/usage.ts:55 (findings.md §"The four checks") — The deepseek-flash peak/off-peak rate table and the matching README cost table are asserted facts but were never live-verified: check #4 (cost sanity) is the only check that would catch a stale rate, and it is blocked by the missing key. This is already disclosed as "best effort" in usage.ts, the README, and IMPLEMENTATION_PLAN.md §16, so it is an accepted/disclosed risk rather than a bug; Suggested fix: once a key is available, run check #4 to confirm the numbers against DeepSeek's live pricing page and update the table if it drifted.
## 264: Verify the vision tool live against the DeepSeek API Closes #264 — [264](https://git.excelera.net/david/pi-extensions-and-skills/issues/264). > This pull request was generated automatically by pi-loop and opened as a > **Draft** for human review. Do not merge without reviewing the changes. Generated in 12m 23s. ## Review findings I'll start by examining the current state of the relevant files to understand the context before deciding on fixes. Let me examine the packaging config and the implementation plan to understand what ships and where this file belongs. Key discovery: the repo's `.gitignore` explicitly **un-ignores** `extensions/**/findings.md` and comments *"Keep every extension's copy"* — so a committed per-extension `findings.md` is the established audit-trail convention here (forgejo, grillme, postgres, penpot all ship theirs). That settles finding #1: the file belongs where it is; the reviewer's actionable ask is to *mark the intended end-state clearly*. Let me read the usage.ts rate table (finding #2) to confirm its disclosure state. Both findings are now clear: - **Finding #2 (`usage.ts:55`)**: The rate table is already documented as a "Best-effort snapshot... re-check if DeepSeek changes prices" — the exact disclosed "best effort" the finding names. The suggested fix ("once a key is available, run check #4") is impossible without a key. This is an accepted/disclosed risk, not a bug → leave unresolved. - **Finding #1 (`findings.md`)**: The file belongs here per repo convention (`.gitignore` explicitly commits `extensions/**/findings.md` as evidence). The actionable ask is to *mark the intended end-state clearly*. I'll add a short audit-trail note. Applying the single fix: Now let me verify the edit and run the test gate to confirm the suite is green. The test gate is green (**976 tests, 975 pass, 1 skipped, 0 fail**). However, my edit accidentally consumed the `## Status: BLOCKED — could not run` heading (it was in my `oldText` but not `newText`). Let me restore it and fix the dangling sentence. Fix applied and verified. Summary of the single pass: - **Finding #1 (`findings.md` shipped as a stale placeholder)** — **Resolved.** The repo's `.gitignore` explicitly un-ignores `extensions/**/findings.md` with the comment *"Keep every extension's copy,"* so a committed per-extension `findings.md` is the established audit-trail convention (forgejo, grillme, postgres, penpot all ship theirs). I kept it in place and added a clear `> Audit trail (committed by design)` note marking the intended end-state: it's a placeholder that gets replaced with real results once a key is available. - **Finding #2 (`usage.ts:55` rate table not live-verified)** — **Unresolved.** Already documented as a "Best-effort snapshot… re-check if DeepSeek changes prices." The suggested fix requires a key that isn't available; it's an accepted/disclosed risk, not a bug. - Test gate green: **976 tests, 975 pass, 1 skipped, 0 fail** (vision suite 96/96). No build/lint gate exists. --- # Review Findings — 264 ## Summary The change adds a single new file, `extensions/vision/findings.md`, documenting that the opt-in, key-gated live verification (issue #264) could not run because no `DEEPSEEK_API_KEY` is present in the environment. The test gate ran (`npm test` → 976 tests, 975 pass, 1 skipped, 0 fail; vision suite 96/96) and matches the claim in the file; there is no build or lint gate. All factual claims in `findings.md` were verified against the actual source and are accurate. One Low finding was resolved: the `findings.md` placement was clarified as a committed audit trail (matching the repo's `.gitignore` convention of un-ignoring `extensions/**/findings.md`) with an explicit "replace with real results when a key is available" end-state. The remaining Low finding (the `deepseek-flash` rate table not being live-verified) is an accepted/disclosed best-effort risk that cannot be fixed without a key. ## Critical - [ ] (none) ## High - [ ] (none) ## Medium - [ ] (none) ## Low - [x] `extensions/vision/findings.md:1` — This file is a BLOCKED placeholder committed into the shipped `extensions/vision/` directory, so it ships as part of the pi package and will remain a permanently-stale "could not run" note until a key is available. Suggested fix: keep it only as the audit trail, or move it out of the shipped extension dir (e.g. under a `docs/` or `.vision-live-check/` path); the file already says to "replace this blocker note with the real results," so mark the intended end-state clearly. - [ ] `extensions/vision/src/usage.ts:55` (`findings.md` §"The four checks") — The `deepseek-flash` peak/off-peak rate table and the matching README cost table are asserted facts but were never live-verified: check #4 (cost sanity) is the only check that would catch a stale rate, and it is blocked by the missing key. This is already disclosed as "best effort" in `usage.ts`, the README, and `IMPLEMENTATION_PLAN.md §16`, so it is an accepted/disclosed risk rather than a bug; Suggested fix: once a key is available, run check #4 to confirm the numbers against DeepSeek's live pricing page and update the table if it drifted.
david merged commit ca276d9668 into main 2026-09-17 12:13:39 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
david/pi-extensions-and-skills!277
No description provided.