jiantw83
|
a944141109
|
fix(留言分頁): 改用 timeline 分頁讀取留言
Gitea 議題留言端點無法可靠處理分頁;改由 timeline 逐頁篩選 comment 事件並去重,讓抽取、整併與 PR 留言流程取得完整集合。
|
2026-09-22 14:37:38 +08:00 |
|
 jiantw83andClaude Opus 5
|
c1ab712afd
|
feat(議題解析): 換掉一個段落的內容,標題與其餘段落一字不動
整併留言裡的決策時用它。不整份重寫的理由跟 upsertLineInSection 一樣,只是代價更大:
重寫會把別人在其他段落的編輯一起蓋掉,而議題的編輯紀錄沒有人會去比對。
三件事照著同檔既有的規矩做:圍欄裡的假標題不算段落;同名標題出現不只一次時交回 ambiguous
而不賭第一個(蓋掉的是一整段,猜錯的代價比 tickLine 更高);換行沿用 body 原本的那一種,
CRLF 的 body 裡混進 LF 會讓抽取契約交出的 raw 對不上原文,之後就勾不動那幾行。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-09-17 09:19:08 +00:00 |
|
 jiantw83andClaude Opus 5
|
bbfa842e2a
|
refactor(抽取): 議題讀取與留言計數收進 lib,兩支抽取腳本共用
工作包的抽取契約(#9)要做的事與需求議題那一支有三件完全重疊:讀議題、把「不存在」
與「沒有讀取權」分成兩種錯誤碼、以 +1 reaction 數出未整併的留言則數。這三件事的規則
只該有一份,複製一份到新腳本等於日後改規則要記得改兩個地方。
fetchIssue、countUnmergedComments 與試跑時那句附註一起搬到 lib,issue-extract 改為
呼叫它們,行為不變。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-09-17 06:30:22 +00:00 |
|
 jiantw83andClaude Opus 5
|
be6ceddde0
|
refactor(參數): parseIndex 抽到 lib,四支腳本共用
同一段 /^[1-9]\d*$/ 與 BAD_INDEX 已經抄了四份。lib 本來就放著同性質的 parseRepo,
這一支該待在它旁邊。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-09-17 06:06:10 +00:00 |
|
 jiantw83andClaude Opus 5
|
6125c2b6e0
|
fix(issue-extract): 留言逐頁讀完,不再只數第一頁
原本只打一次留言端點就收工,留言超過一頁時未整併的則數會少算——而少算的後果
是下游以為描述是最新的,照著過期的描述做事。改用 lib.pages 走完所有頁,讀不完
就以 COMMENT_LIMIT 報錯,不無聲回傳半份。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-09-17 05:00:28 +00:00 |
|
 jiantw83andClaude Opus 5
|
6254a6b53d
|
feat(issue-extract): 建立需求議題的抽取契約
下游(分析、實作)唯一的議題讀取管道,存在的理由是「不必吞下整份議題全文」。
輸出契約上的十四個欄位,缺少的段落回傳空值。
只讀 body,不把留言內容納入輸出,但回報未整併的留言則數,好讓下游知道自己是
不是在拿過期的描述做事。已整併的留言由 sdlc-sync 打上 +1 reaction,而 Gitea
的留言物件不含 reaction,只能逐則再查一次——請求數會隨留言數增長,但這個數字
要準。
議題不存在與沒有讀取權分成兩個錯誤碼:前者是輸入錯,後者要去改權限,處置不同
就不該共用一個碼。
Closes #5
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-09-17 05:00:27 +00:00 |
|