Files
inkwell/core/Cargo.toml
T
bvandeusenandClaude Opus 5.5 01b53118b9
Android / Build, or is the channel already serving this? (push) Successful in 2s
CI & Build / Build now, or wait for Android? (push) Successful in 2s
CI & Build / Python lint (push) Successful in 2s
CI & Build / Python tests (push) Successful in 12s
CI & Build / Web typecheck and unit tests (push) Successful in 8s
Desktop (Tauri) / Build, or is the channel already serving this? (push) Successful in 2s
Android / Core and FFI clippy and tests (push) Successful in 1m3s
CI & Build / integration (push) Successful in 1m37s
CI & Build / Build & push image (push) Skipped
Desktop (Tauri) / Web tests, clippy, Rust tests and rustfmt (push) Successful in 2m40s
Desktop (Tauri) / Windows installer (cross-compiled) (push) Successful in 3m14s
Desktop (Tauri) / Tauri desktop (Linux) (push) Successful in 4m3s
Desktop (Tauri) / Update manifest (push) Successful in 4s
Android / Kotlin + Rust (APK) (push) Successful in 8m42s
Android / Build the server image (push) Successful in 1s
Core and desktop comments describe the code to a stranger (#6224)
Milestone 546 "Bring the repo to the comment standard (rule 32) and
compose defaults (rule 198)", step #6224 "Comment standard sweep: Rust
core and desktop client".

Doc comments and comments across inkwell-core, the Tauri app and
desktop/packaging now say what the code does and the non-obvious why in
the present tense. Gone: milestone tags (M10.x, M11.3, M13, M304, M315,
M314, milestone 325), issue and Scribe-note numbers, family-idea and
family-rule citations, the run numbers and commit hashes behind past
bugs, and the narration of what used to be (the stable channel before it
held its own bundles, CARGO_PKG_VERSION as the shown version, the
MANIFEST_TAG split, the store's missing tests, the old PKGBUILD). The
schema's migration notes keep what each step does and why, without
"until now". The forge is called the forge rather than Forgejo.

Hazards stay as facts: the dev-rolling tag that must not shadow the
branch, the manifest matched on this build's version, the APK's fixed
name surviving the prune, the LIKE guard in v9, -wal/-shm moving with
the renamed store, panic = abort ending the app.

34 files, comments only: a comment-stripping diff of every changed file
against HEAD is identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 20:30:37 -04:00

56 lines
3.1 KiB
TOML

[package]
name = "inkwell-core"
version = "0.1.0"
description = "Inkwell client core — local-first SQLite store and opt-in sync engine"
authors = ["bvandeusen"]
edition = "2021"
[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
log = { workspace = true }
# Local-first store: bundled = compile SQLite in, so there's no system
# libsqlite dependency to vary across the AppImage / native / Windows / Android builds.
# functions = the `fold` SQL function tag names are compared and indexed by:
# SQLite's own lower() folds ASCII only, and the server folds every letter.
rusqlite = { version = "0.32", features = ["bundled", "functions"] }
uuid = { version = "1", features = ["v4"] }
# RFC3339 timestamps for created_at/updated_at/remind_at (Date.parse-able on the JS side).
chrono = { version = "0.4", default-features = false, features = ["clock"] }
# HTTP for the opt-in server handshake and the sync engine.
#
# native-tls, NOT rustls, deliberately: on x86_64-pc-windows-msvc native-tls resolves
# to `schannel` — pure-Rust bindings to the OS TLS stack — so nothing C or assembly
# has to cross-compile on the Windows lane, which is the fragile one. rustls would
# instead pull in ring/aws-lc-rs and their assembler. On Linux native-tls uses
# OpenSSL, whose headers (libssl-dev) ci-tauri already ships.
# default-features off drops http2/charset we don't need for a JSON API.
reqwest = { version = "0.12", default-features = false, features = ["json", "native-tls"] }
# Verifying downloaded attachment bytes against the sha256 the server advertised.
sha2 = "0.10"
# Export and import with no server (local/portable.rs): the same zip the server
# writes and reads, so a backup crosses between surfaces. Deflate only — every
# other method (bzip2, zstd, lzma, AES) is off, since neither the server's exports
# nor Google Takeout use them and several pull in C code.
zip = { version = "4", default-features = false, features = ["deflate-flate2"] }
# zip's deflate goes through flate2, which needs a backend chosen. miniz_oxide
# (`rust_backend`) is pure Rust, so the Windows and Android cross-compiles stay
# free of C; both crates were already in the lockfile, via the updater and png.
flate2 = { version = "1", default-features = false, features = ["rust_backend"] }
# Android has no system OpenSSL to link against, and `native-tls` resolves to
# OpenSSL there — unlike Windows, where it lands on schannel and costs nothing.
# Without this the build dies at `openssl-sys`: "Could not find directory of
# OpenSSL installation".
#
# `vendored` compiles OpenSSL from source with the NDK toolchain. Not rustls on
# Android, though it builds faster: rustls ships its own root store, so the phone
# would trust a DIFFERENT set of certificates than the desktop does, and a
# self-hosted server behind a private or enterprise CA would work on one surface
# and fail on another.
#
# Declared as a direct dependency purely to turn the feature on: cargo's feature
# unification applies it to the copy `native-tls` pulls in transitively.
[target.'cfg(target_os = "android")'.dependencies]
openssl-sys = { version = "0.9", features = ["vendored"] }