@sascha384/tic 1.35.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/backends/availability.js +4 -2
  3. package/dist/backends/availability.js.map +1 -1
  4. package/dist/backends/factory.d.ts +5 -3
  5. package/dist/backends/factory.js +28 -43
  6. package/dist/backends/factory.js.map +1 -1
  7. package/dist/backends/files/hash.d.ts +1 -0
  8. package/dist/backends/files/hash.js +5 -0
  9. package/dist/backends/files/hash.js.map +1 -0
  10. package/dist/backends/files/index.d.ts +48 -0
  11. package/dist/backends/files/index.js +174 -0
  12. package/dist/backends/files/index.js.map +1 -0
  13. package/dist/backends/files/sync.d.ts +13 -0
  14. package/dist/backends/files/sync.js +69 -0
  15. package/dist/backends/files/sync.js.map +1 -0
  16. package/dist/backends/jira/config.d.ts +1 -1
  17. package/dist/backends/jira/config.js +6 -9
  18. package/dist/backends/jira/config.js.map +1 -1
  19. package/dist/backends/types.d.ts +12 -0
  20. package/dist/backends/types.js +5 -1
  21. package/dist/backends/types.js.map +1 -1
  22. package/dist/cli/commands/config.js +27 -14
  23. package/dist/cli/commands/config.js.map +1 -1
  24. package/dist/cli/commands/init.js +10 -3
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/mcp.d.ts +4 -4
  27. package/dist/cli/commands/mcp.js +16 -25
  28. package/dist/cli/commands/mcp.js.map +1 -1
  29. package/dist/cli/index.js +16 -19
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/commands.js +0 -6
  32. package/dist/commands.js.map +1 -1
  33. package/dist/components/Header.js +3 -2
  34. package/dist/components/Header.js.map +1 -1
  35. package/dist/components/OverlayPanel.d.ts +2 -1
  36. package/dist/components/OverlayPanel.js +8 -1
  37. package/dist/components/OverlayPanel.js.map +1 -1
  38. package/dist/components/Settings.js +6 -11
  39. package/dist/components/Settings.js.map +1 -1
  40. package/dist/components/StatusScreen.js +1 -1
  41. package/dist/components/StatusScreen.js.map +1 -1
  42. package/dist/components/WorkItemForm.js +6 -9
  43. package/dist/components/WorkItemForm.js.map +1 -1
  44. package/dist/components/WorkItemList.js +102 -51
  45. package/dist/components/WorkItemList.js.map +1 -1
  46. package/dist/index.js +20 -8
  47. package/dist/index.js.map +1 -1
  48. package/dist/storage/config.d.ts +61 -0
  49. package/dist/storage/config.js +309 -0
  50. package/dist/storage/config.js.map +1 -0
  51. package/dist/storage/db.d.ts +11 -0
  52. package/dist/storage/db.js +34 -0
  53. package/dist/storage/db.js.map +1 -0
  54. package/dist/storage/index.d.ts +73 -0
  55. package/dist/storage/index.js +966 -0
  56. package/dist/storage/index.js.map +1 -0
  57. package/dist/storage/mappers.d.ts +35 -0
  58. package/dist/storage/mappers.js +70 -0
  59. package/dist/storage/mappers.js.map +1 -0
  60. package/dist/storage/schema.d.ts +1844 -0
  61. package/dist/storage/schema.js +197 -0
  62. package/dist/storage/schema.js.map +1 -0
  63. package/dist/storage/syncQueue.d.ts +13 -0
  64. package/dist/storage/syncQueue.js +98 -0
  65. package/dist/storage/syncQueue.js.map +1 -0
  66. package/dist/storage/undo.d.ts +22 -0
  67. package/dist/storage/undo.js +129 -0
  68. package/dist/storage/undo.js.map +1 -0
  69. package/dist/stores/backendDataStore.d.ts +4 -1
  70. package/dist/stores/backendDataStore.js +61 -40
  71. package/dist/stores/backendDataStore.js.map +1 -1
  72. package/dist/stores/configStore.d.ts +3 -1
  73. package/dist/stores/configStore.js +25 -65
  74. package/dist/stores/configStore.js.map +1 -1
  75. package/dist/stores/filterStore.d.ts +2 -0
  76. package/dist/stores/filterStore.js +7 -2
  77. package/dist/stores/filterStore.js.map +1 -1
  78. package/dist/stores/uiStore.d.ts +0 -2
  79. package/dist/stores/uiStore.js.map +1 -1
  80. package/dist/stores/undoStore.d.ts +4 -0
  81. package/dist/stores/undoStore.js +32 -0
  82. package/dist/stores/undoStore.js.map +1 -1
  83. package/dist/sync/SyncManager.d.ts +3 -4
  84. package/dist/sync/SyncManager.js +78 -37
  85. package/dist/sync/SyncManager.js.map +1 -1
  86. package/dist/sync/types.d.ts +10 -1
  87. package/package.json +5 -1
  88. package/dist/backends/local/config.d.ts +0 -38
  89. package/dist/backends/local/config.js +0 -42
  90. package/dist/backends/local/config.js.map +0 -1
  91. package/dist/backends/local/index.d.ts +0 -45
  92. package/dist/backends/local/index.js +0 -291
  93. package/dist/backends/local/index.js.map +0 -1
  94. package/dist/sync/queue.d.ts +0 -12
  95. package/dist/sync/queue.js +0 -56
  96. package/dist/sync/queue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"backendDataStore.js","sourceRoot":"","sources":["../../src/stores/backendDataStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backendDataStore.js","sourceRoot":"","sources":["../../src/stores/backendDataStore.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import { type Config } from '../backends/local/config.js';
1
+ import { type Config } from '../storage/config.js';
2
+ import type { TicDatabase } from '../storage/db.js';
2
3
  export interface ConfigStoreState {
3
4
  config: Config;
4
5
  loaded: boolean;
5
6
  init(root: string): Promise<void>;
6
7
  startWatching(): void;
7
8
  update(partial: Partial<Config>): Promise<void>;
9
+ setDatabase(db: TicDatabase | null): void;
8
10
  destroy(): void;
9
11
  }
10
12
  export declare const configStore: import("zustand").StoreApi<ConfigStoreState>;
@@ -1,82 +1,42 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
1
  import { createStore } from 'zustand/vanilla';
4
2
  import { useStore } from 'zustand';
5
- import yaml from 'yaml';
6
- import { defaultConfig, readConfig, writeConfig, } from '../backends/local/config.js';
7
- const WATCH_DEBOUNCE_MS = 50;
8
- const WRITE_FLAG_DURATION_MS = 100;
9
- let watcher = null;
10
- let debounceTimer = null;
11
- let writingTimer = null;
12
- let writing = false;
13
- let currentRoot = '';
3
+ import { defaultConfig } from '../storage/config.js';
4
+ import { readConfig as readConfigFromDb, writeConfig as writeConfigToDb, } from '../storage/config.js';
5
+ let currentDb = null;
14
6
  export const configStore = createStore((set, get) => ({
15
7
  config: { ...defaultConfig },
16
8
  loaded: false,
17
- async init(root) {
9
+ // eslint-disable-next-line @typescript-eslint/require-await, @typescript-eslint/no-unused-vars
10
+ async init(_root) {
11
+ // Preserve database reference across the internal destroy
12
+ const db = currentDb;
18
13
  get().destroy();
19
- currentRoot = root;
20
- const config = await readConfig(root);
21
- set({ config, loaded: true });
14
+ currentDb = db;
15
+ if (currentDb) {
16
+ const config = readConfigFromDb(currentDb);
17
+ set({ config, loaded: true });
18
+ }
19
+ else {
20
+ // No DB — fall back to defaults
21
+ set({ config: { ...defaultConfig }, loaded: true });
22
+ }
22
23
  },
23
24
  startWatching() {
24
- if (watcher)
25
- return; // Already watching
26
- if (!currentRoot)
27
- return;
28
- // Ensure .tic dir exists before watching
29
- const ticDir = path.join(currentRoot, '.tic');
30
- fs.mkdirSync(ticDir, { recursive: true });
31
- const configPath = path.join(ticDir, 'config.yml');
32
- // Ensure the config file exists so fs.watch doesn't error
33
- if (!fs.existsSync(configPath)) {
34
- fs.writeFileSync(configPath, yaml.stringify(get().config));
35
- }
36
- watcher = fs.watch(configPath, () => {
37
- if (writing)
38
- return;
39
- if (debounceTimer)
40
- clearTimeout(debounceTimer);
41
- debounceTimer = setTimeout(() => {
42
- debounceTimer = null;
43
- readConfig(currentRoot).then((updated) => set({ config: updated }), () => {
44
- // File may have been deleted or be mid-write; ignore
45
- });
46
- }, WATCH_DEBOUNCE_MS);
47
- });
48
- watcher.on('error', () => {
49
- watcher?.close();
50
- watcher = null;
51
- });
25
+ // No-op — DB is the source of truth, no file watcher needed
52
26
  },
27
+ // eslint-disable-next-line @typescript-eslint/require-await
53
28
  async update(partial) {
54
29
  const merged = { ...get().config, ...partial };
55
30
  set({ config: merged });
56
- writing = true;
57
- await writeConfig(currentRoot, merged);
58
- // Keep the writing flag on long enough for the watcher to fire and be ignored
59
- if (writingTimer)
60
- clearTimeout(writingTimer);
61
- writingTimer = setTimeout(() => {
62
- writing = false;
63
- writingTimer = null;
64
- }, WRITE_FLAG_DURATION_MS);
31
+ if (currentDb) {
32
+ writeConfigToDb(currentDb, merged);
33
+ }
34
+ },
35
+ setDatabase(db) {
36
+ currentDb = db;
65
37
  },
66
38
  destroy() {
67
- if (watcher) {
68
- watcher.close();
69
- watcher = null;
70
- }
71
- if (debounceTimer) {
72
- clearTimeout(debounceTimer);
73
- debounceTimer = null;
74
- }
75
- if (writingTimer) {
76
- clearTimeout(writingTimer);
77
- writingTimer = null;
78
- }
79
- writing = false;
39
+ currentDb = null;
80
40
  set({ config: { ...defaultConfig }, loaded: false });
81
41
  },
82
42
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../src/stores/configStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../src/stores/configStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,UAAU,IAAI,gBAAgB,EAC9B,WAAW,IAAI,eAAe,GAC/B,MAAM,sBAAsB,CAAC;AAa9B,IAAI,SAAS,GAAuB,IAAI,CAAC;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE;IAC5B,MAAM,EAAE,KAAK;IAEb,+FAA+F;IAC/F,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,0DAA0D;QAC1D,MAAM,EAAE,GAAG,SAAS,CAAC;QACrB,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAChB,SAAS,GAAG,EAAE,CAAC;QACf,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC3C,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,aAAa;QACX,4DAA4D;IAC9D,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,MAAM,CAAC,OAAwB;QACnC,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAExB,IAAI,SAAS,EAAE,CAAC;YACd,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,WAAW,CAAC,EAAsB;QAChC,SAAS,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,SAAS,GAAG,IAAI,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,cAAc,CAAI,QAAwC;IACxE,OAAO,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
@@ -2,6 +2,8 @@ import type { ViewFilters, SavedView } from '../filters.js';
2
2
  export interface FilterStoreState {
3
3
  activeFilters: ViewFilters;
4
4
  activeViewName: string | null;
5
+ /** Remembers the last loaded view name even after filters diverge. */
6
+ lastViewName: string | null;
5
7
  setFilters: (filters: ViewFilters) => void;
6
8
  clearFilters: () => void;
7
9
  toggleFilter: (field: keyof ViewFilters, value: string) => void;
@@ -4,8 +4,9 @@ import { useStore } from 'zustand';
4
4
  export const filterStore = createStore((set) => ({
5
5
  activeFilters: {},
6
6
  activeViewName: null,
7
+ lastViewName: null,
7
8
  setFilters: (filters) => set({ activeFilters: filters, activeViewName: null }),
8
- clearFilters: () => set({ activeFilters: {}, activeViewName: null }),
9
+ clearFilters: () => set({ activeFilters: {}, activeViewName: null, lastViewName: null }),
9
10
  toggleFilter: (field, value) => set((state) => {
10
11
  const current = state.activeFilters[field] ?? [];
11
12
  const idx = current.indexOf(value);
@@ -25,7 +26,11 @@ export const filterStore = createStore((set) => ({
25
26
  }
26
27
  return { activeFilters: nextFilters, activeViewName: null };
27
28
  }),
28
- loadView: (view) => set({ activeFilters: { ...view.filters }, activeViewName: view.name }),
29
+ loadView: (view) => set({
30
+ activeFilters: { ...view.filters },
31
+ activeViewName: view.name,
32
+ lastViewName: view.name,
33
+ }),
29
34
  }));
30
35
  export function useFilterStore(selector) {
31
36
  return useStore(filterStore, selector);
@@ -1 +1 @@
1
- {"version":3,"file":"filterStore.js","sourceRoot":"","sources":["../../src/stores/filterStore.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAanC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,IAAI;IAEpB,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CACtB,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAEvD,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAEpE,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAc,CAAC;QACnB,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,WAAW,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC,CAAC;IAEJ,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACjB,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;CACzE,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,cAAc,CAAI,QAAwC;IACxE,OAAO,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"filterStore.js","sourceRoot":"","sources":["../../src/stores/filterStore.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAenC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAElB,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CACtB,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAEvD,YAAY,EAAE,GAAG,EAAE,CACjB,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEtE,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAc,CAAC;QACnB,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,WAAW,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC,CAAC;IAEJ,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACjB,GAAG,CAAC;QACF,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;QAClC,cAAc,EAAE,IAAI,CAAC,IAAI;QACzB,YAAY,EAAE,IAAI,CAAC,IAAI;KACxB,CAAC;CACL,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,cAAc,CAAI,QAAwC;IACxE,OAAO,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
@@ -37,8 +37,6 @@ export type ActiveOverlay = {
37
37
  type: 'save-view-input';
38
38
  } | {
39
39
  type: 'delete-view-picker';
40
- } | {
41
- type: 'set-default-view';
42
40
  } | {
43
41
  type: 'default-type-picker';
44
42
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"uiStore.js","sourceRoot":"","sources":["../../src/stores/uiStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAyCnC,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzD,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;IAEX,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACzD,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAChD,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1C,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;IAC1E,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CACpE,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,UAAU,CAAI,QAAoC;IAChE,OAAO,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC;IACjD,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAChE,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"uiStore.js","sourceRoot":"","sources":["../../src/stores/uiStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAwCnC,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzD,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;IAEX,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACzD,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAChD,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1C,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;IAC1E,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CACpE,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,UAAU,CAAI,QAAoC;IAChE,OAAO,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC;IACjD,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAChE,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { WorkItem } from '../types.js';
2
2
  import type { QueueAction } from '../sync/types.js';
3
+ import type { TicDatabase } from '../storage/db.js';
3
4
  export type UndoActionType = 'delete' | 'create' | 'update';
4
5
  export interface UndoEntry {
5
6
  type: UndoActionType;
@@ -14,6 +15,9 @@ export interface UndoStoreState {
14
15
  pushUndo: (entry: UndoEntry) => UndoEntry | undefined;
15
16
  popUndo: () => UndoEntry | undefined;
16
17
  clear: () => UndoEntry[];
18
+ setDatabase: (db: TicDatabase | null) => void;
19
+ initFromDb: () => void;
20
+ destroy: () => void;
17
21
  }
18
22
  export declare const undoStore: import("zustand").StoreApi<UndoStoreState>;
19
23
  export declare function useUndoStore<T>(selector: (state: UndoStoreState) => T): T;
@@ -1,9 +1,16 @@
1
1
  import { createStore } from 'zustand/vanilla';
2
2
  import { useStore } from 'zustand';
3
+ import { pushUndoEntry, popUndoEntry, readUndoStack, clearUndoStack, } from '../storage/undo.js';
3
4
  const MAX_DEPTH = 5;
5
+ let currentDb = null;
4
6
  export const undoStore = createStore((set, get) => ({
5
7
  stack: [],
6
8
  pushUndo: (entry) => {
9
+ if (currentDb) {
10
+ const evicted = pushUndoEntry(currentDb, entry);
11
+ set({ stack: readUndoStack(currentDb) });
12
+ return evicted;
13
+ }
7
14
  const { stack } = get();
8
15
  const newStack = [entry, ...stack];
9
16
  let evicted;
@@ -14,6 +21,11 @@ export const undoStore = createStore((set, get) => ({
14
21
  return evicted;
15
22
  },
16
23
  popUndo: () => {
24
+ if (currentDb) {
25
+ const popped = popUndoEntry(currentDb);
26
+ set({ stack: readUndoStack(currentDb) });
27
+ return popped;
28
+ }
17
29
  const { stack } = get();
18
30
  if (stack.length === 0)
19
31
  return undefined;
@@ -22,10 +34,30 @@ export const undoStore = createStore((set, get) => ({
22
34
  return first;
23
35
  },
24
36
  clear: () => {
37
+ if (currentDb) {
38
+ const entries = clearUndoStack(currentDb);
39
+ set({ stack: [] });
40
+ return entries;
41
+ }
25
42
  const { stack } = get();
26
43
  set({ stack: [] });
27
44
  return stack;
28
45
  },
46
+ setDatabase: (db) => {
47
+ currentDb = db;
48
+ if (db) {
49
+ set({ stack: readUndoStack(db) });
50
+ }
51
+ },
52
+ initFromDb: () => {
53
+ if (currentDb) {
54
+ set({ stack: readUndoStack(currentDb) });
55
+ }
56
+ },
57
+ destroy: () => {
58
+ currentDb = null;
59
+ set({ stack: [] });
60
+ },
29
61
  }));
30
62
  export function useUndoStore(selector) {
31
63
  return useStore(undoStore, selector);
@@ -1 +1 @@
1
- {"version":3,"file":"undoStore.js","sourceRoot":"","sources":["../../src/stores/undoStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAenC,MAAM,SAAS,GAAG,CAAC,CAAC;AASpB,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAClE,KAAK,EAAE,EAAE;IAET,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QAClB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;QACnC,IAAI,OAA8B,CAAC;QACnC,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAChC,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,GAAG,EAAE;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;QAC/B,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,EAAE,GAAG,EAAE;QACV,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,YAAY,CAAI,QAAsC;IACpE,OAAO,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"undoStore.js","sourceRoot":"","sources":["../../src/stores/undoStore.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import type { Backend } from '../backends/types.js';
2
- import { LocalBackend } from '../backends/local/index.js';
3
- import type { SyncQueueStore } from './queue.js';
2
+ import type { SyncQueueAdapter } from './types.js';
4
3
  import type { SyncStatus, SyncResult, PushResult } from './types.js';
5
4
  type StatusListener = (status: SyncStatus) => void;
6
5
  export declare class SyncManager {
7
- private local;
6
+ private primary;
8
7
  private remote;
9
8
  private queue;
10
9
  private status;
11
10
  private listeners;
12
11
  private syncLog;
13
- constructor(local: LocalBackend, remote: Backend, queue: SyncQueueStore);
12
+ constructor(primary: Backend, remote: Backend, queue: SyncQueueAdapter);
14
13
  getStatus(): SyncStatus;
15
14
  onStatusChange(cb: StatusListener): void;
16
15
  private updateStatus;
@@ -1,14 +1,13 @@
1
- import { writeWorkItem, deleteWorkItem as removeWorkItemFile, } from '../backends/local/items.js';
2
- import { writeTemplate, deleteTemplate as removeTemplateFile, } from '../backends/local/templates.js';
1
+ import { isSyncableBackend } from '../backends/types.js';
3
2
  export class SyncManager {
4
- local;
3
+ primary;
5
4
  remote;
6
5
  queue;
7
6
  status;
8
7
  listeners = [];
9
8
  syncLog = [];
10
- constructor(local, remote, queue) {
11
- this.local = local;
9
+ constructor(primary, remote, queue) {
10
+ this.primary = primary;
12
11
  this.remote = remote;
13
12
  this.queue = queue;
14
13
  this.status = {
@@ -40,13 +39,16 @@ export class SyncManager {
40
39
  }
41
40
  async pushPending() {
42
41
  this.updateStatus({ state: 'syncing' });
43
- const { pending } = await this.queue.read();
44
- const total = pending.length;
42
+ const total = (await this.queue.read()).pending.length;
45
43
  let current = 0;
46
44
  let pushed = 0;
47
45
  const errors = [];
48
46
  const idMappings = new Map();
49
- for (const entry of pending) {
47
+ const failedEntries = [];
48
+ while (true) {
49
+ const entry = await this.queue.claimNext();
50
+ if (!entry)
51
+ break;
50
52
  current++;
51
53
  this.updateStatus({
52
54
  state: 'syncing',
@@ -55,7 +57,6 @@ export class SyncManager {
55
57
  });
56
58
  try {
57
59
  const resolvedId = await this.pushEntry(entry);
58
- await this.queue.remove(resolvedId, entry.action);
59
60
  if (resolvedId !== entry.itemId) {
60
61
  idMappings.set(entry.itemId, resolvedId);
61
62
  }
@@ -72,9 +73,11 @@ export class SyncManager {
72
73
  const isLocalMissing = e instanceof Error &&
73
74
  'code' in e &&
74
75
  e.code === 'ENOENT';
75
- if (isLocalMissing) {
76
- // Local item was deleted or never synced — drop unrecoverable entry
77
- await this.queue.remove(entry.itemId, entry.action);
76
+ const isNotFound = e instanceof Error &&
77
+ (e.message.includes('not found') ||
78
+ e.message.includes('does not exist'));
79
+ if (isLocalMissing || isNotFound) {
80
+ // Local item was deleted or never synced — already claimed (removed) from queue
78
81
  this.appendLog({
79
82
  phase: 'push',
80
83
  action: entry.action,
@@ -98,9 +101,15 @@ export class SyncManager {
98
101
  message: e instanceof Error ? e.message : String(e),
99
102
  timestamp: new Date().toISOString(),
100
103
  });
104
+ // Collect failed entry for re-queuing after the loop
105
+ failedEntries.push(entry);
101
106
  }
102
107
  }
103
108
  }
109
+ // Re-queue all failed entries after the loop to avoid infinite re-claiming
110
+ for (const failed of failedEntries) {
111
+ await this.queue.append(failed);
112
+ }
104
113
  this.updateStatus({
105
114
  state: errors.length > 0 ? 'error' : 'idle',
106
115
  pendingCount: (await this.queue.read()).pending.length,
@@ -134,7 +143,7 @@ export class SyncManager {
134
143
  async pushEntry(entry) {
135
144
  switch (entry.action) {
136
145
  case 'create': {
137
- const localItem = await this.local.getWorkItem(entry.itemId);
146
+ const localItem = await this.primary.getWorkItem(entry.itemId);
138
147
  const remoteItem = await this.remote.createWorkItem(this.stripUnsupportedFields({
139
148
  title: localItem.title,
140
149
  type: localItem.type,
@@ -155,7 +164,7 @@ export class SyncManager {
155
164
  return entry.itemId;
156
165
  }
157
166
  case 'update': {
158
- const localItem = await this.local.getWorkItem(entry.itemId);
167
+ const localItem = await this.primary.getWorkItem(entry.itemId);
159
168
  await this.remote.updateWorkItem(entry.itemId, this.stripUnsupportedFields({
160
169
  title: localItem.title,
161
170
  type: localItem.type,
@@ -196,12 +205,12 @@ export class SyncManager {
196
205
  return entry.itemId;
197
206
  }
198
207
  case 'template-create': {
199
- const template = await this.local.getTemplate(entry.templateSlug);
208
+ const template = await this.primary.getTemplate(entry.templateSlug);
200
209
  await this.remote.createTemplate(template);
201
210
  return entry.itemId;
202
211
  }
203
212
  case 'template-update': {
204
- const template = await this.local.getTemplate(entry.templateSlug);
213
+ const template = await this.primary.getTemplate(entry.templateSlug);
205
214
  await this.remote.updateTemplate(entry.templateSlug, template);
206
215
  return entry.itemId;
207
216
  }
@@ -224,24 +233,30 @@ export class SyncManager {
224
233
  msg.includes('404'));
225
234
  }
226
235
  async renameLocalItem(oldId, newId) {
227
- const item = await this.local.getWorkItem(oldId);
228
- const root = this.local.getRoot();
236
+ const item = await this.primary.getWorkItem(oldId);
229
237
  const renamedItem = { ...item, id: newId };
230
- await writeWorkItem(root, renamedItem);
231
- await removeWorkItemFile(root, oldId);
232
- const allItems = await this.local.listWorkItems();
238
+ if (isSyncableBackend(this.primary)) {
239
+ await this.primary.importWorkItem(renamedItem);
240
+ }
241
+ else {
242
+ await this.primary.createWorkItem(renamedItem);
243
+ }
244
+ await this.primary.deleteWorkItem(oldId);
245
+ // Fix references from other items
246
+ const allItems = await this.primary.listWorkItems();
233
247
  for (const other of allItems) {
248
+ const changes = {};
234
249
  let changed = false;
235
250
  if (other.parent === oldId) {
236
- other.parent = newId;
251
+ changes.parent = newId;
237
252
  changed = true;
238
253
  }
239
254
  if (other.dependsOn.includes(oldId)) {
240
- other.dependsOn = other.dependsOn.map((d) => (d === oldId ? newId : d));
255
+ changes.dependsOn = other.dependsOn.map((d) => d === oldId ? newId : d);
241
256
  changed = true;
242
257
  }
243
258
  if (changed) {
244
- await writeWorkItem(root, other);
259
+ await this.primary.updateWorkItem(other.id, changes);
245
260
  }
246
261
  }
247
262
  }
@@ -259,36 +274,62 @@ export class SyncManager {
259
274
  return { push, pullCount };
260
275
  }
261
276
  async pull() {
262
- await this.local.syncConfigFromRemote({
263
- iterations: await this.remote.getIterations(),
264
- currentIteration: await this.remote.getCurrentIteration(),
265
- statuses: await this.remote.getStatuses(),
266
- types: await this.remote.getWorkItemTypes(),
277
+ // Sync config from remote via configStore
278
+ const [remoteIterations, remoteCurrentIteration, remoteStatuses, remoteTypes,] = await Promise.all([
279
+ this.remote.getIterations(),
280
+ this.remote.getCurrentIteration(),
281
+ this.remote.getStatuses(),
282
+ this.remote.getWorkItemTypes(),
283
+ ]);
284
+ const { configStore } = await import('../stores/configStore.js');
285
+ await configStore.getState().update({
286
+ iterations: remoteIterations,
287
+ current_iteration: remoteCurrentIteration,
288
+ statuses: remoteStatuses,
289
+ types: remoteTypes,
267
290
  });
268
291
  const remoteItems = await this.remote.listWorkItems();
269
- const root = this.local.getRoot();
270
292
  const pendingIds = new Set((await this.queue.read()).pending.map((e) => e.itemId));
271
- const localItems = await this.local.listWorkItems();
293
+ const localItems = await this.primary.listWorkItems();
272
294
  const localIds = new Set(localItems.map((i) => i.id));
273
295
  const remoteIds = new Set(remoteItems.map((i) => i.id));
274
- for (const item of remoteItems) {
275
- await writeWorkItem(root, item);
296
+ // Upsert remote items locally
297
+ if (isSyncableBackend(this.primary)) {
298
+ for (const item of remoteItems) {
299
+ await this.primary.importWorkItem(item);
300
+ }
301
+ }
302
+ else {
303
+ for (const item of remoteItems) {
304
+ if (localIds.has(item.id)) {
305
+ await this.primary.updateWorkItem(item.id, item);
306
+ }
307
+ else {
308
+ await this.primary.createWorkItem(item);
309
+ }
310
+ }
276
311
  }
312
+ // Delete local items not on remote (unless pending)
277
313
  for (const localId of localIds) {
278
314
  if (!remoteIds.has(localId) && !pendingIds.has(localId)) {
279
- await removeWorkItemFile(root, localId);
315
+ await this.primary.deleteWorkItem(localId);
280
316
  }
281
317
  }
282
318
  // Pull templates if supported by remote
283
319
  const remoteCaps = this.remote.getCapabilities();
284
320
  if (remoteCaps.templates) {
285
321
  const remoteTemplates = await this.remote.listTemplates();
286
- const localTemplates = await this.local.listTemplates();
322
+ const localTemplates = await this.primary.listTemplates();
287
323
  const localSlugs = new Set(localTemplates.map((t) => t.slug));
288
324
  const remoteSlugs = new Set(remoteTemplates.map((t) => t.slug));
289
325
  // Write/update remote templates locally
290
326
  for (const rt of remoteTemplates) {
291
- await writeTemplate(this.local.getRoot(), rt);
327
+ if (localSlugs.has(rt.slug)) {
328
+ await this.primary.updateTemplate(rt.slug, rt);
329
+ }
330
+ else {
331
+ await this.primary.createTemplate(rt);
332
+ }
292
333
  }
293
334
  // Delete local templates not on remote (unless pending in queue)
294
335
  const pendingTemplateSlugs = new Set((await this.queue.read()).pending
@@ -297,7 +338,7 @@ export class SyncManager {
297
338
  .filter(Boolean));
298
339
  for (const slug of localSlugs) {
299
340
  if (!remoteSlugs.has(slug) && !pendingTemplateSlugs.has(slug)) {
300
- await removeTemplateFile(this.local.getRoot(), slug);
341
+ await this.primary.deleteTemplate(slug);
301
342
  }
302
343
  }
303
344
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SyncManager.js","sourceRoot":"","sources":["../../src/sync/SyncManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncManager.js","sourceRoot":"","sources":["../../src/sync/SyncManager.ts"],"names":[],"mappings":"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"}