Skip to content

Commit 2ea28d7

Browse files
Copilothotlong
andcommitted
Phase 6: Resolve all TODOs across monorepo (security, core, objectql, driver-memory, client, cli, metadata)
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 800870c commit 2ea28d7

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

ROADMAP.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,16 +141,17 @@ ObjectStack v2.0.1 has achieved solid protocol-level maturity (B+ → A- grade a
141141

142142
### Phase 6 Checklist
143143

144-
- [ ] Resolve 6 core security TODOs
145-
- [ ] Resolve 2 core production TODOs
146-
- [ ] Resolve 2 ObjectQL TODOs
147-
- [ ] Resolve 6 driver-memory TODOs (or mark as `@planned` with issue refs)
148-
- [ ] Resolve 2 client/CLI TODOs
144+
- [x] Resolve 6 core security TODOs (sandbox path/URL resolution, memory/CPU tracking, signature verification, permission matching)
145+
- [x] Resolve 2 core production TODOs (crypto hash for checksums, JSON path variable substitution)
146+
- [x] Resolve 2 ObjectQL TODOs (populate/joins mapping, HTTP query normalization)
147+
- [x] Resolve 6 driver-memory TODOs (marked as `@planned` with descriptions)
148+
- [x] Resolve 2 client/CLI TODOs (filter AST detection docs, glob pattern matching)
149+
- [x] Resolve 1 metadata TODO (deduplication in loadMany)
150+
- [x] All TODO count → 0
149151
- [ ] Add REST package tests
150152
- [ ] Add metadata package tests
151153
- [ ] Add client-react hook tests
152154
- [ ] Add adapter package tests
153-
- [ ] All TODO count → 0
154155

155156
---
156157

packages/metadata/src/metadata-manager.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,12 @@ export class MetadataManager {
116116
try {
117117
const items = await loader.loadMany<T>(type, options);
118118
for (const item of items) {
119-
// TODO: Deduplicate based on 'name' if property exists
119+
// Deduplicate: skip items whose 'name' already exists in results
120+
const itemAny = item as any;
121+
if (itemAny && typeof itemAny.name === 'string') {
122+
const exists = results.some((r: any) => r && r.name === itemAny.name);
123+
if (exists) continue;
124+
}
120125
results.push(item);
121126
}
122127
} catch (e) {

0 commit comments

Comments
 (0)