|
55 | 55 | - [x] **Dead code: unused `removeItemsWithTombstones`** - Function in `tombstone.ts` was never imported |
56 | 56 | - Removed unused function |
57 | 57 |
|
| 58 | +## Dead Code Cleanup (knip analysis) |
| 59 | + |
| 60 | +### Unused Files (11) |
| 61 | +- [ ] `src/crypto/index.ts` - barrel export, check if needed for external API |
| 62 | +- [ ] `src/data/directory-loader.ts` |
| 63 | +- [ ] `src/data/parsers.ts` |
| 64 | +- [ ] `src/sync/index.ts` - barrel export, check if needed for external API |
| 65 | +- [ ] `src/sync/merge/` - entire directory (index.ts, json-merge.ts, jsonl-merge.ts, types.ts, utils.ts) |
| 66 | +- [ ] `src/sync/operations/index.ts` - barrel export, check if needed for external API |
| 67 | +- [ ] `src/sync/packer.ts` |
| 68 | + |
| 69 | +### Unused Dependencies |
| 70 | +- [ ] `@opencode-ai/plugin` - verify if peer/runtime dependency |
| 71 | +- [ ] `eslint-plugin-import` - remove if not used |
| 72 | + |
| 73 | +### Unused Exports - Crypto (4) |
| 74 | +- [ ] `deriveKey` in `src/crypto/encrypt.ts` |
| 75 | +- [ ] `generateSalt` in `src/crypto/encrypt.ts` |
| 76 | +- [ ] `hashPassphrase` in `src/crypto/encrypt.ts` |
| 77 | +- [ ] `verifyPassphrase` in `src/crypto/encrypt.ts` |
| 78 | + |
| 79 | +### Unused Exports - Data (2) |
| 80 | +- [ ] `ensureDir` in `src/data/file-io.ts` |
| 81 | +- [ ] `createInitialConfig` in `src/data/state.ts` |
| 82 | + |
| 83 | +### Unused Exports - Logging (3) |
| 84 | +- [ ] `fileLogger` in `src/logging/file-logger.ts` |
| 85 | +- [ ] `syncDebug` in `src/logging/file-logger.ts` |
| 86 | +- [ ] `startOperation` in `src/logging/file-logger.ts` |
| 87 | + |
| 88 | +### Unused Exports - Sync Engine (15+) |
| 89 | +- [ ] `buildLocalChecksums` in `src/sync/engine/helpers.ts` |
| 90 | +- [ ] `MAX_CONFLICT_RETRIES` in `src/sync/engine/retry.ts` |
| 91 | +- [ ] Multiple re-exports in `src/sync/engine/index.ts` |
| 92 | + |
| 93 | +### Unused Exports - Tombstones (6) |
| 94 | +- [ ] `isTombstoneExpired` in `src/sync/tombstone.ts` |
| 95 | +- [ ] `isItemTombstoned` in `src/sync/tombstone.ts` |
| 96 | +- [ ] `getItemsToDelete` in `src/sync/tombstone.ts` |
| 97 | +- [ ] `addTombstone` re-export in `src/sync/tombstone.ts` |
| 98 | +- [ ] `mergeTombstonesFiles` re-export in `src/sync/tombstone.ts` |
| 99 | +- [ ] `filterExpiredTombstonesFile` re-export in `src/sync/tombstone.ts` |
| 100 | + |
| 101 | +### Unused Exports - Operations (6) |
| 102 | +- [ ] `maybeEncrypt` in `src/sync/operations/crypto-helpers.ts` |
| 103 | +- [ ] `maybeDecrypt` in `src/sync/operations/crypto-helpers.ts` |
| 104 | +- [ ] `parseEncryptedData` in `src/sync/operations/crypto-helpers.ts` |
| 105 | +- [ ] `createManifest` in `src/sync/operations/helpers.ts` |
| 106 | +- [ ] `getLockFilePath` in `src/sync/local-lock.ts` |
| 107 | +- [ ] `readLock` in `src/sync/local-lock.ts` |
| 108 | +- [ ] `withLocalLock` in `src/sync/local-lock.ts` |
| 109 | + |
| 110 | +### Unused Exports - Shared (7) |
| 111 | +- [ ] `isError` in `src/shared/error-utils.ts` |
| 112 | +- [ ] `processSyncResult` in `src/shared/sync-result-handler.ts` |
| 113 | +- [ ] `AppError`, `PackerError`, `SyncError`, `MergeError`, `RepoNotFoundError` classes |
| 114 | + |
| 115 | +### Unused Exports - Types (10+) |
| 116 | +- [ ] `SYNC_CATEGORIES` in `src/types/categories.ts` |
| 117 | +- [ ] `isSyncCategory` in `src/types/categories.ts` |
| 118 | +- [ ] `DEFAULT_TOMBSTONE_GRACE_DAYS`, `CURRENT_SCHEMA_VERSION`, `createEmptyTombstonesFile` in `src/types/index.ts` |
| 119 | +- [ ] `getCategoryForPath` in `src/types/paths.ts` |
| 120 | + |
| 121 | +### Unused Exported Types (22) |
| 122 | +- [ ] `LoadedData`, `LoadError` in `src/data/index.ts` |
| 123 | +- [ ] `PluginState` in `src/plugin/index.ts` |
| 124 | +- [ ] `MergeConflict`, `StateProvider` in `src/shared/` |
| 125 | +- [ ] `SyncAction` in `src/sync/engine/routing.ts` |
| 126 | +- [ ] `ItemDiff` in `src/sync/item-packer.ts` |
| 127 | +- [ ] `CryptoOptions` duplicate exports |
| 128 | +- [ ] `StorageFiles`, `OperationContext`, `ChunkDownloadResult`, `SyncResult` in `src/sync/operations/types.ts` |
| 129 | +- [ ] `CategoryInfo`, `AdvisoryLock`, `TombstonesFile`, `PackedCategory`, `LogLevel` in `src/types/` |
| 130 | + |
| 131 | +**Note:** Many "unused" exports may be intentional public API for package consumers. Review before removing. |
| 132 | + |
58 | 133 | ## In Progress: Safety & Observability |
59 | 134 |
|
60 | 135 | - [ ] Log when local files are overwritten by remote |
|
0 commit comments