feat: finishing of M0
This commit is contained in:
106
docs/COMPATIBILITY_INVENTORY.md
Normal file
106
docs/COMPATIBILITY_INVENTORY.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# bDS Compatibility Inventory: TypeScript vs Rust
|
||||
|
||||
Tracks feature parity between the TypeScript bDS app and the Rust rewrite (RuDS).
|
||||
|
||||
Legend: `[x]` implemented/verified, `[ ]` not yet implemented
|
||||
|
||||
---
|
||||
|
||||
## Database Schema
|
||||
|
||||
- [x] projects table
|
||||
- [x] posts table (with published_* legacy columns)
|
||||
- [x] post_translations table
|
||||
- [x] media table
|
||||
- [x] media_translations table (mediaTranslations)
|
||||
- [x] tags table
|
||||
- [x] templates table (with kind/status defaults matching TypeScript)
|
||||
- [x] scripts table (with kind/status defaults matching TypeScript)
|
||||
- [x] post_links table (postLinks)
|
||||
- [x] post_media table
|
||||
- [x] settings table
|
||||
- [x] generated_file_hashes table
|
||||
- [x] db_notifications table
|
||||
- [x] chat_conversations table
|
||||
- [x] chat_messages table
|
||||
- [x] ai_providers table
|
||||
- [x] ai_models table
|
||||
- [x] ai_model_modalities table
|
||||
- [x] ai_catalog_meta table
|
||||
- [x] embedding_keys table
|
||||
- [x] dismissed_duplicate_pairs table
|
||||
- [x] import_definitions table
|
||||
- [x] All 10 unique indexes
|
||||
- [x] FTS5 virtual tables (posts_fts, media_fts) -- present in fixture DB, runtime creation deferred to M1
|
||||
- [x] Default values match TypeScript (status, kind, enabled, version, entrypoint)
|
||||
|
||||
## File Formats
|
||||
|
||||
- [ ] Post frontmatter (YAML) read/write
|
||||
- [ ] Translation file format (posts/YYYY/MM/slug.lang.md)
|
||||
- [ ] Media sidecar (.meta) read/write
|
||||
- [ ] Template frontmatter read/write
|
||||
- [ ] Script frontmatter read/write
|
||||
- [ ] meta/tags.json
|
||||
- [ ] meta/project.json
|
||||
- [ ] meta/categories.json
|
||||
- [ ] meta/category-meta.json
|
||||
- [ ] meta/publishing.json
|
||||
- [ ] meta/menu.opml
|
||||
|
||||
## Slug Generation
|
||||
|
||||
- [x] Basic transliteration (Unicode to ASCII, lowercase, hyphens, trim)
|
||||
- [x] German umlauts: ae/oe/ue/ss/Ae/Oe/Ue (matches TypeScript transliteration npm)
|
||||
- [x] Uniqueness: base, then {slug}-2..999, then {slug}-{timestamp}
|
||||
|
||||
## Content Location
|
||||
|
||||
- [x] Published posts have NULL content in DB, body in filesystem .md
|
||||
- [x] Draft posts have content in DB
|
||||
- [x] Published translations have NULL content in DB
|
||||
- [x] Published templates have NULL content in DB
|
||||
- [x] Published scripts have NULL content in DB
|
||||
|
||||
## Rendering
|
||||
|
||||
- [ ] Liquid template rendering (subset: if/elsif/else, for, assign, render, whitespace stripping)
|
||||
- [ ] Liquid filters: escape, url_encode, default, append, i18n, markdown
|
||||
- [ ] Markdown rendering via pulldown-cmark
|
||||
- [ ] Built-in macros: gallery, youtube, vimeo, photo_archive, tag_cloud
|
||||
- [ ] RSS/Atom feed generation
|
||||
- [ ] Sitemap generation
|
||||
- [ ] Generated file hash tracking (incremental)
|
||||
- [ ] Pagefind search index generation (via pagefind crate library API)
|
||||
|
||||
## Search
|
||||
|
||||
- [ ] FTS5 post indexing with Snowball stemmers (24 languages)
|
||||
- [ ] FTS5 media indexing
|
||||
- [ ] Cross-language stemming
|
||||
|
||||
## Publishing
|
||||
|
||||
- [ ] SSH/SCP upload
|
||||
- [ ] Rsync upload
|
||||
- [ ] Three parallel upload targets (html, thumbnails, media)
|
||||
- [ ] .meta files excluded from upload
|
||||
|
||||
## AI Integration
|
||||
|
||||
- [ ] Two-endpoint model (online + airplane)
|
||||
- [ ] One-shot operations (translate, analyze, etc.)
|
||||
- [ ] Chat with tool use
|
||||
- [ ] Model catalog refresh
|
||||
- [ ] Secure key storage (OS keychain)
|
||||
|
||||
## Thumbnails
|
||||
|
||||
- [ ] Small (150px), Medium (400px), Large (800px), AI (448x448 JPEG)
|
||||
- [ ] WEBP output
|
||||
|
||||
## MCP Server
|
||||
|
||||
- [ ] HTTP + stdio transports
|
||||
- [ ] Read-only tools
|
||||
- [ ] Proposal-based write tools
|
||||
Reference in New Issue
Block a user