34 Commits

Author SHA1 Message Date
ea92c2e850 Removed the three stale "Current repository caveat" 2026-02-27 11:31:31 -06:00
0318a57744 i noticed i accidentally broke readme. fixed.
the readme in .App was updated as well it was old
and generic.
2026-02-27 11:23:39 -06:00
506aa072f6 Added README for scripts.
Added WORKFLOWS for scripts.
2026-02-27 11:11:53 -06:00
069b38071c Added Web WebGateway
Added connector so gateway works.
scripts are much more polished and functional.
2026-02-27 11:03:53 -06:00
Jacob Schmidt
a72ddf6aec Move template management into Entries side panel 2026-02-27 06:29:05 -06:00
Jacob Schmidt
64c06081f0 feat(templates): add markdown templates and editor insertion flow 2026-02-26 21:47:26 -06:00
Jacob Schmidt
7c3161c61b feat(settings): persist tags and fragment types via Tauri settings 2026-02-26 21:10:18 -06:00
Jacob Schmidt
235e46240d fix(tauri): support sidecar exe in configured root 2026-02-26 20:52:06 -06:00
Jacob Schmidt
004ea43cf2 fix(tauri): recursively resolve Journal.Sidecar.exe path 2026-02-26 20:29:29 -06:00
Jacob Schmidt
1e28ae9e25 refactor(smoke-tests): split Program.cs into grouped partial files 2026-02-26 20:15:43 -06:00
Jacob Schmidt
d1e4989303 Add edit/delete buttons to SidePanel for all sections, custom entry filenames, vault persistence
- Add edit/delete icon buttons to SidePanel items for entries, todos, lists, and fragments
- Move fragment edit/delete controls from FragmentEditor main panel to SidePanel
- Add externalEditRequested prop to FragmentEditor for parent-controlled edit mode
- Add fragment delete handling in +page.svelte performDelete flow
- Support custom entry filenames via FileName parameter in EntrySavePayload
- Fix vault persistence for custom-named entries (non-date-formatted .md files)
- Add VaultStorageService SaveCustomEntries helper for _custom_entries.vault
- Add entries.delete backend command and wire through EntryFileService
- Remove Write/Preview toggle from MarkdownEditor (previewOnly controlled by parent)
- Add smoke tests for vault custom entry roundtrip and entry save with custom filename

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-02-26 19:40:43 -06:00
Jacob Schmidt
58f9f46cb9 Auto-save entries and lists on navigate-away and app close
- Add saveCurrentDocument() that persists entries (via saveEntryFromStore)
  and lists (via updateListByStoreId) when switching documents or sections
- Register flush callback in session store so +layout.svelte can trigger
  a save before vault rebuild on window close
- Remove explicit Save button from MarkdownEditor (no longer needed)
- Simplify MarkdownEditor props (removed activeSection, onOpenDocument,
  onDeleteDocument since save is now handled by the parent)
- Todos already save instantly; fragments keep their form-based workflow

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-02-26 17:40:32 -06:00
Jacob Schmidt
c7933aeeec Lists & todos backend, editor refactor, inline create, UX improvements
- Wire up lists and todos to C# backend with full CRUD persistence
- Add models, DTOs, repositories, and services for lists and todo lists/items
- Preserve SQLite DB across vault rebuild/load cycles
- Add session store for vault password persistence across navigation
- Add inline name input for creating lists and todo lists in SidePanel
- Clear editor panel on section change with empty state placeholder
- Default markdown editor to preview mode on item selection
- Decompose EditorPanel into sub-components:
  - editor/FragmentEditor, editor/TodoEditor, editor/MarkdownEditor
  - Shared markdown utilities in utils/markdown.ts
- Strip verbose console/eprintln logging from frontend and Tauri backend
- Add graceful shutdown with vault persistence on window close

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-02-26 17:33:27 -06:00
Jacob Schmidt
0465b05845 feat: add shutdown command, auth/entries backend, and editor panel
- Add Rust shutdown command that kills sidecar and exits app cleanly
- Frontend calls invoke('shutdown') after vault flush on close
- Add auth.ts, entries.ts, and normalize.ts backend modules
- Add EditorPanel.svelte component
- Expand entries store with full CRUD support
- Add JournalEntryDtos and JournalEntryDtoMapper in Journal.Core
- Update entry search, fragments, and sidecar CLI

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-02-26 15:34:28 -06:00
Jacob Schmidt
e2bfa0e6ff fix: sidecar project root resolution and Tauri frontend wiring
- Set JOURNAL_PROJECT_ROOT and CWD when spawning sidecar so data
  lands at repo root instead of under src-tauri/ (fixes dev watcher
  hot-reload loop triggered by schema file writes)
- Add backend client layer (auth.ts, client.ts, fragments.ts, types.ts)
- Wire vault unlock flow with password prompt modal on locked DB
- Update fragments store with full sidecar CRUD integration
- Update EditorPanel and AppModal for fragment editing support
- Gitignore runtime journal/ and logs/ directories

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-02-25 22:02:49 -06:00
Jacob Schmidt
54bef33f0b Refactor frontend state to store-first architecture
- add and expand feature stores for entries, fragments, todos, lists, settings

- move CRUD logic into store helpers and simplify component state handling

- update SidePanel + button to create section-specific items

- switch fragment UX to view-first with edit/create modes

- add and update docs for store-based state management

- remove deprecated account route
2026-02-25 20:52:46 -06:00
Jacob Schmidt
a39e634b7b Fixed modal css class to display as static 2026-02-25 18:17:40 -06:00
Jacob Schmidt
e4c156eb58 Refactor journal UI and add markdown editor workflow 2026-02-25 17:52:30 -06:00
Jacob Schmidt
5167304cb4 Initial Frontend Rework 2026-02-24 22:16:51 -06:00
Jacob Schmidt
c0df009d1a Removed Journal.API project 2026-02-24 20:40:32 -06:00
Jacob Schmidt
ef22683b70 refactor: add diagnostic logging and modernize collection expressions
- Add Debug.WriteLine to VaultStorageService empty catch blocks for diagnostics
- Replace .ToList() with collection expressions [..] in fragment repositories
- Remove redundant comments in DatabaseSessionService and VaultStorageService

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-02-24 18:55:48 -06:00
Jacob Schmidt
7865e3bc8b refactor: use GeneratedRegex in HtmlSanitizer for compile-time optimization
- Convert HtmlSanitizer to partial class with [GeneratedRegex] attributes
- Replace 11 runtime Regex.Replace/Matches calls with generated methods
- Eliminates regex compilation overhead for HTML sanitization operations
- Update REFACTORING_SUMMARY.md to document the optimization

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-02-24 18:50:15 -06:00
Jacob Schmidt
a0258446d7 Updated IFragmentService to use Singleton vs Transient 2026-02-23 23:08:25 -06:00
e2ede4b3e9 Merge pull request 'development' (#1) from development into master
Reviewed-on: #1
2026-02-23 22:59:01 -06:00
Jacob Schmidt
d32c0e783c Condensed and formated code 2026-02-23 22:21:59 -06:00
Jacob Schmidt
f86ac5e4b9 Remove dead code, fix duplicated connection logic, eliminate fake async
- Delete unused FileFragmentRepository.cs
- DatabaseSessionService delegates to JournalDatabaseService for
  OpenEncryptedConnection/EnsureSchema instead of duplicating logic
- Make IJournalDatabaseService expose OpenEncryptedConnection and
  EnsureSchema as public
- Convert entire fragment chain from fake async (Task.FromResult
  wrappers) to synchronous: IFragmentRepository, SqliteFragmentRepository,
  InMemoryFragmentRepository, IFragmentService, FragmentService,
  Entry.cs dispatch, and SmokeTests

Co-Authored-By: Warp <agent@warp.dev>
2026-02-23 22:10:36 -06:00
Jacob Schmidt
e85a3f6d26 docs: update README with domain module architecture and encrypted fragment details
Co-Authored-By: Warp <agent@warp.dev>
2026-02-23 22:01:32 -06:00
Jacob Schmidt
f06c1d15bb refactor: encrypt fragments in SQLCipher DB, organize services into domain modules
- Move standalone fragment storage from unencrypted SQLite to the existing
  encrypted SQLCipher database (journal_cache.db)
- Add IDatabaseSessionService/DatabaseSessionService for shared encrypted
  connection management after authentication
- Update fragments table schema: nullable entry_id, add guid column
- Reorganize flat Services/ directory (28 files) into 9 domain modules:
  Ai, Config, Database, Entries, Fragments, Logging, Sidecar, Speech, Vault
- Update all namespace declarations and using statements across all projects
- Update REFACTORING_SUMMARY.md with all changes

Co-Authored-By: Warp <agent@warp.dev>
2026-02-23 21:58:45 -06:00
Jacob Schmidt
8a29bd4bd1 style: apply dotnet format (round 2)
Co-Authored-By: Warp <agent@warp.dev>
2026-02-23 21:39:57 -06:00
Jacob Schmidt
e7d2bdfaa8 style: apply dotnet format to Core project
Co-Authored-By: Warp <agent@warp.dev>
2026-02-23 21:23:58 -06:00
Jacob Schmidt
08ebeeb3c6 docs: add README with C# backend documentation
Co-Authored-By: Warp <agent@warp.dev>
2026-02-23 21:11:24 -06:00
Jacob Schmidt
d3781d6c3e refactor: slim Entry.cs, extract shared sidecar client, add entry file repository
- Slim Entry.cs from ~550 to ~330 lines (thin dispatcher only)
- Extract HtmlSanitizer, CommandLogger, EntryFileService from Entry.cs
- Extract PythonSidecarClient from duplicated sidecar plumbing
- Add IEntryFileRepository + DiskEntryFileRepository (mirrors Fragment pattern)
- Move payload records to Dtos/CommandDtos.cs
- Move database result records to Dtos/DatabaseDtos.cs
- Register new services and repository in DI
- All 70/70 smoke tests pass, no behavior changes

Co-Authored-By: Warp <agent@warp.dev>
2026-02-23 21:03:55 -06:00
14b8e7a339 massive backend migration to c# 2026-02-23 19:57:18 -06:00
Jacob Schmidt
d0fac4199a Initial commit: Journal.Core library + Sidecar console app
- Fragment model with validation, DTOs (immutable records), repository, service
- Sidecar stdin/stdout JSON protocol for Tauri integration
- DI wiring via ServiceCollectionExtensions
- Scaffolded Journal.Api (not yet wired)

Co-Authored-By: Warp <agent@warp.dev>
2026-02-21 02:01:00 -06:00