-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Core Daemon & Architecture
- Local daemon process with Unix socket IPC
- Configuration loading via Viper (files +
GINKGO_*env) - Request/response IPC protocol for CLI ↔ daemon
- Namespace scoping on requests and storage
- Event log append on create/update/delete
- Move from JSON to Protobuf
- Remote server over TCP/QUIC
- Background sync service (replication to remotes)
- Payload-based replication events with opaque payloads and namespace IDs
- Replication signatures (Ed25519) with trusted signer verification
- Per-namespace E2EE for replication payloads (enc_v1)
- Notification scheduler and delivery
- Multi-user ACLs for shared namespaces
- Connection warm-up: start a QUIC handshake on typing/TUI open, keep it alive with brief pings for instant note syncs.
Storage & Search
- SQLite backend (modernc) with tables: entries, events, tags, note_tags
- Full‑text search (FTS5) on title/body/tags
- Regex search with FTS prefilter (longest-token narrowing)
- CAS updates with conflict detection and error surfacing
- Tag projections and queries (Any/All), tag stats
- Postgres backend instead of sqlite for server (maybe)
- Keyset pagination cursors for list/search
CLI
-
note addone-liner and editor flow (applies default tags) -
note editwith CAS, conflict info,--forcereopen,--keep-tmp -
note showusing shared formatter -
note listwith tag filters (--tags-any/--tags-all) -
note search fts|regexwith tag filters -
import --file(JSON array or NDJSON); creates via daemon; skips conflicts - Namespace override
-n/--namespaceonnotecommand -
completion generatefor bash/zsh/fish -
config generateTOML with defaults -
config generate --overwriteand--update(merge missing keys, comment deprecated) -
daemoncommand to start the local service -
note deletesubcommand - Namespace delete subcommand
- Export (Markdown/JSON/NDJSON) utilities
-
note list --jsonmachine-readable output - Time range filters for list/search (absolute timestamps and relative expressions like
-1d,-1d to -3d) - Paging for list/search output with configurable page size
- Pipe list/search output through a pager and stream pages (stop on early quit)
TUI & Rendering
- Bubble Tea interactive table for
note list --bubble- Alternate screen mode (cleans up on exit)
- Dynamic resize (adapts column widths and height)
- Enter to exit and print selected note via shared formatter
- Shared detail formatter reused by CLI and TUI
- Minimal Markdown-to-plaintext renderer placeholder
- Glamour-based Markdown rendering for note bodies (themeable styling)
- In-TUI actions
- Show
- Edit
- Delete
- Filter modal with tag/time inputs (inherits filter flags)
- Paged TUI browsing with prefetch buffer and reverse paging
- Configurable TUI buffer ratio
- Viewport anchoring on prepend (unsafe hack; relies on bubbles/table internals)
- Move TUI controls hint into a dedicated modal, triggered by
?
Android client
- Architect
Import/Export & Data Tooling
- JSON importer (array or NDJSON) via daemon (ID generated server-side)
- Test data generator script producing
testdata/sample_notes.json - Export commands (Markdown directory, JSON/NDJSON)
- Progress and summary metrics for large imports/exports
DevOps & Tooling
- Makefile for build/install (binary symlink) and systemd wiring
- Systemd user unit for always-on daemon
- Service name
ginkgod - Pre-commit hooks:
go fmt,go vet - CI pipeline (lint, build, basic smoke tests)
- Release packaging (archives, checksums, install script)
Testing
- Unit tests for CLI helpers and IPC
- Paging tests for daemon/db/cli/tui
- Golden tests for search and tag filters (maybe)
- E2E tests
- Harness
- note add
- note show
- note search
- note edit / delete
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels