circuitforge-core/circuitforge_core
pyr0ball 11e49067a8
Some checks failed
CI / test (push) Has been cancelled
Mirror / mirror (push) Has been cancelled
feat(sync): cross-device profile sync module (consent-gated, last-write-wins)
Add circuitforge_core.sync:
- SyncStore: SQLite-backed blob store with per-user, per-data-class consent gating.
  Push rejected if user hasn't opted in to that data class (SyncPref). Pull returns
  only consented classes. Last-write-wins by updated_at timestamp (equal ts
  does not regress existing data).
- SyncConfig: env-based config factory; reads CF_SYNC_* env vars namespaced per
  product (e.g. CF_SYNC_PEREGRINE_DB).
- make_sync_router(): returns a FastAPI APIRouter pre-wired with:
    GET  /status               — last sync timestamps per data class (any tier)
    GET  /prefs                — list consent settings (any tier)
    PATCH /prefs               — opt in/out of a data class (any tier)
    POST  /push                — upload blob (Paid+ only)
    GET   /pull                — download blobs (Paid+ only)
    DELETE /blob/{data_class}  — delete one blob (any tier)
    DELETE /wipe               — clear all blobs + prefs (any tier)
- 45 tests covering consent gating, last-write-wins, blob opacity, tier checks,
  and all HTTP endpoints.

Also: feedback.py bugbot token fallback (FORGEJO_BOT_TOKEN → FORGEJO_TOKEN);
pyproject.toml: add sync optional extra.
2026-06-14 12:55:05 -07:00
..
activitypub feat: add activitypub module — actor, objects, signing, delivery, Lemmy, inbox (closes #51) 2026-04-20 13:18:03 -07:00
affiliates feat!: strip resources/ from MIT core — moves to circuitforge-orch (v0.8.0) 2026-04-04 22:34:27 -07:00
api feat(sync): cross-device profile sync module (consent-gated, last-write-wins) 2026-06-14 12:55:05 -07:00
audio feat: audio module, musicgen tests, SQLCipher PRAGMA hardening 2026-04-20 11:10:49 -07:00
cloud_session fix: assorted reliability fixes 2026-06-05 10:19:31 -07:00
community feat(community): recipe dedup support — similar_to_ref FK, search_similar_posts, migration 006 2026-05-11 17:09:18 -07:00
config fix: parameterize bare dict type annotations in license module 2026-04-05 21:19:10 -07:00
db feat: audio module, musicgen tests, SQLCipher PRAGMA hardening 2026-04-20 11:10:49 -07:00
documents test(documents): add OCR and ImportError coverage for PDFExtractor 2026-05-04 08:39:31 -07:00
hardware chore: add cf-musicgen to VRAM tier lists + minor tts type fixes 2026-04-24 14:07:01 -07:00
input fix(input/gestures): restore Iterator[np.ndarray] return type on frames() 2026-04-26 20:48:50 -07:00
job_quality feat: add job_quality deterministic trust scorer (closes #48) 2026-04-20 13:02:57 -07:00
llm feat(llm): task-based cf-orch allocation in LLMRouter (v0.21.0) 2026-05-17 19:59:48 -07:00
manage feat: manage.py cross-platform product manager (closes #6) 2026-04-02 23:04:35 -07:00
memory feat(memory): persistent knowledge graph via mnemo sidecar 2026-06-05 10:19:11 -07:00
mqtt feat(mqtt): meshtastic mesh networking module 2026-06-05 10:19:19 -07:00
musicgen feat(musicgen): cf-musicgen module — MusicGen inference server 2026-04-24 15:23:09 -07:00
pipeline feat: v0.9.0 — cf-text, pipeline crystallization engine, multimodal pipeline, a11y preferences 2026-04-08 23:17:18 -07:00
platforms feat: platforms module + docs + scripts 2026-04-24 15:23:16 -07:00
preferences feat: add currency_code preference + format_currency utility (closes #52) 2026-04-20 13:06:04 -07:00
reranker fix: assorted reliability fixes 2026-06-05 10:19:31 -07:00
stt feat(stt): add cf-stt module — FasterWhisperBackend + managed FastAPI app 2026-04-08 22:14:46 -07:00
sync feat(sync): cross-device profile sync module (consent-gated, last-write-wins) 2026-06-14 12:55:05 -07:00
tasks fix: assorted reliability fixes 2026-06-05 10:19:31 -07:00
text fix(text): remove erroneous BSL comments from filter and classifier 2026-06-05 11:59:28 -07:00
tiers fix(core): SQLite timeout=30, INSERT OR IGNORE migrations, parameterize tier unlockables 2026-03-31 10:37:51 -07:00
tts chore: add cf-musicgen to VRAM tier lists + minor tts type fixes 2026-04-24 14:07:01 -07:00
vector fix(vector): explicit rollback, table identifier guard, query scope fix 2026-05-04 15:55:05 -07:00
video fix(video): enforce PCI_BUS_ID order + force CUDA_VISIBLE_DEVICES assignment 2026-05-26 15:07:30 -07:00
vision fix: work around transformers 5.2.0 SigLIP processor crash 2026-04-09 20:01:54 -07:00
wizard feat: add wizard and pipeline stubs 2026-03-25 11:09:40 -07:00
__init__.py fix: assorted reliability fixes 2026-06-05 10:19:31 -07:00