24: Add forgejo_milestone_close and forgejo_milestone_reopen tools #38
No reviewers
Labels
No labels
bug
chore
documentation
enhancement
feature
ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
david/pi-extensions-and-skills!38
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/issue-24/add-forgejo-milestone-close-and-forgejo-milestone"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
24: Add forgejo_milestone_close and forgejo_milestone_reopen tools
Implements 24.
Generated in 7m 01s.
Review findings
Now let me check what label tools exist to determine the right wording for the DESIGN.md fix, and look at the tools test for the existing error test pattern.Now I have the full picture. Let me apply the three feasible fixes: DESIGN.md stale future-enhancement line, README smoke-test step 8, and the symmetric
reopenMilestone404 test.Now let me discover the build/test commands from the project files and run the gates.The forgejo extension hasbuild,test, andcheckscripts (no lint). Let me run the gates.All gates pass — build, check, and 173 tests (up from 172 with the new symmetric 404 test). Let me verify the final diff.All three feasible findings are fixed and gates are green. Here is the annotated findings document.Review Findings — 24
Summary
The change adds
forgejo_milestone_closeandforgejo_milestone_reopentools to the Forgejo extension as thin wrappers overeditMilestonewithstate: "closed"/"open", mirroring the existing issue close/reopen pattern. Gates run:npm run build(tsc) — PASS,npm run check(tsc --noEmit) — PASS,npm test(jest) — PASS (9 suites, 173 tests). Lint gate did not run — no lint script or ESLint config exists in either the root orextensions/forgejopackage. Remediation pass fixed 3 of 4 findings: the stale DESIGN.md future-enhancement line now marks milestone CRUD as shipped, README smoke-test step 8 now exercisesforgejo_milestone_close/forgejo_milestone_reopen, and a symmetric 404 not-found test was added forreopenMilestone(test count 172 → 173). The AGENTS.md commit-message finding is left unresolved: it concerns the already-committed Stage 1 commit message, and fixing it would require creating/amending a commit, which this stage is prohibited from doing.Critical
High
Medium
extensions/forgejo/docs/DESIGN.md:220— The "Future Enhancements (v2)" line "Repo-scoped ops (labels CRUD beyond list, milestones) if the agent needs them" is now stale: milestone CRUD (create/list/view/edit/close/reopen) is fully shipped, and this very diff updates DESIGN.md (tool counts + endpoint note) without correcting this line, leaving the doc internally contradictory. Suggested fix: change to "Repo-scoped ops (labels CRUD beyond list) if the agent needs them" or mark milestone ops as shipped.Low
extensions/forgejo/README.md:128— The manual smoke-test step 8 says "close it andforgejo_list_milestones state="all"still lists it" (referring to the edit tool'sstateparam), but never mentions the newforgejo_milestone_close/forgejo_milestone_reopentools that are the subject of this issue. Suggested fix: extend step 8 to callforgejo_milestone_close id=<id>, thenforgejo_milestone_reopen id=<id>and verify the state round-trips.extensions/forgejo/tests/milestones.test.ts:348— The newcloseMilestone / reopenMilestonedescribe block only has an error-propagation test forcloseMilestone;reopenMilestone's failure path is untested (the tools-level suite intests/tools.test.tsalso only exercises close errors). The sharededitMilestonepath means coverage is adequate, but a symmetric 404 test forreopenMilestonewould fully harden the new API surface. Suggested fix: add a "propagates a 404 not-found error unchanged" test callingreopenMilestone(target, 999).AGENTS.md:30(Stage 1 commit6c52f46) — The commit message is24: Add forgejo_milestone_close and forgejo_milestone_reopen tools, but the documented convention isissue-<N>: <summary>. Recent repo history (issues 21–23) uses the sameN:style, so this is consistent with practice yet deviates from the stated standard. Suggested fix: useissue-24: Add forgejo_milestone_close and forgejo_milestone_reopen toolsfor the commit (andissue-24: <title>for the PR) to match AGENTS.md.Low
extensions/forgejo/README.md:128— The manual smoke-test step 8 says "close it andforgejo_list_milestones state="all"still lists it" (referring to the edit tool'sstateparam), but never mentions the newforgejo_milestone_close/forgejo_milestone_reopentools that are the subject of this issue. Suggested fix: extend step 8 to callforgejo_milestone_close id=<id>, thenforgejo_milestone_reopen id=<id>and verify the state round-trips.extensions/forgejo/tests/milestones.test.ts:348— The newcloseMilestone / reopenMilestonedescribe block only has an error-propagation test forcloseMilestone;reopenMilestone's failure path is untested (the tools-level suite intests/tools.test.tsalso only exercises close errors). The sharededitMilestonepath means coverage is adequate, but a symmetric 404 test forreopenMilestonewould fully harden the new API surface. Suggested fix: add a "propagates a 404 not-found error unchanged" test callingreopenMilestone(target, 999).AGENTS.md:30(Stage 1 commit6c52f46) — The commit message is24: Add forgejo_milestone_close and forgejo_milestone_reopen tools, but the documented convention isissue-<N>: <summary>. Recent repo history (issues 21–23) uses the sameN:style, so this is consistent with practice yet deviates from the stated standard. Suggested fix: useissue-24: Add forgejo_milestone_close and forgejo_milestone_reopen toolsfor the commit (andissue-24: <title>for the PR) to match AGENTS.md.