Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
252 commits
Select commit Hold shift + click to select a range
fc83ee4
WL-0MQ8LKXH20058N1M: Fix colour mapping for intake_complete and plan_…
SorraTheOrc Jun 11, 2026
6918576
WL-0MQ8LKXH20058N1M: Fix theme not being applied to selection widget
SorraTheOrc Jun 11, 2026
de5489c
WL-0MQ8LKXH20058N1M: Add debug logging and placement option
SorraTheOrc Jun 11, 2026
f2f1c42
WL-0MQ8LKXH20058N1M: Write debug output to file instead of console
SorraTheOrc Jun 11, 2026
5323174
WL-0MQ8LKXH20058N1M: Move colour application inside render function
SorraTheOrc Jun 11, 2026
00bf726
WL-0MQ8LKXH20058N1M: Pre-build lines with colours in factory function
SorraTheOrc Jun 11, 2026
39e808e
WL-0MQ8LKXH20058N1M: Add debug logging to trace theme availability
SorraTheOrc Jun 11, 2026
f147261
WL-0MQ8LKXH20058N1M: Add debug logging to announceSelection
SorraTheOrc Jun 11, 2026
64f825d
WL-0MQ8LKXH20058N1M: Add more debug logging throughout flow
SorraTheOrc Jun 11, 2026
30eefb5
WL-0MQ8LKXH20058N1M: Add debugging after chooseWorkItem
SorraTheOrc Jun 11, 2026
6a160fc
WL-0MQ8LKXH20058N1M: Import stageColourToken function
SorraTheOrc Jun 11, 2026
42a66e7
WL-0MQ8LKXH20058N1M: Remove debug logging and fix line truncation
SorraTheOrc Jun 11, 2026
ccc12f9
WL-0MQ8LKXH20058N1M: Add stage-based colours to list items
SorraTheOrc Jun 11, 2026
ecad274
WL-0MQ8LKXH20058N1M: Clean up code smells
SorraTheOrc Jun 11, 2026
7cafb82
WL-0MQ8LKXH20058N1M: Fix formatBrowseOption call in fallback path
SorraTheOrc Jun 11, 2026
232e9f9
WL-0MQ8LKXH20058N1M: Fix parameter order in formatBrowseOption call
SorraTheOrc Jun 11, 2026
8be01ef
WL-0MQ8LQDZW0072EJJ: Remove /worklog and /worklog-select Pi TUI slash…
SorraTheOrc Jun 11, 2026
69bd2a0
WL-0MP160SZ3000LMO7: Add icon set and accessibility design spec
SorraTheOrc Jun 11, 2026
92fa240
WL-0MP160TAN006LLYQ: Implement priority and status icons in TUI list …
SorraTheOrc Jun 11, 2026
dcb09ac
WL-0MP160TK9001WPVQ: Implement icons in TUI detail pane and CLI output
SorraTheOrc Jun 11, 2026
f3ca18b
WL-0MP160TUI00871W9: Add --no-icons CLI flag to list and show commands
SorraTheOrc Jun 11, 2026
a1aa1e5
WL-0MP160UIS000G4AL: Document icons and --no-icons flag
SorraTheOrc Jun 11, 2026
696feee
WL-0MNAGKMG5002L3XJ: Use more graphical priority icons
SorraTheOrc Jun 11, 2026
17ff2f8
WL-0MNAGKMG5002L3XJ: Update documentation with final graphical icons
SorraTheOrc Jun 11, 2026
890c31e
Fix extractJsonObject to handle escaped braces in JSON strings
SorraTheOrc Jun 11, 2026
98d84af
WL-0MQA5BFU0006ZGZ9: Add --no-icons flag to wl piman extension markdo…
SorraTheOrc Jun 11, 2026
a161542
Fix --no-icons mode to avoid duplicate fallback text in output
SorraTheOrc Jun 11, 2026
cdfed16
Fix --no-icons option parsing (Commander converts to 'icons: false')
SorraTheOrc Jun 11, 2026
95db567
Fix truncate functions to handle emoji terminal width
SorraTheOrc Jun 12, 2026
a277adb
Expand emoji detection ranges for truncate functions
SorraTheOrc Jun 12, 2026
7d86d41
Add emoji icons to piman selection widget with blessed color tags
SorraTheOrc Jun 12, 2026
f6dbbb8
Replace Unicode icons with emoji icons in piman extension
SorraTheOrc Jun 12, 2026
35104e8
Remove blessed tags from piman icons to fix context preview
SorraTheOrc Jun 12, 2026
c546cfa
Expand emoji detection range to include ⭐ (U+2B50)
SorraTheOrc Jun 12, 2026
173641b
Refactor: Extract terminal width utilities to shared module
SorraTheOrc Jun 12, 2026
abea969
Refactor: Extract shared terminal width utilities
SorraTheOrc Jun 12, 2026
dcd906b
Fix code smells in recent refactoring
SorraTheOrc Jun 12, 2026
e7bc9ee
Add unit tests for terminal-utils.ts
SorraTheOrc Jun 12, 2026
35b4102
WL-0MQCYQRCA006NW7A: Implement config-driven shortcut for implement c…
SorraTheOrc Jun 14, 2026
d6ab7fd
WL-0MQCYQRCA006NW7A: Add documentation for config-driven shortcut system
SorraTheOrc Jun 14, 2026
adbb6c5
WL-0MQD0T1L3004KORE: Add integration tests for intake shortcut dispat…
SorraTheOrc Jun 14, 2026
c417ae2
WL-0MQD0VIGP006X3E6: Add integration tests for audit shortcut dispatc…
SorraTheOrc Jun 14, 2026
4843703
WL-0MQD1N3JD007B0FZ: Add comprehensive test suite for config-driven s…
SorraTheOrc Jun 14, 2026
43f5c7b
WL-0MQD0YW40007RTKU: Add setEditorText to BrowseUi interface for shor…
SorraTheOrc Jun 14, 2026
4e75c1a
WL-0MQD0YW40007RTKU: Use real Pi ExtensionAPI types for shortcut disp…
SorraTheOrc Jun 14, 2026
b6835fa
WL-0MQD0YW40007RTKU: Fix shortcut key dispatch to set editor text aft…
SorraTheOrc Jun 14, 2026
91641d4
WL-0MQD0YW40007RTKU: Fix Enter key regression and shortcut dispatch i…
SorraTheOrc Jun 14, 2026
5ce1efc
add command prefixes
SorraTheOrc Jun 14, 2026
af552f2
WL-0MQDR4V7O007O7TZ: Prevent shortcut keys from hijacking navigation …
SorraTheOrc Jun 14, 2026
fea2bc7
WL-0MQDR4V7O007O7TZ: Document reserved navigation keys in shortcut RE…
SorraTheOrc Jun 14, 2026
df504f5
chore: add incomplete intake shortcut to shortcuts.json (WIP)
SorraTheOrc Jun 14, 2026
062070d
WL-0MQDR51JO0037ISJ: Eliminate unsafe as any casts in shortcut dispatch
SorraTheOrc Jun 14, 2026
2811869
WL-0MQDR5HZC006JWOK: Show available shortcut keys in browse list help…
SorraTheOrc Jun 14, 2026
669f283
WL-0MQDRZ4DK007NK5P: Add stage-filter arguments to /wl slash command
SorraTheOrc Jun 14, 2026
9ef67ed
WL-0MQCU6R6V008JX62: Refactor buildSelectionWidget to single-line pre…
SorraTheOrc Jun 14, 2026
e8a61fa
WL-0MQDUOK9K002QHJU: Stage-based shortcut condition filters
SorraTheOrc Jun 14, 2026
003db00
WL-0MQDTWTXP008KOFI: Remove static navigation text from browse help l…
SorraTheOrc Jun 14, 2026
9319052
WL-0MQEATKGY0031AFN: Add label and description fields to shortcut ent…
SorraTheOrc Jun 14, 2026
8756544
correct creaet command
SorraTheOrc Jun 14, 2026
4f3cd50
re-order the shortcuts
SorraTheOrc Jun 14, 2026
d076a54
WL-0MQEBLZIK002JTXI: Add chord schema, registry, dispatch tests and i…
SorraTheOrc Jun 14, 2026
200fa40
WL-0MQEBM6O9005JVCI: Add u-p and u-t chord shortcuts and documentation
SorraTheOrc Jun 14, 2026
568f367
WL-0MQEBM6O9005JVCI: Compact chord help text in normal (non-pending) …
SorraTheOrc Jun 14, 2026
ab48704
WL-0MQEBM6O9005JVCI: Deduplicate chord leader entries in normal help …
SorraTheOrc Jun 14, 2026
4a4603e
WL-0MQEBM6O9005JVCI: Show only second key and distinguishing part of …
SorraTheOrc Jun 14, 2026
b8d1948
Close command: set stage to 'done' along with status 'completed'
SorraTheOrc Jun 14, 2026
3467b16
Add close commands
SorraTheOrc Jun 14, 2026
e8da335
add close shortcuts
SorraTheOrc Jun 14, 2026
092517f
WL-0MQDXJYSU006W5KT: Detail view content wraps instead of truncating
SorraTheOrc Jun 14, 2026
bc63c7a
WL-0MQEG3926003YDXW: Include in-review items in wl next with sort-ind…
SorraTheOrc Jun 15, 2026
f8528c8
Update tests to match shortcut config and detail view changes
SorraTheOrc Jun 15, 2026
256f316
WL-0MQEI5DYO009736I: Add stage and audit result icons to Pi TUI work …
SorraTheOrc Jun 15, 2026
ca6c4f0
WL-0MQEI5DYO009736I: Remove work item ID from browse list and preview…
SorraTheOrc Jun 15, 2026
80cc551
WL-0MQEJWOFC005Q7JA: Add audit result data to JSON output of list/nex…
SorraTheOrc Jun 15, 2026
ad39fab
WL-0MQEJWOFC005Q7JA: Change status icons to avoid overlap with audit …
SorraTheOrc Jun 15, 2026
77dd6c5
WL-0MQEJWOFC005Q7JA: Change status 'open' icon from 🟢 to 🔓
SorraTheOrc Jun 15, 2026
1401f75
WL-0MQDR5KDS006TTW2: Add duplicate key+view warning to shortcut registry
SorraTheOrc Jun 15, 2026
99a8240
WL-0MQDR5KDS006TTW2: Add regression guard test for duplicate shortcuts
SorraTheOrc Jun 15, 2026
2375a36
WL-0MQDR5IO5000EV3G: Move ShortcutResult interface to top of index.ts…
SorraTheOrc Jun 15, 2026
984ec15
WL-0MQDR5ICN0098ID6: Remove unused WorkItem import from index.ts
SorraTheOrc Jun 15, 2026
e72bf54
WL-0MQDR5JN90093VMZ: Refactor makeListCustomMock out of describe bloc…
SorraTheOrc Jun 15, 2026
f945767
WL-0MQDR5K0P007D1QK: Batch invalid entry warnings per structural issu…
SorraTheOrc Jun 15, 2026
223a109
WL-0MQF1W41Z009JUI9: Add settings menu for Worklog Pi extension
SorraTheOrc Jun 15, 2026
956f1d5
WL-0MQF32M6P003GCT9: Add childCount field to wl next --json output
SorraTheOrc Jun 15, 2026
16b4066
WL-0MQF2RKPY004S66Y: Replace raw ANSI key detection with Pi's matches…
SorraTheOrc Jun 15, 2026
2405606
WL-0MQF2RKQ5009FKAC: Replace custom terminal utilities with Pi's buil…
SorraTheOrc Jun 15, 2026
62e4961
WL-0MQF2RKQE0074YJ1: Implement proper invalidation in Pi extension TU…
SorraTheOrc Jun 15, 2026
fdb9a07
WL-0MQF2RKSG002QY5F: Remove non-standard focused property from Pi TUI…
SorraTheOrc Jun 15, 2026
94a9a26
WL-0MQF2Z4CX007HXPR: Add epic icon and child count to Pi TUI work ite…
SorraTheOrc Jun 15, 2026
73bbe9e
WL-0MQF3H65W003ZGAS: wl next returns parent item instead of descendin…
SorraTheOrc Jun 15, 2026
c0a1919
WL-0MQF5H0D30076K0X: Fix wl next returning child items via critical-p…
SorraTheOrc Jun 15, 2026
c1bcc8e
WL-0MQF95NCC0024H61: Fix Stage 3 blocker surfacing to respect parent-…
SorraTheOrc Jun 15, 2026
5190aac
WL-0MQF8TJCD00831O5: Add tests verifying model/provider line in audit…
SorraTheOrc Jun 15, 2026
30cfa20
WL-0MQFC49NT001LBDK: Add --include-in-progress flag to wl next
SorraTheOrc Jun 15, 2026
3d87e1e
WL-0MQFC49NT001LBDK: Fix two issues preventing --include-in-progress …
SorraTheOrc Jun 15, 2026
1b0ef38
Worklog browse extension: add settings arg completion, u,s shortcut f…
SorraTheOrc Jun 15, 2026
27b1041
WL-0MQFB8N990056T8P: Fix intermittent test failure by increasing wait…
SorraTheOrc Jun 15, 2026
33f0394
implement and audit are available for in_progress stage items
SorraTheOrc Jun 15, 2026
ffa79ca
WL-0MQFIYPZK00680H1: Fix wl next returning children instead of parent…
SorraTheOrc Jun 15, 2026
47e4907
WL-0MQF310M9006O2QR: Prevent wl sync from updating updatedAt unless s…
SorraTheOrc Jun 15, 2026
c3dfbe4
WL-0MQFRMZ970028ER3: Change Pi TUI status line to show ID, Tags, GitH…
SorraTheOrc Jun 15, 2026
a6e6194
SA-0MQFXG76T000A3LR: wl delete recursively deletes child work items
SorraTheOrc Jun 16, 2026
16044c7
SA-0MQFXVJAZ004A29L: wl close recursively closes children when parent…
SorraTheOrc Jun 16, 2026
b5931a3
WL-0MQFRY8TM006DIJ6: Optimize wl next performance (N+1 query eliminat…
SorraTheOrc Jun 16, 2026
b188a46
WL-0MQI0XDB4007O9BK: Add pre-removal verification tests for Blessed T…
SorraTheOrc Jun 17, 2026
7f93154
WL-0MQI0XKDS004GIE0: Relocate shared files and rewrite markdown rende…
SorraTheOrc Jun 17, 2026
f928bd1
WL-0MQI0XROJ008RHMZ: Create wl tui alias & remove Blessed TUI source
SorraTheOrc Jun 17, 2026
0e6ea44
WL-0MQI0XWYW005PDUF: Remove Blessed TUI tests, CI artifacts & logs
SorraTheOrc Jun 17, 2026
86f08d1
WL-0MQI0Y441002TROL: Update Pi extension package & documentation
SorraTheOrc Jun 17, 2026
4f2f949
WL-0MQI6CMAV001GPF5: Update remaining documentation and code comments…
SorraTheOrc Jun 17, 2026
8cef4b1
WL-0MQI6CMW6006Y5RM: Fix pre-existing test failures in shortcut-confi…
SorraTheOrc Jun 17, 2026
a7ab549
WL-0MQHYI4E60075SQT: Fix icon prefix alignment in Pi TUI work item se…
SorraTheOrc Jun 17, 2026
da8356a
WL-0MQHYI4E60075SQT: Update icon design docs to describe new alignmen…
SorraTheOrc Jun 17, 2026
3e4eaa0
WL-0MQI1SX4W0018V9O: Filter in-progress parent subtrees from Stage 3 …
SorraTheOrc Jun 17, 2026
f3a397b
chore: document deprecated Blessed TUI removal; fix hasWorkItemChange…
SorraTheOrc Jun 17, 2026
fe1f972
WL-0MQI1BOUQ008DS12: Write unit and integration tests for runWl initi…
SorraTheOrc Jun 17, 2026
8bee831
WL-0MQI1C1V7006AX64: Add init detection in runWl with friendly notifi…
SorraTheOrc Jun 17, 2026
260ce54
WL-0MQIMOOB9004ARZ8: Add effort and risk icons to Pi TUI information bar
SorraTheOrc Jun 17, 2026
319c495
WL-0MQIM5TYM00796U6: Fix E2E headless TUI test for null workItem
SorraTheOrc Jun 17, 2026
c7cfbc0
WL-0MQIMOOB9004ARZ8: Fix effort icon lookup for full-text T-shirt siz…
SorraTheOrc Jun 17, 2026
aaefd91
WL-0MQIP33GM00632FQ: Remove post-migration legacy skipped tests and e…
SorraTheOrc Jun 17, 2026
5a36944
WL-0MQIP7QEG004PRP0: Fix settings persistence — stale-capture bug in …
SorraTheOrc Jun 18, 2026
ca328dc
SA-0MQIS8DKR00549HJ: Fix icon column alignment in wl TUI selector by …
SorraTheOrc Jun 18, 2026
8cdd973
WL-0MQJL1W3X0055WJH: Add 5-second auto-refresh to Pi TUI browse selec…
SorraTheOrc Jun 18, 2026
c3f2a13
WL-0MQJMRBSK002CGAG: Add hierarchical navigation (drill into children…
SorraTheOrc Jun 18, 2026
47e86a3
WL-0MQK5KOEN002C0KR: Add navStack guard to auto-refresh to prevent re…
SorraTheOrc Jun 19, 2026
46c15c9
WL-0MQK5KOEN002C0KR: Refresh children in-place via fetchChildren inst…
SorraTheOrc Jun 19, 2026
57bf6cf
WL-0MQK8EBNT002XMR7: Add childCount to wl list --json output
SorraTheOrc Jun 19, 2026
ce6ee86
WL-0MQK5KOEN002C0KR: Update README to reflect in-place child refresh …
SorraTheOrc Jun 19, 2026
7427b08
SA-0MQKW8J63006B1LS: Auto-sync after wl delete to prevent soft-delete…
SorraTheOrc Jun 19, 2026
3aa78cd
WL-0MQL0T5TR0060AEH: Add activity-indicator footer to Worklog Pi exte…
SorraTheOrc Jun 19, 2026
ab7c7e3
WL-0MQL0T5TR0060AEH: Fix activity indicator — show full command input…
SorraTheOrc Jun 19, 2026
eb90774
Preview widget icons not updating when auto-refresh fetches fresh ite…
SorraTheOrc Jun 19, 2026
3f257c0
WL-0MQLG8PK80041FM3: Resolve work item IDs to titles in activity indi…
SorraTheOrc Jun 19, 2026
d3f5044
WL-0MQLJU82A000AT2W: Preserve command context in resolved work item t…
SorraTheOrc Jun 19, 2026
4501868
WL-0MQMFER5N003N1LL: Add chord-based stage filter shortcuts (f-i, f-n…
SorraTheOrc Jun 21, 2026
f828851
WL-0MQN2RPP9006XZQC: Fix uninitialized worklog detection for JSON mod…
SorraTheOrc Jun 21, 2026
d65fdec
WL-0MQMFMACS0059UUC: Fix extension loading failure - icons.js not fou…
SorraTheOrc Jun 21, 2026
0e12368
WL-0MQMFMACS0059UUC: Fix extension loading failure - icons.js not fou…
SorraTheOrc Jun 21, 2026
e68d20c
WL-0MQNXTTBS009EX0G: Report children closed count and child failure d…
SorraTheOrc Jun 21, 2026
b1d7aea
Merge branch 'dev' of github.com:TheWizardsCode/ContextHub into dev
SorraTheOrc Jun 21, 2026
ec29580
WL-0MQNYZLSY006C6VJ: Add showActivityIndicator and showHelpText settings
SorraTheOrc Jun 21, 2026
bfa6bb5
WL-0MQNYZLSY006C6VJ: Fix - clear activity indicator when setting disa…
SorraTheOrc Jun 21, 2026
a052d56
WL-0MQNYZLSY006C6VJ: Add tests for isActivityEnabled gating behavior
SorraTheOrc Jun 21, 2026
7cd25d5
chore: sync TUI extension settings and .pi/settings.json
SorraTheOrc Jun 21, 2026
7da2529
WL-0MQO0EBDT000WU8S: Migrate TUI extension settings to Pi's canonical…
SorraTheOrc Jun 21, 2026
5711a27
chore: update local settings files
SorraTheOrc Jun 21, 2026
359d6a8
WL-0MQO9422N0005ZBP: Add total item count to Browse Worklog next item…
SorraTheOrc Jun 21, 2026
6eb9973
WL-0MQO9QK3N000V148: Fix cross-instance browse list stale data
SorraTheOrc Jun 21, 2026
b1d781d
WL-0MQOABEB60044I8J: Browse selection list stays open with auto-refre…
SorraTheOrc Jun 21, 2026
aa51461
WL-0MQOEH1KP0090IM8: Show no-work-items notice in browse title when l…
SorraTheOrc Jun 21, 2026
681a334
WL-0MQOFSLWI009MQ1H: Allow non-item shortcuts (e.g. create) when brow…
SorraTheOrc Jun 21, 2026
2c61c0a
WL-0MQOIBAT7004AJPE: Modularized worklog extension architecture
SorraTheOrc Jun 22, 2026
44e4f77
Add browseItemCount config and refactor defaultChooseWorkItem export
SorraTheOrc Jun 22, 2026
99ad58b
WL-0MQP303A900780R0: Escape in detail view navigates back to selectio…
SorraTheOrc Jun 22, 2026
9900498
WL-0MQP4RDG2006LFM9: Fix ruff lint findings in tests/test_audit_runne…
SorraTheOrc Jun 22, 2026
2d30910
WL-0MQP303A900780R0: Fix: Escape detail restores hierarchy level
SorraTheOrc Jun 22, 2026
6a626cb
WL-0MQOIBGIR006CWLR: Add Background Task Runtime for non-blocking ope…
SorraTheOrc Jun 22, 2026
7b3f1d3
WL-0MQOIBMVJ004A95T: Implement auto-injection of relevant work items …
SorraTheOrc Jun 22, 2026
917701c
WL-0MQOIBMVJ004A95T: Document auto-injection behavior in README
SorraTheOrc Jun 22, 2026
1468521
WL-0MQOIKGW2005BLZH: Standardize skill script path referencing patterns
SorraTheOrc Jun 22, 2026
cc96f9e
WL-0MQOIBTHR002VMEK: Add guardrails to protect worklog data integrity
SorraTheOrc Jun 22, 2026
33d1020
WL-0MQOIC6ZK000JYYD: Add semantic search capabilities for work items
SorraTheOrc Jun 22, 2026
943e987
WL-0MQOIC6ZK000JYYD: Make embedder config-driven and more flexible
SorraTheOrc Jun 22, 2026
1bf9d3c
WL-0MQPQOFVX003V32B: Phase 1 — Extract WorklogDatabase into packages/…
SorraTheOrc Jun 22, 2026
bb1adb7
Merge settings
Jun 22, 2026
434b5b2
WL-0MQPQP3O6001R7EX: Phase 2 — Extend TUI reads via shared WorklogDat…
SorraTheOrc Jun 22, 2026
e50599c
Merge branch 'dev' of github.com:TheWizardsCode/ContextHub into wl-WL…
SorraTheOrc Jun 22, 2026
80a2f17
WL-0MQPQP76P009LDE1: Phase 3 — Extend TUI writes via shared WorklogDa…
SorraTheOrc Jun 22, 2026
21832e2
WL-0MQPQP76P008ZA5N: Phase 4 — Remove legacy CLI execFile wrapper
SorraTheOrc Jun 22, 2026
bb86ab0
WL-0MQPQP76N007WH75: Phase 5 — Add caching, connection pooling, lifec…
SorraTheOrc Jun 22, 2026
d5ce978
WL-0MQOIC01X004DFHX: Fix critical syntax error and missing re-exports
SorraTheOrc Jun 23, 2026
1491551
SA-0MQPP6TFJ008LU1N: Add recovery path for done parent with open chil…
SorraTheOrc Jun 23, 2026
06bc53d
WL-0MQQHSMTG003GW0V: Fix pre-existing test failures
SorraTheOrc Jun 23, 2026
5b99f27
WL-0MQQJDQ7M000X2L4: Add --force flag and orphan warning to wl close
SorraTheOrc Jun 23, 2026
1f64182
WL-0MQQIK8OU0052YD0: Complete audit of --stage in_progress usage acro…
SorraTheOrc Jun 23, 2026
7b14aec
Sync work items and comments
SorraTheOrc Jun 23, 2026
432d1ab
Revert "Sync work items and comments"
SorraTheOrc Jun 24, 2026
0ec6223
WL-0MQRBT8BS00355AB: Add safety guards against pre-push sync corrupti…
SorraTheOrc Jun 24, 2026
04ea510
WL-0MQQI71V4002FIZH: Restructure extension entry point for Worklog di…
SorraTheOrc Jun 24, 2026
24ca5e4
WL-0MQRU076X0050VNB: Fix duplicate extension load by removing re-expo…
SorraTheOrc Jun 24, 2026
8e0ac0b
WL-0MQRU076X0050VNB: Update comment in icons-import-path.test.ts to r…
SorraTheOrc Jun 24, 2026
86a8d6f
WL-0MQRVM54T006WQ20: Fix piman.ts and tui.ts extension path after ind…
SorraTheOrc Jun 24, 2026
843e353
WL-0MQRXOY85001WH4Q: Fix 3 headless TUI tests and CI smoke test after…
SorraTheOrc Jun 24, 2026
e0cc7a1
WL-0MQPS28DN00791RK: Add --comment-file option to comment add and upd…
SorraTheOrc Jun 24, 2026
b743687
WL-0MQPS28DY007ALBI: Standardize JSON output shapes across wl commands
SorraTheOrc Jun 24, 2026
02786e2
WL-0MQPS28E7001R5UL: Suppress human-readable warnings in --json mode …
SorraTheOrc Jun 24, 2026
ec4665f
WL-0MQQJAXVA006FWG5: Cap displayed count in browse title when browseI…
SorraTheOrc Jun 24, 2026
facf35c
Update dependencies
Jun 23, 2026
2833d6f
WL-0MQPS28E7001R5UL: Update docs to reflect clean --json output
Jun 24, 2026
594dd81
WL-0MQQW534Q009JSX7: Remove superfluous ## Stage section from humanFo…
Jun 24, 2026
56c3129
WL-0MQSRAD4L003JZ20: Record last sync time in performSync and display…
Jun 25, 2026
59ec8a9
WL-0MQSRERMF0013CIP: Add autoSyncIntervalSeconds config key to Worklo…
Jun 25, 2026
a3947e3
WL-0MQSREW0F00357FK: Expose autoSyncIntervalSeconds in /wl settings o…
Jun 25, 2026
2a2d7d8
WL-0MQSRF0OG0025B8I: Hook auto-sync into TUI browse refresh with in-f…
Jun 25, 2026
26e4587
WL-0MQSRF4OZ002E2HZ: Update documentation for auto-sync feature
Jun 25, 2026
2e8a9f8
WL-0MQU3Q726009CK0R: Fix sync reverting closed items back to in_progress
Jun 26, 2026
e0ae1ee
WL-0MQS135HC003TMEL: Add parallel-safe grouping to wl next --groups/-g
Jun 26, 2026
22abe51
WL-0MQSP2WWM0091727: Move Worklog-exclusive files into Worklog/ direc…
Jun 26, 2026
bae4111
WL-0MQS135HC003TMEL: Fix grouping display in TUI - add groups to dire…
Jun 27, 2026
b9665f2
WL-0MQS135HC003TMEL: TUI now uses wl next CLI command instead of dire…
Jun 27, 2026
eb2b263
WL-0MQSP2WWM0091727: Move chatPane.ts and actionPalette.ts into Worklog/
Jun 27, 2026
ee858c3
WL-0MQS135HC003TMEL: Group items by stage (idea, intake_complete, in_…
Jun 27, 2026
9525db6
WL-0MQS135HC003TMEL: Change plan_complete group label to 'Plan Comple…
Jun 27, 2026
4cf79c1
WL-0MQVP7FI8008KR23: Replace wl search with ID-based work item scanni…
Jun 27, 2026
a1e7f04
WL-0MQWA8ZFN008GRKM: Reverse group ordering and consolidate Other gro…
Jun 27, 2026
aca4f97
WL-0MQPS28DW008QFL3: Add wl doctor stage-sync subcommand to detect an…
Jun 27, 2026
23b804b
WL-0MQSRTDVY000ZVKR: Explain why children were not closed in orphan w…
Jun 28, 2026
d5a81bc
WL-0MQVP7FI8008KR23: Update README to reflect ID-based scanning behavior
Jun 28, 2026
716943b
WL-0MQOICC780043ZXO: Enhance configuration system with hot-reload sup…
Jun 28, 2026
52cca32
SA-0MQUQZMWB0067UCR: Fix status/stage compatibility for intake_comple…
Jun 28, 2026
86bf07e
WL-0MQOIKO81001XOBX: Add skill_path tool for discovering skill instal…
Jun 29, 2026
856d206
WL-0MQWA8ZFN008GRKM: Update CLI.md documentation to reflect reversed …
Jun 29, 2026
beeea71
Add safety guard for pi.registerTool before calling registerSkillPath…
Jun 29, 2026
b28e82a
WL-0MQOIKX4C009JCTM: Create Skill Authoring Guide with Script Best Pr…
Jun 30, 2026
0d4584c
WL-0MQPQP76N007WH75: Phase 5 — Polish: caching, connection pooling, l…
Jun 30, 2026
39a7edd
WL-0MQS2AZD50099JT1: Establish file-path convention for intake_comple…
Jun 30, 2026
13e3719
WL-0MR0Z7YW1002PXKR: Wrap WorklogDatabase.import() in a SQLite transa…
Jun 30, 2026
fe8b3a3
WL-0MQQFORCP008FZHG: Add shell completion scripts for wl CLI
Jul 1, 2026
ae098b5
WL-0MR2661X0000214N: Add error classification module and settings for…
Jul 1, 2026
6af85f0
WL-0MR2661X5006J1UX: Add retry loop engine with comprehensive tests
Jul 1, 2026
51c0fe6
WL-0MR2661WZ0044A3Y: Add compact-and-continue handler with tests
Jul 1, 2026
760c4aa
WL-0MR2661X1006S5P5: Add checkpoint-and-terminate handler with tests
Jul 1, 2026
99a35ce
WL-0MR2661X7009FWLD: Add /retry command handler and integration tests
Jul 1, 2026
d328375
WL-0MR269PDV003ULT4: Wire recovery module into extension lifecycle
Jul 1, 2026
bff5da9
WL-0MR269PDV0014ES3: Remove pi-retry packages reference and update docs
Jul 1, 2026
987061a
Fix /retry status not recording errors for terminal categories
Jul 1, 2026
619b429
Implement automatic retry loop with exponential backoff
Jul 1, 2026
96c1b45
Improve /retry status output: add Will retry flag, omit attempt detai…
Jul 1, 2026
c9d9cc6
WL-0MR1COW20005IO1C: Add Critical priority group to wl next grouping
Jul 2, 2026
9a994aa
WL-0MQTHL7ER0012JK1: Add editor shortcut mode with Ctrl+Shift+W activ…
Jul 2, 2026
7ec49f9
WL-0MR3T8U4L005TZKZ: Remove leader-key shortcut mode; add shortcut hi…
Jul 3, 2026
6524fb5
WL-0MR3T8U4L005TZKZ: Update documentation for detail view shortcut hints
Jul 3, 2026
2a79314
WL-0MQZWK5AF004UR14: Change Enter to show parent details, Ctrl+Enter …
Jul 3, 2026
b975935
Fix: Add Shift+Enter as alternative to Ctrl+Enter for navigating to c…
Jul 3, 2026
4967891
Fix: Add Tab as universal fallback for children navigation
Jul 3, 2026
2e34379
WL-0MR4TNAP1006ATTL: Improve Ctrl+Enter and Shift+Enter fallback dete…
Jul 3, 2026
9b7558e
WL-0MR5KB76Q006OAXG: Wrap arrow key navigation in browse selection list
Jul 4, 2026
18099f9
WL-0MR4TNAP1006ATTL: Simplify children navigation to Tab-only, drop C…
Jul 4, 2026
56331b4
WL-0MR4TNAP1006ATTL: Tab from detail view navigates to children
Jul 4, 2026
e91630b
WL-0MR5QR1790034LXA: Add triggerInvisibleContinue() call in CONTEXT_L…
Jul 4, 2026
57acd1a
WL-0MR4WJRGA00536X4: Add stream ended without finish_reason as retrya…
Jul 4, 2026
19ecf86
WL-0MR6XG7RX008AF2W: Add tests for closing sentence in audit output
Jul 5, 2026
488fcce
WL-0MR89U2IV000S7NC: Fix worklog-browse-extension.test.ts OOM
Jul 6, 2026
f2dedbf
WL-0MR7NPSFK001ZTDD: Mock icons.js import and add vitest memory guard…
Jul 6, 2026
1cf29b3
WL-0MR92SLZW001EH3Y: Fix extractFilePaths bullet regex to handle trai…
Jul 6, 2026
3b528f6
WL-0MR983CRK000AFZ6: Fix pool:threads regression - switch to pool:forks
Jul 6, 2026
7f0257e
WL-0MR983JDB004B6Z2: Document vitest config and test mock patterns in…
Jul 6, 2026
709d51d
Bump version to v1.0.1
Jul 7, 2026
55ab606
Merge origin/dev into main (automated)
Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 24 additions & 3 deletions .githooks/pre-push
Original file line number Diff line number Diff line change
@@ -1,20 +1,37 @@
#!/bin/sh
# worklog:pre-push-hook:v1
# Auto-sync Worklog data before pushing (committed hooks).
# Set WORKLOG_SKIP_PRE_PUSH=1 to bypass.
#
# Auto-sync Worklog data before pushing.
#
# This hook runs `wl sync` before any push to ensure worklog data is
# committed and pushed to the dedicated refs/worklog/data branch.
# It uses a temporary worktree to avoid corrupting the project working tree
# (see WL-0MQRBT8BS00355AB for the bug this prevents).
#
# BYPASS: Set WORKLOG_SKIP_PRE_PUSH=1 to skip the sync entirely.
# export WORKLOG_SKIP_PRE_PUSH=1
# git push origin HEAD:refs/heads/dev
#
set -e

if [ "$WORKLOG_SKIP_PRE_PUSH" = "1" ]; then
echo "worklog: pre-push sync skipped (WORKLOG_SKIP_PRE_PUSH=1)"
exit 0
fi

# Read stdin to check which refs are being pushed.
# If pushing to refs/worklog/data, skip the sync to avoid infinite loops.
skip=0
while read local_ref local_sha remote_ref remote_sha; do
if [ "$remote_ref" = "refs/worklog/data" ]; then
skip=1
fi
done

if [ "$skip" = "1" ]; then
exit 0
fi

if command -v wl >/dev/null 2>&1; then
WL=wl
elif command -v worklog >/dev/null 2>&1; then
Expand All @@ -23,5 +40,9 @@ else
echo "worklog: wl/worklog not found; skipping pre-push sync" >&2
exit 0
fi
"$WL" sync

# Force the data branch to refs/worklog/data regardless of config.
# This prevents the sync from accidentally pushing to a standard branch
# if the user has overridden syncBranch in their worklog config.
"$WL" sync --git-branch refs/worklog/data
exit 0
20 changes: 10 additions & 10 deletions .github/workflows/install-and-smoke-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,26 +37,26 @@ jobs:
node ./dist/cli.js list -n 1 --json > /dev/null
echo "✓ wl CLI works"

# Verify the TUI module loads without errors
node -e "
const { ChatPane } = require('./dist/tui/chatPane.js');
const { ActionPalette } = require('./dist/tui/actionPalette.js');
const { runWl } = require('./dist/tui/wl-integration.js');
# Verify the TUI module loads without errors (using tsx for TypeScript imports)
npx tsx -e "
const { ChatPane } = await import('./packages/tui/extensions/chatPane.js');
const { ActionPalette } = await import('./packages/tui/extensions/actionPalette.js');
const { runWl } = await import('./packages/tui/extensions/wl-integration.js');
console.log('✓ TUI modules load successfully');
"

# Verify chat pane can send messages
node -e "
const { ChatPane } = require('./dist/tui/chatPane.js');
npx tsx -e "
const { ChatPane } = await import('./packages/tui/extensions/chatPane.js');
const pane = new ChatPane();
pane.clear();
console.log('✓ ChatPane instantiated');
"

# Verify action palette has default actions
node -e "
const { ChatPane } = require('./dist/tui/chatPane.js');
const { ActionPalette } = require('./dist/tui/actionPalette.js');
npx tsx -e "
const { ChatPane } = await import('./packages/tui/extensions/chatPane.js');
const { ActionPalette } = await import('./packages/tui/extensions/actionPalette.js');
const chat = new ChatPane();
const palette = new ActionPalette(chat);
palette.open();
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -166,3 +166,4 @@ tmp/

# Ignore generated test timings from local test runs
test-timings.json
__pycache__/
10 changes: 10 additions & 0 deletions .pi/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"llm-wiki": {
"notices": false
},
"context-hub": {
"showActivityIndicator": true,
"showHelpText": true,
"browseItemCount": 15
}
}
8 changes: 8 additions & 0 deletions .ralph/event.pending
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"event_type": "error",
"timestamp": "2026-06-14T02:59:45.771260+00:00",
"work_item_ids": [
"WL-0MQD0YW40007RTKU"
],
"title": "Extensible shortcut key system for Pi extension"
}
187 changes: 183 additions & 4 deletions CLI.md

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions CONFIG.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,16 @@ The system loads configuration in this order:

If no configuration exists at all, the system defaults to using `WI` as the prefix.

## TUI Auto-Sync Settings

Optional TUI auto-sync settings (edit `.worklog/config.yaml` or configure via `/wl settings`):

- `autoSyncIntervalSeconds`: Number of seconds between automatic background syncs in the Pi TUI browse widget (default: `10`, range: 0–300, 0 = disabled).

When the TUI browse widget auto-refreshes (every 5 seconds), it checks if the time since the last successful sync exceeds this interval. If so, a background `wl sync` is triggered (fire-and-forget, non-blocking). An in-flight guard prevents concurrent syncs.

This setting is separate from the `autoSync` boolean config key, which controls automatic sync after database write operations.

## GitHub Settings

Optional GitHub settings (edit `.worklog/config.yaml` manually):
Expand Down
1 change: 1 addition & 0 deletions DATA_FORMAT.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Worklog uses a **dual-storage model** to combine the benefits of persistent data
- **tags**: Array of string tags
- **assignee**: Person assigned to the work item
- **stage**: Current stage of the work item in the workflow
- **childCount** (computed, `wl next --json` only): Number of direct children for this work item. Not stored in JSONL; computed at query time from parent-child relationships. Items with no children return `0`. See [`wl next` JSON output](CLI.md#next-options) for details.
- **issueType**: Optional interoperability field for imported issue types
- **createdBy**: Optional interoperability field for imported creator/actor
- **deletedBy**: Optional interoperability field for imported deleter/actor
Expand Down
14 changes: 0 additions & 14 deletions Dockerfile.tui-tests

This file was deleted.

3 changes: 2 additions & 1 deletion IMPLEMENTATION_SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,13 @@ All requirements from the problem statement have been successfully implemented:
- Type-safe enums for status and priority
- Input types for create and update operations

### Database Layer (`src/database.ts`, `src/persistent-store.ts`)
### Database Layer (`packages/shared/src/database.ts`, `packages/shared/src/persistent-store.ts`)
- SQLite-backed persistent storage
- CRUD operations (Create, Read, Update, Delete)
- Hierarchical queries (children, descendants)
- Filtering by status, priority, parent, tags
- Import/export capabilities with JSONL integration
- **In-memory query caching** (Phase 5): Configurable TTL-based cache for frequent read operations (`getWorkItem`, `getAllWorkItems`, `getAllComments`, etc.) with automatic invalidation on writes. Benchmarks show **3-168x speedup** depending on the operation.

### Storage Format (`src/jsonl.ts`)
- JSONL (JSON Lines) format for Git-friendly sync
Expand Down
52 changes: 49 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ wl github import
### Using the TUI

```bash
wl tui # Interactive tree view of all items
wl tui --in-progress # Show only in-progress items
wl tui # Launch Pi-based TUI (interactive browse + agent chat)
wl tui --in-progress # Launch Pi-based TUI, show only in-progress items
wl tui --perf # Enable performance instrumentation and write diagnostics artifacts under .worklog/
TUI_PROFILE=1 wl tui # Enable profiling via environment variable
wl tui --perf # Launch Pi-based TUI with performance instrumentation
```

Press `O` in the TUI to access the Pi agent chat pane. The Pi-based TUI provides natural language chat, an action palette with agent-driven flows, and all work item operations through the `wl` CLI. See [TUI.md](TUI.md) for controls, including quick stage filters (`Alt+T` for `intake_complete`, `Alt+P` for `plan_complete`) that exclude closed items.
Expand Down Expand Up @@ -120,6 +120,7 @@ You can get a lot of value from using Worklog as a memory for your agents. But y
| [LOCAL_LLM.md](LOCAL_LLM.md) | Configure local LLM providers (Ollama, Foundry) |
| [MULTI_PROJECT_GUIDE.md](MULTI_PROJECT_GUIDE.md) | Multi-project setup with custom prefixes |
| [API.md](API.md) | REST API endpoints and usage |
| [docs/FILE_PATH_CONVENTION.md](docs/FILE_PATH_CONVENTION.md) | File path convention for work item descriptions |

### Reference

Expand All @@ -142,6 +143,7 @@ You can get a lot of value from using Worklog as a memory for your agents. But y
| [docs/migrations.md](docs/migrations.md) | Database migration system |
| [docs/prd/sort_order_PRD.md](docs/prd/sort_order_PRD.md) | Sort order product requirements |
| [docs/validation/status-stage-inventory.md](docs/validation/status-stage-inventory.md) | Status/stage validation rules |
| [docs/SKILL_AUTHORING.md](docs/SKILL_AUTHORING.md) | Skill authoring guide with script best practices |

## Tutorials

Expand All @@ -157,6 +159,34 @@ Step-by-step guides for learning Worklog:

See [docs/tutorials/README.md](docs/tutorials/README.md) for the full tutorial index.

## Shell Completion

Worklog ships with shell completion scripts for **bash** and **zsh**. The `wl completion` command generates a completion script that provides tab-completion for all subcommands, options, and dynamic work-item IDs.

### Bash

```bash
# Source directly (current shell only)
source <(wl completion bash)

# Permanent installation
wl completion bash > ~/.wl-completion.bash
echo "source ~/.wl-completion.bash" >> ~/.bashrc
```

### Zsh

```zsh
# Source directly (current shell only)
source <(wl completion zsh)

# Permanent installation
wl completion zsh > ~/.wl-completion.zsh
echo "source ~/.wl-completion.zsh" >> ~/.zshrc
```

> **Note:** Dynamic work-item ID completion (e.g., `wl show <TAB>`) calls `wl list --json` in the background to fetch open work items. This may add a slight delay on first tab press in large repositories.

## Development

```bash
Expand All @@ -168,8 +198,24 @@ npm run test:coverage # Tests with coverage report
npm run test:tui # TUI tests only (CI/headless)
```

### Vitest Configuration

The project uses [Vitest](https://vitest.dev/) with the following settings in `vitest.config.ts`:

- **Pool:** `'forks'` (child processes) — supports tests that use `process.chdir()` for temp directory setup
- **maxWorkers:** `4` — limits concurrent worker count to prevent unbounded memory growth during test execution
- **Exclusions:** Worktree directories (`.worklog/worktrees/**`) are excluded to prevent duplicate test file discovery

See [tests/README.md](tests/README.md) for detailed testing documentation.

### Test Mock Patterns

The `tests/extensions/worklog-browse-extension.test.ts` file (1700+ lines, 68 tests) demonstrates key mock patterns used by this project:

- **Comprehensive `node:fs` mock:** Rather than stubbing only the 4 fs functions used directly by the code under test, the mock covers ~12 functions (`existsSync`, `statSync`, `lstatSync`, `readdirSync`, `accessSync`, `watch`, `promises`, `constants`, `readFileSync`, `writeFileSync`, `mkdirSync`, `realpathSync`) that may be called during module initialization. This prevents cascading errors and heap OOM during import.
- **`icons.js` mock:** The dynamic `require('dist/icons.js')` in the browse module is mocked with stub implementations for all 8 exported functions (`priorityIcon`, `statusIcon`, `stageIcon`, `auditIcon`, `epicIcon`, `iconsEnabled`, `riskIcon`, `effortIcon`), preventing uncontrolled file resolution during import.
- **Infinite loop guard:** `custom()` mocks return `{ type: 'shortcut', command: '/test-exit' }` instead of `null` to break the `runBrowseFlow` while(true) loop, preventing infinite-loop-based OOM in test mocks.

## License

MIT
Loading
Loading