-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathync
More file actions
28 lines (26 loc) · 11.5 KB
/
ync
File metadata and controls
28 lines (26 loc) · 11.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[33mcommit 4e9de3951993857eff27588b1382d1d701f7d7a0[m[33m ([m[mrefs/worklog/remotes/origin/worklog/data[m[33m)[m
Author: rgardler-msft <ross.gardler@microsoft.com>
Date: Sun Feb 15 17:40:37 2026 -0800
Sync work items and comments
[1mdiff --git a/.worklog/worklog-data.jsonl b/.worklog/worklog-data.jsonl[m
[1mindex a8062d8..b009e35 100644[m
[1m--- a/.worklog/worklog-data.jsonl[m
[1m+++ b/.worklog/worklog-data.jsonl[m
[36m@@ -162,7 +162,7 @@[m
{"data":{"assignee":"gpt-5.2-codex","createdAt":"2026-01-27T22:25:12.693Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Add a CI pipeline step that runs the new TUI tests in a headless/container environment. Document required deps and provide a Dockerfile/test runner for reproducible TUI automation.\\n\\nAcceptance Criteria:\\n- GitHub Actions workflow runs TUI test job on every pull request.\\n- Headless/container-compatible test runner is provided and documented.\\n- Dockerfile exists to run the TUI tests reproducibly.\\n- Documentation lists required dependencies and how to run locally/in CI.\\n","effort":"","githubIssueNumber":269,"githubIssueUpdatedAt":"2026-02-10T11:21:58Z","id":"WL-0MKX5ZVN905MXHWX","issueType":"chore","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"medium","risk":"","sortIndex":2500,"stage":"done","status":"completed","tags":[],"title":"Add CI job to run TUI tests in headless environment","updatedAt":"2026-02-11T09:48:34.262Z"},"type":"workitem"}[m
{"data":{"assignee":"Patch","createdAt":"2026-01-27T22:27:55.362Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Summary:\nThe list currently registers overlapping handlers for selection and click events (select, select item, click, click with data). This causes multiple render/update paths to fire and makes behavior harder to reason about.\n\nScope:\n- Consolidate list selection handling into a single handler or shared function.\n- Ensure updates to detail pane and render happen once per interaction.\n- Remove redundant setTimeout-based click handler if possible.\n\nAcceptance criteria:\n- A single, well-documented list selection update path exists.\n- Rendering occurs once per interaction without regressions in keyboard or mouse navigation.","effort":"","githubIssueNumber":270,"githubIssueUpdatedAt":"2026-02-10T11:21:59Z","id":"WL-0MKX63D5U10ETR4S","issueType":"task","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"high","risk":"","sortIndex":1200,"stage":"done","status":"completed","tags":[],"title":"Deduplicate list selection/click handlers","updatedAt":"2026-02-11T09:48:24.040Z"},"type":"workitem"}[m
{"data":{"assignee":"Patch","createdAt":"2026-01-27T22:27:55.589Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Summary:\nThe TUI reads rendered lines from blessed private fields (_clines.real/_clines.fake) in getRenderedLineAtClick/getRenderedLineAtScreen. This is brittle across blessed versions and increases maintenance risk.\n\nScope:\n- Replace private field access with a safer method (own render buffer, or use getContent with tracked line mapping).\n- Add tests for click-to-open details that do not depend on blessed internals.\n\nAcceptance criteria:\n- No references to _clines in TUI code.\n- Click-to-open details still works reliably.","effort":"","githubIssueNumber":271,"githubIssueUpdatedAt":"2026-02-10T11:21:59Z","id":"WL-0MKX63DC51U0NV02","issueType":"task","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"high","risk":"","sortIndex":1300,"stage":"in_review","status":"completed","tags":[],"title":"Avoid reliance on blessed private _clines","updatedAt":"2026-02-11T09:48:24.730Z"},"type":"workitem"}[m
[31m-{"data":{"assignee":"OpenCode","createdAt":"2026-01-27T22:27:55.784Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Summary:\nClipboard copy uses spawnSync for pbcopy/clip/xclip/xsel in the UI thread. This is blocking and platform-specific logic is inline in tui.ts.\n\nScope:\n- Extract clipboard logic into a helper module (async and testable).\n- Add graceful detection and clearer error messages when no clipboard tool exists.\n- Optionally add a user-visible hint for installing xclip/xsel.\n\nAcceptance criteria:\n- Clipboard operations are non-blocking.\n- Clipboard behavior is consistent across platforms and tested with mocks.","effort":"","githubIssueNumber":272,"githubIssueUpdatedAt":"2026-02-10T11:22:02Z","id":"WL-0MKX63DHJ101712F","issueType":"chore","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"low","risk":"","sortIndex":6800,"stage":"intake_complete","status":"in-progress","tags":[],"title":"Refactor clipboard support into async helper","updatedAt":"2026-02-16T01:07:58.569Z"},"type":"workitem"}[m
[32m+[m[32m{"data":{"assignee":"OpenCode","createdAt":"2026-01-27T22:27:55.784Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Summary:\nClipboard copy uses spawnSync for pbcopy/clip/xclip/xsel in the UI thread. This is blocking and platform-specific logic is inline in tui.ts.\n\nScope:\n- Extract clipboard logic into a helper module (async and testable).\n- Add graceful detection and clearer error messages when no clipboard tool exists.\n- Optionally add a user-visible hint for installing xclip/xsel.\n\nAcceptance criteria:\n- Clipboard operations are non-blocking.\n- Clipboard behavior is consistent across platforms and tested with mocks.","effort":"","githubIssueNumber":272,"githubIssueUpdatedAt":"2026-02-10T11:22:02Z","id":"WL-0MKX63DHJ101712F","issueType":"chore","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"low","risk":"","sortIndex":6800,"stage":"done","status":"completed","tags":[],"title":"Refactor clipboard support into async helper","updatedAt":"2026-02-16T01:25:12.486Z"},"type":"workitem"}[m
{"data":{"assignee":"gpt-5.2-codex","createdAt":"2026-01-27T22:27:55.974Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Summary:\nFiltering and refresh logic is duplicated across refreshFromDatabase and setFilterNext. This makes it easy to introduce inconsistent behavior.\n\nScope:\n- Create a single data refresh path that accepts a filter descriptor.\n- Centralize filter rules for open/in-progress/blocked/closed.\n\nAcceptance criteria:\n- Filtering behavior is consistent across all shortcuts and refresh paths.\n- Reduced duplication in TUI data-loading code.","effort":"","githubIssueNumber":273,"githubIssueUpdatedAt":"2026-02-10T11:22:04Z","id":"WL-0MKX63DMU07DRSQR","issueType":"task","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"medium","risk":"","sortIndex":2600,"stage":"done","status":"completed","tags":[],"title":"Unify query/filter logic for TUI list refresh","updatedAt":"2026-02-11T09:48:37.519Z"},"type":"workitem"}[m
{"data":{"assignee":"Patch","createdAt":"2026-01-27T22:27:56.166Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Summary:\nExit logic is duplicated for q/C-c/escape and includes direct process.exit calls. This should be centralized to guarantee cleanup (persist state, stop server, destroy screen).\n\nScope:\n- Implement a single shutdown function for all exits.\n- Ensure opencode server, timers, and event handlers are cleaned up before exit.\n\nAcceptance criteria:\n- All exit paths use a shared shutdown routine.\n- No direct process.exit calls outside the shutdown helper.","effort":"","githubIssueNumber":274,"githubIssueUpdatedAt":"2026-02-10T11:22:07Z","id":"WL-0MKX63DS61P80NEK","issueType":"task","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"high","risk":"","sortIndex":1400,"stage":"in_review","status":"completed","tags":[],"title":"Introduce centralized shutdown/cleanup flow","updatedAt":"2026-02-11T09:48:33.202Z"},"type":"workitem"}[m
{"data":{"assignee":"Patch","createdAt":"2026-01-27T22:27:56.382Z","createdBy":"","deleteReason":"","deletedBy":"","dependencies":[],"description":"Summary:\nThe file maintains extensive mutable module-level state (items, expanded, showClosed, opencode state). This complicates reasoning and refactor work.\n\nScope:\n- Introduce a state container object and pass it to helpers/components.\n- Reduce reliance on closed-over variables within event handlers.\n\nAcceptance criteria:\n- State is centralized in a single object with explicit updates.\n- Improved testability of state transitions.","effort":"","githubIssueNumber":275,"githubIssueUpdatedAt":"2026-02-10T11:22:08Z","id":"WL-0MKX63DY618PVO2V","issueType":"task","needsProducerReview":false,"parentId":"WL-0MKX5ZBUR1MIA4QN","priority":"high","risk":"","sortIndex":1500,"stage":"done","status":"completed","tags":[],"title":"Reduce mutable global state in TUI module","updatedAt":"2026-02-11T09:48:38.152Z"},"type":"workitem"}[m
[36m@@ -699,6 +699,8 @@[m
{"data":{"author":"OpenCode","comment":"PR opened: https://github.com/rgardler-msft/Worklog/pull/395","createdAt":"2026-02-06T07:20:15.450Z","githubCommentId":3865697700,"githubCommentUpdatedAt":"2026-02-07T22:52:28Z","id":"WL-C0MLAK2MAI0DMF8LZ","references":[],"workItemId":"WL-0MKX63DC51U0NV02"},"type":"comment"}[m
{"data":{"author":"worklog","comment":"Closed with reason: PR merged: https://github.com/rgardler-msft/Worklog/pull/395 (merge commit a691fe1)","createdAt":"2026-02-06T07:25:11.497Z","githubCommentId":3865697715,"githubCommentUpdatedAt":"2026-02-07T22:52:29Z","id":"WL-C0MLAK8YQ11LZNVDI","references":[],"workItemId":"WL-0MKX63DC51U0NV02"},"type":"comment"}[m
{"data":{"author":"OpenCode","comment":"Committed async clipboard helper (src/clipboard.ts) and updated TUI to use it (src/tui/controller.ts); tests adjusted where necessary. Commit: dff9630","createdAt":"2026-02-16T01:07:58.559Z","id":"WL-C0MLOH6DPA1CDJRGY","references":[],"workItemId":"WL-0MKX63DHJ101712F"},"type":"comment"}[m
[32m+[m[32m{"data":{"author":"OpenCode","comment":"PR #598 merged to main.","createdAt":"2026-02-16T01:23:55.741Z","id":"WL-C0MLOHQW9O0QK9WYI","references":[],"workItemId":"WL-0MKX63DHJ101712F"},"type":"comment"}[m
[32m+[m[32m{"data":{"author":"OpenCode","comment":"Cleaned up branch: deleted local and remote feature branch wl-WL-0MKX63DHJ101712F-async-clipboard.","createdAt":"2026-02-16T01:25:12.486Z","id":"WL-C0MLOHSJHI0V048WO","references":[],"workItemId":"WL-0MKX63DHJ101712F"},"type":"comment"}[m
{"data":{"author":"gpt-5.2-codex","comment":"Unified TUI list refresh/filter logic into refreshListWithOptions to centralize status filtering and closed-item handling. Updated refreshFromDatabase, setFilterNext, and filter-clear flow to use the shared path. Tests: npm test.","createdAt":"2026-02-07T08:32:48.715Z","githubCommentId":3865697950,"githubCommentUpdatedAt":"2026-02-07T22:52:40Z","id":"WL-C0MLC23RYI0OLNFMQ","references":[],"workItemId":"WL-0MKX63DMU07DRSQR"},"type":"comment"}[m
{"data":{"author":"gpt-5.2-codex","comment":"Committed: 482b834 (WL-0MKX63DMU07DRSQR: unify TUI list refresh filtering).","createdAt":"2026-02-07T08:35:36.903Z","githubCommentId":3865697971,"githubCommentUpdatedAt":"2026-02-07T22:52:41Z","id":"WL-C0MLC27DQF0PMDG2T","references":[],"workItemId":"WL-0MKX63DMU07DRSQR"},"type":"comment"}[m
{"data":{"author":"gpt-5.2-codex","comment":"PR created: https://github.com/rgardler-msft/Worklog/pull/413\\nBlocked on review and merge.","createdAt":"2026-02-07T08:36:16.082Z","githubCommentId":3865698001,"githubCommentUpdatedAt":"2026-02-07T22:52:42Z","id":"WL-C0MLC287YQ1PSGAWG","references":[],"workItemId":"WL-0MKX63DMU07DRSQR"},"type":"comment"}[m