feat: massively overhaul codebase#924
Open
baseplate-admin wants to merge 156 commits into
Open
Conversation
* feat: improve compatibility * add webp optimization support * Optimzie * Update FileViewerOverlay.svelte * add * Update file-converter.worker.ts
Fix 5 instances of Card.Rootclass= (missing space before class) and 4 mismatched </CardDescription> closing tags that should be </Card.Description> in the namespace import pattern. Affected: home page and reverse client page.
…svelte deep research - Add page-by-page functional comparison (14 pages: home, upload, download, view, login, reverse landing, reverse host, reverse client, speedtest, admin config, admin users, admin profile, admin urls, informations, onboarding) - Add shared library functions comparison (21 modules tracked) - Add query hooks comparison (9 hooks tracked) - Add exact docs patterns for 10 new components (Input Group, Alert Dialog, Data Table, Tabs, Sheet, Checkbox, Switch, Carousel, Hover Card, Context Menu) - Add component improvement table (14 new shadcn-svelte components vs reference) - Add forward work plan Phases 18-23 (wire installed components, install missing registry components, upgrade admin tables, CSS polish, Playwright verification, code readability final pass) - Summarize what chithi does better (17 advantages) and what reference does better (2 advantages)
- Upload page: replace static encryption info with Accordion.Root containing 3 collapsible items (End-to-End Encryption, How it works, Key storage) - Admin config: wrap 4 stacked cards in Tabs.Root with tab triggers for Storage, Retention, Security, and Description
- Mark Phase 18 Accordion task and Phase 19 Tabs task as complete - Update admin config page comparison table to note Tabs usage - Update conformance gaps fixed table with Accordion and Tabs entries - Update chithi advantages list with Accordion and Tabs entries - Remove completed gaps from Remaining Gaps section
Wrap each zip entry in ContextMenu.Root with View and Save actions, enabling right-click context menu for quick file operations.
- Mark Phase 18 Context Menu task as complete - Update view page comparison table with Context Menu entry - Update conformance gaps fixed table with Context Menu entry - Remove Context Menu from Remaining Gaps section
Replace hidden inline reconnect card with Sheet slide-in panel.
Fixes the bug where showReconnect state had no trigger button.
Uses exact docs pattern: Sheet.Trigger with snippet child({ props }),
Sheet.Close with buttonVariants().
- Mark Phase 19 Sheet task as complete - Update home page comparison table with Sheet entry - Update conformance gaps fixed table with Sheet entry - Remove Sheet from Remaining Gaps section
- Expand error handling if-else chain to multi-line blocks - Expand one-line template elements (KeyRound, Card.Footer, CircleAlert, CompleteSvg, status icon toggle, Download button) for readability
Add CommandDialog component (Ctrl+K) for quick navigation to pages, admin settings, and theme toggle. Wires the already-built CommandPalette component into the navbar+footer layout.
- Mark Phase 18 Command task as complete - Update chithi advantages list with CommandPalette entry - Update conformance gaps fixed table with CommandPalette entry
…able, input-group) Install registry components via shadcn-svelte CLI for Phase 18 wiring: - alert-dialog: used by admin URLs revoke dialog - command: used by CommandPalette (Ctrl+K quick navigation) - data-table: available for admin table upgrades - input-group: used by download/view password inputs
Upload showcase is a custom progress visualization, not carousel cards. Carousel component remains installed for future use cases.
All UI component files now have consistent CRLF line endings after shadcn-svelte CLI install. Includes input, textarea, and all other registry components.
- Update package.json/lock for new shadcn-svelte component installs - Readability improvements to CodeViewer, FileViewerOverlay, QRCode - Update database index and download function - Update complete SVG icon
Commit LF to CRLF normalization for all SvelteKit route files across: - admin pages (config, urls, user, users) - navbar/footer pages (upload, speedtest, reverse, login, logout) - information pages (home, backend, frontend, statistics) - onboarding and once routes
Remove deprecated Python SDK source files and PyO3-based Rust Python bindings in favor of the new pure C ABI WASM approach.
- Update wasm_bindings lib, send_crypto, and seven modules - Update chithi-core crypto and WASM binding crates - Update Cargo.toml and Cargo.lock for core workspace
Show extended file details on hover via HoverCard.Root/Trigger/Content following exact shadcn-svelte docs pattern.
Hover Card wired, Input Group verified, Checkbox verified. All Phase 18 and Phase 19 items complete.
Phase 23 (readability) complete. Phase 22 (Playwright) partial — home, upload, download pages verified, dark mode confirmed working.
All CSS variables use OKLCH color space, but color-mix() calls were using `in srgb` which fails silently when mixing OKLCH values. Switch all color-mix calls to `in oklch` to match the defined color space. Fixes: grid gradient in tailwind.css, progress bar stripes in upload showcase.
Onboarding and error pages used bg-white/70, border-slate-200, text-slate-900 and dark: variants instead of semantic bg-card, border-border, text-foreground. This broke dark mode consistency. All replaced to use Tailwind semantic tokens.
Users page: added text filter input, clickable column headers for sorting by username/email, client-side sort/filter on current page data. URLs page: added text filter input, sortable columns for size, created_at, and downloads. Both tables preserve server-side pagination.
Kbd was imported as namespace (* as Kbd) but used as <Kbd> directly,
causing a runtime warning. Switch to named import { Kbd, KbdGroup }
matching the shadcn-svelte export pattern.
- Fix implicit any types in admin table filters and sort callbacks - Remove non-existent ButtonGroup.Trigger from stage_3.svelte - Fix Accordion collapsible prop not supported by current component - Fix Temporal.Instant.from() API usage for epoch milliseconds - Fix createDecryptedStream return type (ReadableStream, not object with stream prop) - Fix query/stats destructuring for instance info queries - Fix RemoteUpload type mapping to include required key field - Fix Uint8Array to BlobPart cast for Blob construction
refactor: restructure Rust crates with wasmtime-first WASM target - Move Rust crates from sdk/ and src/core/ to crates/ at repo root - Create root Cargo.toml workspace with chithi-core, wasm_bindings, python_bindings - Target wasm32-unknown-unknown (wasm32-wasi preferred when available) for wasmtime - Replace wasm-bindgen with pure C ABI exports for WASM bindings - Python bindings now use wasmtime Python package instead of PyO3 - JS bindings updated to call C ABI functions via WASM linear memory - Add Python build scripts in scripts/ for WASM build and wheel deployment - Frontend chithi_wasm.ts rewritten as C ABI wrapper with memory management - CLI bridge switched to wasmtime-based chithi_sdk import - All 14 crypto tests pass, workspace compiles natively @'
refactor: remove sdk/ and src/core/, consolidate to crates/ All Rust logic now lives in crates/chithi-core (crypto) and crates/wasm_bindings (C ABI exports). The sdk/ and src/core/ directories were duplicate legacy copies. Changes: - Delete sdk/ (old wasm-bindgen-based Rust + JS + Python SDK) - Delete src/core/ (intermediate copy of crate source) - Remove deploy_to_sdk() from build_wasm.py - Fix #[no_mangle] → #[unsafe(no_mangle)] for Rust edition 2024 - Update frontend .gitignore comment to reflect crates/ path All 15 tests pass. EOF
refactor: convert python_bindings to pure Python package at sdks/python The python_bindings Rust crate was replaced with a pure Python package that loads the WASM module via wasmtime. The .wasm file is bundled into the package when building. Changes: - Remove crates/python_bindings from Rust workspace (Cargo.toml) - Create sdks/python/ with pyproject.toml, wasmtime bridge, and data types (Chithi, FileEntry, EncryptedBundle, DownloadResult) - Update build_wasm.py to deploy .wasm to sdks/python/ - Update build_python_wheel.py to build from sdks/python/ - Add .gitignore for sdks/python/ (excludes .wasm build artifacts) Workspace compiles, all 14 crypto tests pass. EOF
refactor: split Python SDK into modules, fix JS TS errors, clean bindings Python SDK (sdks/python/): - Split wasm_bridge.py into types.py, serialize.py, engine.py, client.py - __init__.py re-exports Chithi, FileEntry, EncryptedBundle, DownloadResult - Remove bindings/python/ (replaced by sdks/python/) JS binding (bindings/js/): - Replace WebAssembly.Func with WasmFn type alias - Add types: [node] to tsconfig for process/node:* module support All TypeScript errors resolved, Python imports verified. EOF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.