Spaces:
Sleeping
Download docs/reference/FEATURE_INVENTORY.md from phucsd/Oloka-Video-Dev: direct link, hf CLI and curl.
- Browser
- Download file 29.6 kB
-
https://huggingface.co/spaces/phucsd/Oloka-Video-Dev/resolve/main/docs/reference/FEATURE_INVENTORY.md
- Command line
-
hf download hf://spaces/phucsd/Oloka-Video-Dev/docs/reference/FEATURE_INVENTORY.md
-
curl -L -o FEATURE_INVENTORY.md https://huggingface.co/spaces/phucsd/Oloka-Video-Dev/resolve/main/docs/reference/FEATURE_INVENTORY.md
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.