asepharyana and Claude Sonnet 5
b272858edb
fix(cms): satukan ChatMessage/Role Conversation dengan tipe kanonik zesdex-entities
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
3f79b283e2
chore: hapus entitas settings/app_config/memory/edit_log lama di zesdex-entities yang sudah digantikan zesdex-cms
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
9618ef413b
refactor(backend): alihkan EditLog ke zesdex-cms JsonlEditLogRepository
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
0ad3b0e539
refactor(backend): alihkan Memory ke zesdex-cms MarkdownMemoryRepository
...
Ganti semua pemanggilan Memory::read/write/remove/list di zesdex-backend
dengan MarkdownMemoryRepository dari zesdex-cms. Hapus re-export
model::memory yang sudah tidak dipakai.
Method mapping: read -> load, write -> save, remove -> delete, list -> list.
Import trait MemoryRepository untuk method resolution.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
dc9fd4dbd1
refactor(backend): alihkan AppConfig ke zesdex-cms JsonAppConfigRepository
...
Semua pemanggilan AppConfig::load() diganti dengan
JsonAppConfigRepository + AppConfigRepository trait.
Re-export model::app_config dihapus dari model/mod.rs.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
8e6acc30d5
refactor(backend): alihkan Settings ke zesdex-cms JsonSettingsRepository
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
6d41ffc587
fix(cms): perbaiki serde default hive_mind_node_timeout_ms & toleransi parse gagal di Settings
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
f51a32569f
chore: hapus implementasi OAuth/session lama yang sudah digantikan zesdex-iam
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
add6845edf
refactor(backend): alihkan manajemen session ke zesdex-iam (SessionRepository/SessionLockRepository)
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
4ab812d93b
refactor(backend): alihkan run_oauth_flow ke zesdex-iam OAuthServiceImpl
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
ff6a749c11
feat(iam): implementasikan FileSystemSessionLockRepository (sebelumnya belum ada implementasi)
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
f2d97fb17d
fix(iam): set permission 0600 pada file token OAuth
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
be278f8b1c
fix(iam): redirect_uri dinamis + validasi CSRF state di OAuthServiceImpl
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
910aa5e071
feat(iam): port LoopbackServer OAuth callback listener dari zesdex-backend
...
Duplikasi verbatim dari crates/zesdex-backend/src/service/oauth/loopback.rs
ke zesdex-iam untuk sentralisasi primitif OAuth.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana
5ede65f454
feat(iam): tambahkan CSPRNG (OsRng) untuk token state/PKCE
2026-07-17 09:08:41 +07:00
asepharyana and Claude Sonnet 5
4dc4f80fa3
fix(middleware): jangan percaya header X-Forwarded-For/X-Real-IP secara default di rate limiter
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 09:08:41 +07:00
asepharyana
3401d63063
docs(shell): perbaiki doc comment shell_filter yang menyesatkan soal credential-read
2026-07-17 09:08:41 +07:00
asepharyana
be0a9582bb
refactor: migrate monolithic crate to Cargo Workspace with Clean Architecture
...
Transform the single binary crate into a 9-crate workspace monorepo:
- Root Cargo.toml as [workspace] manager with resolver = "2"
- zesdex-entities: Domain entity types (session, settings, store, message, etc.)
- zesdex-utils: Pure utility functions (error, logger, pagination, slug, clipboard)
- zesdex-dto: Data Transfer Objects for LLM provider API communication
- zesdex-ipc: Unix-socket IPC layer (client/server/framing/protocol)
- zesdex-iam: Identity & Access Management (Clean Architecture: domain/application/infrastructure)
- zesdex-cms: Content Management (Clean Architecture: domain/application/infrastructure)
- zesdex-middleware: HTTP middleware (Auth, CORS, Rate Limiting)
- zesdex-libs: Composition root (AppContext, DB init, JWT, Argon2)
- zesdex-backend: Main binary entry point + seed/migrate binaries
- DevOps: Dockerfile, docker-compose, Nix (flake/shell/default), CI/CD updates
- Remove dead root src/ and src-misc/ directories
All crate re-exports maintain backward compatibility with original
crate::model::*, crate::dto::*, crate::ipc::* module paths.
Feature crates enforce strict layer separation: domain -> application
-> infrastructure with generic trait-based dependency injection.
2026-07-17 09:08:41 +07:00