Skip to content

Add embedded PocketBase sidecar for local server sync - #69

Merged
ultraelectronica merged 11 commits into
mainfrom
versionF
Aug 6, 2026
Merged

Add embedded PocketBase sidecar for local server sync#69
ultraelectronica merged 11 commits into
mainfrom
versionF

Conversation

@ultraelectronica

Copy link
Copy Markdown
Member

Summary

Adds an embedded PocketBase Go sidecar (cross-compiled for android/arm64-v8a) with self-contained migrations, a debug spike screen for P0 feasibility testing, and vendor types for JS editor support.

Changes

PocketBase Sidecar

  • Add embedded PocketBase sidecar for Locker and Android
  • Cross-compile self-contained Go binary (modernc/sqlite, no CGO) targeting android/arm64-v8a
  • Strip symbols and place as libpocketbase.so in jniLibs for PackageManager nativeLibraryDir copy
  • Embed four PocketBase JS migrations (vault_files, albums, tags, folders) via embed.FS
  • Add PB channel to expose nativeLibraryDir to Dart
  • Add http dependency and ignore PocketBase sidecar
  • Add make pb-types target to vendor PocketBase JS editor types

UI

  • Add PocketBase Spike debug screen to vault settings (visible in debug mode only)
  • Adjust gallery grid padding for bottom bar
  • Add bottomFootprint constant to FloatingCapsuleBottomBar

Build

  • Bump version to 0.17.0-beta.1
  • Add monochrome Android launcher icon
  • Add 0.17.0-beta.1 changelog and What's New highlights

Testing

  • Add P0 spike screen for embedded PocketBase sidecar end-to-end test

Exposes applicationInfo.nativeLibraryDir via a MethodChannel so Dart can
locate the bundled PocketBase .so. Spike wiring for
pb_spike_screen.dart.
The PocketBase Spike entry is only visible in debug mode (kDebugMode)
and provides a P0 feasibility check shortcut.
Cross-compile a self-contained Go binary (modernc/sqlite, no CGO)
targeting android/arm64-v8a, strip symbols, and place it as
libpocketbase.so in jniLibs so PackageManager copies it into
nativeLibraryDir at install time. Includes four PocketBase JS
migrations (vault_files, albums, tags, folders) embedded via
embed.FS so the sidecar is fully self-contained.
The `pb-types` target copies the canonical `types.d.ts` from the
pocketbase Go module cache into `pocketbase/pb_data/`, so that the
`/// <reference>` directives in migration files resolve correctly.
The vendored types are gitignored and regenerable.
@ultraelectronica ultraelectronica self-assigned this Aug 6, 2026
@ultraelectronica
ultraelectronica merged commit 170826d into main Aug 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant