Oloka-Video-Dev / docs /reference /FEATURE_INVENTORY.md
phucsd's picture
Deploy GitHub commit 21e8449c1165174dbbb3b2f9840bd0100a456779
9d3d881 verified
|
Raw History Blame Contribute Delete
29.6 kB

Feature Inventory

Quy ước

Nguồn audit: AutoCode Video codex/hf-prod-sync tại 595ccdfaf45ff83473f2da8fd2c71d491828e5f5. Tổng cộng xác định 56 feature/subsystem. Cột Implementation status chỉ mô tả mức hoàn thiện nhìn thấy trong source: FULL, PARTIAL, MOCK, LEGACY, UNREACHABLE hoặc UNCLEAR; nó độc lập với verification status. Mọi dòng có file evidence đều là SOURCE_VERIFIED và NOT_RUNTIME_VERIFIED, trừ khi ghi rõ khác. Phase 0 không có feature nào được nâng lên RUNTIME_VERIFIED hoặc PARTIAL_RUNTIME_EVIDENCE; test file chỉ là source evidence vì 66 test file của repository tham khảo không được chạy. Không suy completeness từ tên route/file. Xem taxonomy chuẩn và ma trận các integration chính tại CURRENT_SYSTEM_MAP.md.

Access và shell

ID Feature Người dùng Entry point Đầu vào → đầu ra Dependency Implementation status Bằng chứng Vấn đề quan sát Đề xuất Oloka
F-01 Public landing Visitor / Nội dung → CTA/login/waitlist Express static Đầy đủ cho presentation public/index.html, public/landing.js, server.js Gắn chặt auth gate/animation Giữ behavior, xây component mới
F-02 Hosted entry policy Visitor/member /, /dashboard Session/status → landing/dashboard/blocked Auth DB Đầy đủ services/hostedEntryPolicy.js, server.js, tests hosted entry Auth có thể tắt bằng env Deny-by-default hosted
F-03 Google OAuth Member Landing login OAuth code → active/pending user + session Google, SQLite Đầy đủ có điều kiện config auth.js, services/oauthGoogleParams.js, public/index.html Không timeout/retry thống nhất KEEP BEHAVIOR
F-04 GitHub OAuth Member API route, không thấy CTA chính OAuth code → user/session GitHub, SQLite Không xác định consumer auth.js, public/index.html Redirect khác Google, email private Hậu MVP/undecided
F-05 Password auth local Local user API routes Email/password → session SQLite/scrypt Legacy/local auth.js Hosted thường disabled; UI chính không có form Remove khỏi hosted MVP
F-06 Waitlist Visitor Landing modal Name/email → pending User SQLite Đầy đủ tối thiểu public/landing.js, auth.js Waitlist dùng chung User entity Giữ value, tách lifecycle
F-07 Session/logout Member Cookie, account menu Session token → user context/logout SQLite/cache Đầy đủ auth.js, services/sessionLookupCache.js, public/app.js Cookie policy theo env; token plaintext DB Thiết kế lại session store
F-08 User approval/roles Admin Admin users Patch/delete → role/status/user SQLite Đầy đủ cơ bản auth.js, services/adminAccessPolicy.js, public/app.js Không organization/permission model Giữ behavior tối thiểu
F-09 Dashboard navigation Member /dashboard, /create, /studio/:id URL/action → view Browser history/state Đầy đủ private/dashboard-shell.html, public/app.js Một JS/HTML monolith Replace implementation
F-10 Settings shell Admin/local user Settings modal Provider/forms → shared/local config AppSetting/localStorage Một phần private/dashboard-shell.html, public/app.js, routes/settings.js Secret/config phân tán Replace bằng server credential refs

Projects và workspace

ID Feature Người dùng Entry point Đầu vào → đầu ra Dependency Implementation status Bằng chứng Vấn đề quan sát Đề xuất Oloka
F-11 Project list/search/filter/page Member Projects view Query/filter → cards/page SQLite + disk fallback Một phần public/app.js, routes/projects.js, services/projectDiskSnapshot.js Nhiều nguồn sự thật KEEP BEHAVIOR, replace data path
F-12 Project creation Member Forge start; POST project alternate Prompt/name → folder + DB record Filesystem/SQLite Một phần routes/forge.js, routes/projects.js Hai contract tạo project Một command canonical
F-13 Per-user workspace Member workspace alias User → auto workspace Filesystem/SQLite Một phần server.js, routes/projects.js Alias/ID khó hiểu UNDECIDED: cấm alias; Phase 1 chọn entity độc lập hoặc chỉ project list
F-14 Select/open project Member Project card/Studio URL ID → scoped project/status Auth + filesystem Đầy đủ public/app.js, routes/projects.js, server.js Nhiều dạng ID Opaque UUID
F-15 Favorite/legacy posted flags Member Project quick menu ID → toggled metadata JSON + SQLite sync Một phần public/app.js, routes/projects.js, services/projectService.js posted không đồng nghĩa platform publish Giữ favorite; bỏ posted khỏi MVP; sau này dùng Publication/PublishJob
F-16 Clone project Member Project quick menu Source ID → copied project Filesystem/SQLite Một phần public/app.js, routes/projects.js Copy toàn tree, reset history; không snapshot transaction Object manifest clone
F-17 Delete/bulk delete Member/admin Manage projects IDs → permanent removal Filesystem/SQLite Nguy hiểm public/app.js, routes/projects.js Không trash, path containment thiếu Replace soft-delete
F-18 Thumbnail Member Project card Project ID → PNG/SVG ffmpeg/files Một phần routes/projects.js, public/app.js Generate-on-request/process fallback Async thumbnail artifact
F-19 Diagnostics/report Member/admin Report/error modal Project ID/section → logs, scan, stats Files/logs/linter Một phần routes/projects.js, routes/forge.js, services/projectReportService.js Expensive/heterogeneous Keep diagnostic value, normalize events

Assets và media

ID Feature Người dùng Entry point Đầu vào → đầu ra Dependency Implementation status Bằng chứng Vấn đề quan sát Đề xuất Oloka
F-20 Shared asset catalog Member Assets/DAM, asset lock Files/sidecars → catalog Shared filesystem/cache Một phần services/assetCatalogService.js, routes/assets.js, public/app.js Global, filename identity Tenant-aware Asset entity
F-21 Asset upload Admin hosted DAM upload/drop Raw media → file + sidecar Filesystem, metadata tools Một phần public/app.js, routes/assets.js Regular member không upload private; RAM/size limits Direct-to-object-storage private upload
F-22 Asset technical metadata Admin/system Upload File → size/hash/media info ffmpeg/image inspection Đầy đủ cơ bản routes/assets.js, services/mediaMetadata.js, services/imageFormat.js Sidecar only Keep behavior in ingestion job
F-23 AI asset analysis Admin/system Upload/re-analyze Media + guidance → tags/description/embedding Recognition provider Một phần/mock fallback services/assetAnalysisService.js, services/mockAssetAnalysis.js, routes/assets.js Success may mean fallback; RAM queue Hậu MVP
F-24 Asset search/filter Member DAM/asset lock Query/filters → client-filtered assets Catalog metadata Một phần public/app.js, services/assetSearch.js Client-heavy; semantic quality uncertain MVP chỉ original filename, media type, upload time, project, optional ingestion status
F-25 Exact duplicate scan Admin DAM scanner Hash/size → duplicate groups Files/sidecars Đầy đủ cơ bản routes/assets.js, public/app.js Cleanup permanent Hậu MVP: workflow exact-duplicate cleanup
F-26 Semantic duplicate scan Admin DAM scanner Embedding threshold → groups Embeddings Một phần routes/assets.js, public/app.js Missing embedding reduces coverage Hậu MVP
F-27 Asset metadata/collection edit Admin Detail/bulk UI Patch → sidecar update Filesystem Một phần public/app.js, routes/assets.js Collection là string, không entity Simple tags first
F-28 Use/lock asset in project Member Prompt asset lock/detail Asset selection → copied file + linked contract Shared/project filesystem Một phần public/app.js, routes/assets.js, services/forgePipelineService.js Copy/filename matching/fuzzy repair Keep value, immutable asset refs
F-29 DAM advanced views Member Collections/favorites/recent/shared/trash Navigation → filtered UI Client state Chỉ UI private/dashboard-shell.html, public/app.js Không backend entity/lifecycle tương ứng Remove khỏi MVP
F-30 AI background removal Member Asset detail Button → timer/alert Không Mock public/app.js Báo tạo file nhưng không có side effect Remove đến khi có provider thật
F-31 Similar/individual duplicate tools Member Asset detail Tags/heuristic → client filter/alert Client catalog Mock/heuristic public/app.js Gắn nhãn AI nhưng không gọi AI Remove khỏi MVP
F-32 BGM library/upload/delete Member/admin BGM modal/DAM Audio → shared track/metadata Shared filesystem Một phần routes/bgm.js, public/app.js Mutation permission không nhất quán Admin catalog riêng sau MVP
F-33 Select BGM Member Create/Studio settings Track/none → project bgm.* Project filesystem Đầy đủ cơ bản routes/bgm.js, public/app.js Copy file, không stable asset ID Keep behavior via asset refs

Generation, Studio và preview

ID Feature Người dùng Entry point Đầu vào → đầu ra Dependency Implementation status Bằng chứng Vấn đề quan sát Đề xuất Oloka
F-34 Prompt composer/config Member Create view Prompt, ratio, caption, BGM, assets → Forge request Browser/settings Đầy đủ private/dashboard-shell.html, public/app.js Nhiều config/advanced controls Keep simplified MVP
F-35 Prompt/URL media ingestion Member Prompt URL/queries → capture/downloaded assets/brand context Web/media tools Một phần services/promptAssetService.js, routes/generate.js SSRF/licensing/anti-bot risk Remove mặc định MVP
F-36 Forge composition generation Member /api/forge/start Prompt/context → narration + HyperFrames HTML LLM/assets Một phần nhưng là core routes/forge.js, services/forgePipelineService.js, services/forgePlanningService.js Huge prompt/repair chain, invalid JSON Replace orchestration, keep outcome
F-37 Legacy direct generation Integrator /api/generate Prompt/URL → JSON/HTML LLM/prompt asset service Legacy/duplicate routes/generate.js; không có consumer trong public/app.js Khác Forge/checkpoints Remove
F-38 HyperFrames contract/registry System Generation/save/render HTML refs → materialized renderable project HyperFrames/registry Một phần, heavily tested services/templateRegistryService.js, services/forgeQualityService.js, tests registry Version/path/materialization complexity Keep contract, redesign dependency manifest
F-39 Studio document editor Member Edit tab Document + revision → saved composition HyperFrames editor/API Một phần src/studio-editor.jsx, routes/composition.js, tests studio Generated bundle lớn; no DB versions Hậu MVP hoặc basic source editor
F-40 Quick scene edit Member Scene panel Scene ID/HTML/narration → updated composition Composition API Một phần public/app.js, routes/composition.js Regex/HTML mutation and conflict risk Replace bằng structured scene model
F-41 AI edit/render-only Member Studio edit prompt Instruction/config → modified composition/new render Forge/LLM Một phần public/app.js, routes/forge.js, services/forgePipelineService.js Duplicate large edit pipeline Hậu MVP after core stability
F-42 Live preview/safe zones Member Live Preview tab Composition → playable iframe Static/HyperFrames runtime Một phần public/app.js, private/dashboard-shell.html, server.js Preview/runtime parity KEEP BEHAVIOR
F-43 HyperFrames preview server System/editor __hyperframes_config/Studio tooling Project dir → child server/proxy HyperFrames CLI Một phần server.js Per-project process/port in RAM; stale logic Replace with bounded preview service

Audio, render, jobs và output

ID Feature Người dùng Entry point Đầu vào → đầu ra Dependency Implementation status Bằng chứng Vấn đề quan sát Đề xuất Oloka
F-44 Omnivoice TTS System Forge TTS step Narration scenes → audio + alignment Omnivoice Đầy đủ với retry services/omnivoiceSceneTts.js, tests TTS Long retry/cold start, provider coupling Adapter + durable scene jobs
F-45 Transcription/alignment fallback System Compile step Narration audio → timed words Local/OpenAI Một phần services/ttsMediaService.js, routes/compile.js, Forge Multiple fallback paths Prefer TTS alignment; keep one fallback
F-46 Caption engine Member/system Create/Studio/compile Timed words/style/mode → composition captions Templates/fonts Một phần mạnh services/captionTemplates.js, services/captionSegmenter.js, quality tests Legacy subtitle detection remains KEEP BEHAVIOR, structured config
F-47 Smart BGM direction System Forge Script + catalog → track/offset LLM/BGM library Một phần services/forgeLlmService.js, services/forgePipelineService.js Extra LLM cost/non-determinism Hậu MVP; manual BGM first
F-48 Durable-looking job lifecycle UI Member Render dock/Studio Start/SSE/poll → progress/cancel/pause/resume RAM queue + DB/meta Một phần services/jobRuntimeService.js, services/jobStore.js, routes/forge.js, public/app.js Không durable thật Replace hoàn toàn
F-49 Local render provider System Forge/direct render Project → MP4 HyperFrames CLI/Chromium Đầy đủ local cơ bản services/renderProviders.js, routes/render.js No clear provider deadline Keep dev-only
F-50 Modal render provider System Forge Bundle → remote call → MP4 Modal Đầy đủ với retry services/renderProviders.js, deploy/modal-renderer/app.py, tests Modal Base64/timeout/version drift Keep goal, versioned protocol
F-51 Render history/output download Member Output/history Completed job → snapshot/play/download Filesystem/HF delivery Một phần services/projectService.js, services/forgeStatusPayload.js, public/app.js Current overwrite; JSON/file drift Immutable RenderOutput entity
F-52 Pre/post render quality System/member Forge + quality report Composition/video → gates/report/feedback HyperFrames/ffmpeg/vision Một phần services/forgeQualityService.js, services/videoQualityService.js, routes/quality.js Optional vision and complex repair Keep technical gates; human review state

Publish, admin và operations

ID Feature Người dùng Entry point Đầu vào → đầu ra Dependency Implementation status Bằng chứng Vấn đề quan sát Đề xuất Oloka
F-53 Social publishing Member Publish modal MP4 + platform config → per-platform result TikTok/YouTube/Facebook Một phần routes/socialPublish.js, public/app.js Direct request, no durable status/token refresh Hậu MVP
F-54 Admin analytics/jobs/cost Admin Admin view DB/disk/activity/pricing → dashboards/export/detail Multiple stores Một phần routes/admin.js, auth.js, services/admin*.js, public/app.js Freshness/source drift MVP: simple job/user operations only
F-55 Provider discovery/health Admin Settings/Admin Config → models/test/Modal health Providers Một phần routes/settings.js, routes/status.js, public/app.js Admin-only, inconsistent deadlines Keep server-side health checks
F-56 Tests and operational scripts Developer/operator npm/scripts/CI Source/config → tests/checks/deploy/smoke Node/GitHub/HF/Cloudflare Một phần package.json, tests/** (66 files), scripts/**, workflow Strong unit contracts but no single hosted E2E proof; stale CF scripts Keep discipline; rebuild around Oloka topology

Tổng hợp theo mức hoàn chỉnh

Nhóm Số lượng Ghi chú
Đầy đủ hoặc đầy đủ có điều kiện 15 Chủ yếu shell/auth cơ bản, selection, metadata kỹ thuật, TTS/local render primitives
Hoạt động một phần 31 Gồm hầu hết core pipeline vì durability/data/permission còn thiếu
Chỉ UI/mock/heuristic 3 DAM advanced/background removal/similar tools
Legacy/duplicate/local-only 4 Password, direct generation và các đường tương tự
Không xác định/nguy hiểm 3 GitHub consumer, destructive deletion và một số operational reachability

Số liệu là phân loại audit tại snapshot, không phải KPI chất lượng production.