Tổng quan
4 external repos đã có bridge/adapter code nhưng chưa thay thế hoàn toàn code cũ. Cần review và clean up theo thứ tự ưu tiên.
1. DCG (destructive_command_guard) — Priority: 🔴 High
Vấn đề: Bridge module (dcg_bridge.rs) tồn tại nhưng chỉ dùng cho Plan/AcceptEdits/DontAsk/BypassPermissions modes. Default và Auto modes vẫn chạy qua legacy SafetySystem::classify() với AUTO_ALLOWED list cứng.
crates/jcode-app-core/src/dcg_bridge.rs — bridge
crates/jcode-base/src/safety.rs lines 183-195, 228-235 — legacy AUTO_ALLOWED list + classify()
crates/jcode-app-core/src/ambient/runner.rs, server.rs, tool/ambient.rs — vẫn gọi legacy
- Pin issue:
branch = "main" trong Cargo.toml (dòng 185) không pinned revision
Cần làm:
2. Mempalace — Priority: 🟡 Medium
Vấn đề: MempalaceAdapter implement MemoryProvider nhưng chỉ dùng khi feature mempalace-backend enabled (off by default). MemoryManager legacy vẫn là default backend cho tất cả callers.
crates/jcode-app-core/src/tool/mod.rs lines 638-663 — create_memory_provider() fallback về MemoryManager
crates/jcode-base/src/memory.rs — MemoryManager vẫn active
crates/jcode-base/src/memory_graph.rs — MemoryGraph vẫn active
crates/jcode-app-core/src/agent/turn_execution.rs line 913 — instantiate MemoryManager trực tiếp
crates/jcode-app-core/src/ambient/prompt.rs, ambient/runner.rs — dùng MemoryManager trực tiếp
Cần làm:
3. CASR (cross_agent_session_resumer) — Priority: 🟡 Medium
Vấn đề: CASR adapter (casr_adapter.rs) tồn tại nhưng hầu hết callers vẫn dùng legacy import.rs và jcode-import-core crate.
crates/jcode-base/src/casr_adapter.rs — adapter (chỉ được dùng bởi inline interactive)
crates/jcode-base/src/import.rs — legacy import vẫn active
crates/jcode-base/src/import_tests.rs — legacy tests
crates/jcode-import-core/ — cả crate vẫn tồn tại
- Callers dùng legacy:
session/crash.rs, tui/app/helpers.rs, tui/session_picker/loading.rs, tool/session_search.rs
Cần làm:
4. DCP (dynamic_context_pruning) — Priority: 🟢 Low
Vấn đề: Đã tích hợp đầy đủ, additive feature. Nhưng experiment flag DynamicContextPruning có default_enabled: true mà feature dcp không có trong default features — cần kiểm tra xem có intended behavior conflict không.
crates/jcode-app-core/src/dcp_bridge.rs, dcp_plugin.rs, tool/dcp_compress.rs — OK
crates/jcode-experiment-flags/src/lib.rs line 43 — experiment flag status
Files affected (estimated)
crates/jcode-base/src/safety.rs — legacy SafetySystem::classify()
crates/jcode-base/src/import.rs — legacy import
crates/jcode-base/src/memory.rs — legacy MemoryManager
crates/jcode-base/src/memory_graph.rs — legacy MemoryGraph
crates/jcode-import-core/ — cả crate
crates/jcode-app-core/src/dcg_bridge.rs — incomplete bridge
crates/jcode-app-core/src/ambient/ — multiple files dùng legacy
crates/jcode-app-core/src/tool/mod.rs — create_memory_provider()
crates/jcode-tui/src/tui/ — multiple files dùng legacy import
Đề xuất thứ tự xử lý
- DCG (High priority — bảo mật) — xoá
AUTO_ALLOWED, dùng DCG cho tất cả modes
- CASR (Medium — tech debt) — migrate callers, xoá jcode-import-core
- Mempalace (Medium — kiến trúc) — deprecate MemoryManager nếu Mempalace ổn định
- DCP (Low — chỉ kiểm tra config)
Tổng quan
4 external repos đã có bridge/adapter code nhưng chưa thay thế hoàn toàn code cũ. Cần review và clean up theo thứ tự ưu tiên.
1. DCG (destructive_command_guard) — Priority: 🔴 High
Vấn đề: Bridge module (
dcg_bridge.rs) tồn tại nhưng chỉ dùng cho Plan/AcceptEdits/DontAsk/BypassPermissions modes.DefaultvàAutomodes vẫn chạy qua legacySafetySystem::classify()vớiAUTO_ALLOWEDlist cứng.crates/jcode-app-core/src/dcg_bridge.rs— bridgecrates/jcode-base/src/safety.rslines 183-195, 228-235 — legacyAUTO_ALLOWEDlist +classify()crates/jcode-app-core/src/ambient/runner.rs,server.rs,tool/ambient.rs— vẫn gọi legacybranch = "main"trong Cargo.toml (dòng 185) không pinned revisionCần làm:
AUTO_ALLOWEDlist vàSafetySystem::classify()dcg-coresang pinned revision thay vìbranch = "main"2. Mempalace — Priority: 🟡 Medium
Vấn đề:
MempalaceAdapterimplementMemoryProvidernhưng chỉ dùng khi featuremempalace-backendenabled (off by default).MemoryManagerlegacy vẫn là default backend cho tất cả callers.crates/jcode-app-core/src/tool/mod.rslines 638-663 —create_memory_provider()fallback về MemoryManagercrates/jcode-base/src/memory.rs— MemoryManager vẫn activecrates/jcode-base/src/memory_graph.rs— MemoryGraph vẫn activecrates/jcode-app-core/src/agent/turn_execution.rsline 913 — instantiate MemoryManager trực tiếpcrates/jcode-app-core/src/ambient/prompt.rs,ambient/runner.rs— dùng MemoryManager trực tiếpCần làm:
create_memory_provider()— không hardcode MemoryManagermempalace-backendtrong default features (hoặc decision: keep both)3. CASR (cross_agent_session_resumer) — Priority: 🟡 Medium
Vấn đề: CASR adapter (
casr_adapter.rs) tồn tại nhưng hầu hết callers vẫn dùng legacyimport.rsvàjcode-import-corecrate.crates/jcode-base/src/casr_adapter.rs— adapter (chỉ được dùng bởi inline interactive)crates/jcode-base/src/import.rs— legacy import vẫn activecrates/jcode-base/src/import_tests.rs— legacy testscrates/jcode-import-core/— cả crate vẫn tồn tạisession/crash.rs,tui/app/helpers.rs,tui/session_picker/loading.rs,tool/session_search.rsCần làm:
import.rscallers sangcasr_adapter.rscrates/jcode-import-core/sau khi migrate hoàn tấtpub mod importtrongjcode-base/src/lib.rs4. DCP (dynamic_context_pruning) — Priority: 🟢 Low
Vấn đề: Đã tích hợp đầy đủ, additive feature. Nhưng experiment flag
DynamicContextPruningcódefault_enabled: truemà featuredcpkhông có trong default features — cần kiểm tra xem có intended behavior conflict không.crates/jcode-app-core/src/dcp_bridge.rs,dcp_plugin.rs,tool/dcp_compress.rs— OKcrates/jcode-experiment-flags/src/lib.rsline 43 — experiment flag statusFiles affected (estimated)
Đề xuất thứ tự xử lý
AUTO_ALLOWED, dùng DCG cho tất cả modes