When the issue tracker loads issues with includeCompleted: false (the default), completed issues are filtered out of memory. Subsequent save operations then write only the in-memory issues back to the CSV, permanently deleting completed issues.
Root Cause
loadIssuesFromCSV() filters out completed issues during load
saveIssuesToCSV() writes only what's in the issues array
- Any write operation after a filtered load deletes the filtered rows
Solution
- Remove global
issues array as state
- Read from CSV on demand with
readIssuesFromCSV()
- Use
appendIssueToCSV() for new issues (no rewrite)
- Use
updateIssueInCSV() for updates (reads all lines, modifies one, writes all back)
When the issue tracker loads issues with
includeCompleted: false(the default), completed issues are filtered out of memory. Subsequent save operations then write only the in-memory issues back to the CSV, permanently deleting completed issues.Root Cause
loadIssuesFromCSV()filters out completed issues during loadsaveIssuesToCSV()writes only what's in theissuesarraySolution
issuesarray as statereadIssuesFromCSV()appendIssueToCSV()for new issues (no rewrite)updateIssueInCSV()for updates (reads all lines, modifies one, writes all back)