-
v1.0.0
StableAll checks were successfultag / tag (push) Successful in 13m44scheck / go (push) Successful in 3m32scheck / web (push) Successful in 9m15srelease / binaries (push) Successful in 9m17srelease / docs (push) Successful in 9m52srelease / image (push) Successful in 11m7srelease / android (push) Successful in 14m8srelease / module (push) Successful in 3m56srelease / manifests (push) Successful in 4m54srelease / release (push) Successful in 24sreleased this
2026-08-11 21:21:22 +00:00 | 377 commits to main since this releaseBreaking changes
Features
- feat(docs): mount the app's real header widgets on /docs (
04b1142) - feat(docs): /docs header renders the app header proper (
3ed9c30) - feat(docs): serve embedded /docs inside the app shell (
a1e2f30) - feat(mcp): export_my_data tool, self-scoped and size-capped (
cfe333d) - feat(android): download my data from Settings (
261bbb5) - feat(web): personal data export in Settings and Admin (
287eaeb) - feat(cli): famorgasy user export (
f643831) - feat(system): per-user data export RPC (ADR-0027) (
cdd4db6) - feat(deploy): TrueNAS SCALE custom app compose (
557edcd) - feat(server): healthcheck subcommand for container probes (
288319e) - feat(android): points and owner on the quick-add step form (
203a09a) - feat(web): points field on the quick-add step form (
ff26dc9) - feat(android): points on steps in the job sheet (
3b54efe) - feat(web): points on steps in the job sheet (
912d1ef) - feat(web): Today's job cards open the job sheet (
32f2f80) - feat(android): points balance chip in the top bar (
56c0029) - feat(web): points balance chip in the header (
1745a7f) - feat(android): job sheet opens as a view before editing (
7effde9) - feat(web): job sheet opens as a view before editing (
06bf21d) - feat(mcp): sub-tasks on get_item and add_item (
6c3dccf) - feat(cli): sub-task management commands (
7da9b4f) - feat(android): sub-tasks in the job sheet (
1de7577) - feat(web): sub-tasks in the job sheet (
a4691ba) - feat(item): clone sub-tasks onto repeat successors (
85055f2) - feat(item): parent_uid field, SetParent RPC and sub-task guards (
3ecf7ce) - feat(docs): domain-grouped API sidebar with scroll tracking (
99aef39) - feat(web): docs entry in the me-menu (
ed4193d) - feat(docs): API reference sidebar and home link (
46d0315) - feat(web): publish docs-theme hint for the docs pages (
8c73d91) - feat(server): serve the docs site at /docs (
3105fb7) - feat(docs): generated docs site via cmd/docsgen (
eb541ca) - feat(cli): webhook commands (
465a36b) - feat(web): webhooks admin tab (
0eb6400) - feat(webhook): admin RPCs (
fad79dd) - feat(webhook): dispatch seam (
406353b) - feat(db): webhook table (
bfd88ab) - feat(proto): WebhookService for outbound event targets (
6c30919) - feat(system): admin toggle for the /mcp endpoint, default off (
d65fe47) - feat(web/a11y): skip-to-content link in the shell (
b395fc1) - feat(android): per-member language choice, synced like the web (
5ace462) - feat(android): server address in the colophon on every board (
07eee78) - feat(system): import and restore from backup archives (
798c8d3) - feat(system): admin data export, backup and portable modes (
2a9b053) - feat(deploy): sqlite PVC deployment, CNPG becomes the optional path (
e703bea) - feat(server): db-driver and db-path config, sqlite default (
d944d10) - feat(database): sqlite dialect with containment translation (
25ea2be) - feat(android): profile switching parity - parked tokens, PIN pad (
cea9f61) - feat(web): the switch-user sheet, PIN pad and parked profiles (
ae4c369) - feat(auth): quick profile switching with parked chains and PINs (
6ed37fe) - feat(web,android): the offline strip replaces the saved banner (
0146dab) - feat(android): offline parity — full write queue, sync chip (
7666f63) - feat(web): only the server ends a session (
53bf46b) - feat(web): offline writes — a FIFO queue with replay (
6172989) - feat(web): offline reads and service-worker shell (
95049cd) - feat(server): accept client-minted uids on creates (
3770116) - feat(rewards,family): close recorded parity gaps (
c2b4820) - feat(calendar): the Android calendar closes its 2026-08-06 parity gaps (
818c131) - feat(jobs): bring the full web job sheet and new-job flow to Android (
e74295f) - feat(shell): the sign-in screen reaches Android parity (
c0744b3) - feat(today): event sheet closes its two Today-board gaps (
90ba759) - feat(family): the Family page reaches Android parity (
7c68eab) - feat(shell): the web's motion canon arrives on Android (
915a03e) - feat(shell): boards learn the web's job-grid on wide screens (
d9b09dc) - feat(settings): the Settings page reaches Android parity (
abcadfe) - feat(shell): move sign out from settings into the me-menu (
03d0ef9) - feat(boards): every card joins the tilt (
922b649) - feat(shell): web header locks in place like the app's (
fae3fe8) - feat(shell): the me-menu converges across surfaces (
57193f2) - feat(rewards): the Rewards page reaches Android parity (
da44696) - feat(meals): the Meals page reaches Android parity; nav goes cal-nav (
48a8414) - feat(android): the Lists pages reach web parity (
d8fde22) - feat(android): the Watch stream brings live updates (
9eb7b05) - feat(android): jobs board becomes the web's two views (
8197ea5) - feat(calendar): back-to-today becomes a fixture between the arrows (
97aa202) - feat(android): the calendar agenda carries the whole day (
902e359) - feat(android): theme follows the member — settings sync lands (
039e92a) - feat(android): the calendar opens to a month from 900dp (
f098f39) - feat(android): port the web's Today board and Rewards claim flow (
ef26952) - feat(android): port the web shell — boards, header, me-menu, bell (
4bb3db1) - feat(android): the noticeboard look lands; Android 17 LAN fix (
00912a5) - feat(parity): the rule-1 gaps close (
1fa4c2c) - feat(make): the integration suite finds its Postgres (
3e11da7) - feat(android): marks arrive (
1243daf) - feat(ci,deploy): every artifact carries a seal (
839a4c2) - feat(android): the app reaches parity's edge (
ea38002) - feat(android,deploy): the phone hears the bell (
5ed0363) - feat(android,auth): the app signs in and pulls its weight (
e58774d) - feat(android): the app takes its first breath (
415bef6) - feat(auth): sessions learn to outlive their tokens (
9fb7ac7) - feat(web): the rota board goes up (
a452ae8) - feat(seed): the sample rota (
687f787) - feat(client,mcp): expose the meal rota to the assistant (
85408d9) - feat(reminder): the board learns to speak first (
a316205) - feat(mealrota,notify): the rota takes charge (
66e337d) - feat(db): shelves for the rota (
b500d9d) - feat(proto): the standing rota — MealRota and its service (
f3c0742) - feat(meal): the pantry opens for business (
8d0b44d) - feat(domain): meal helpers (
80f2a75) - feat(db): a meal shelf joins the pantry (
1809ba1) - feat(proto): add the meal library service (
ce0fbba) - feat(web): the board taps you on the shoulder (
4c2f79e) - feat(push): the whisper finds its voice (
0c7504e) - feat(push): the board learns to whisper beyond its walls (
ea2af8b) - feat(deploy): the board steps onto the LAN (
ee9df99) - feat(web): the board learns its own version (
a15f286) - feat(web): move language into the profile sheet (
0b72ea0) - feat(web): the name in the corner opens a pinned note (
1c156e3) - feat(i18n): the last strings pack their bags (
94a8941) - feat(i18n): the household translates (
d1f69c1) - feat(i18n): the calendar keeps ISO time but learns its month names (
e9eadbc) - feat(i18n): translate the working day (
62d082c) - feat(i18n): the front door greets in Irish (
1e60a67) - feat(i18n): the shell speaks (
9a2a221) - feat(i18n): the scaffolding goes up (
215471b) - feat(web): the noticeboard look moves in (
011282e) - feat(release): publish rendered manifests (
bd75202) - feat(release): the timoni module rides the registry too (
9115161) - feat(release): jobs pass the baton (
a8ab5fe) - feat(server): the server introduces itself (
920f075) - feat(release): flow versions from tag to binary (
619e67d) - feat(mcp): the tools answer follow-ups (
651f66a) - feat(svc): responses name their people (
447cf04) - feat(web): the admin page manages api keys (ADR-0016 p7) (
ecb0ee0) - feat(client): api keys reach the CLI (ADR-0016 p6) (
996e4c9) - feat(mcp): the server speaks MCP at /mcp (
436cfe9) - feat(auth): reward-bearing writes demand a human actor (ADR-0016 p4) (
92a5db6) - feat(apikey): mint, list and revoke keys (ADR-0016 p3) (
f0aed3e) - feat(auth): the interceptor speaks api_key (ADR-0016 p2) (
387a8f0) - feat(auth): api keys are records first (ADR-0016 p1) (
41a23f4) - feat(web): header mode toggle; tour mark step opens the 'My mark' sheet (
519495c) - feat(auth): password changes orphan every earlier token (
c59f34b) - feat(auth): the web session rides an httpOnly cookie (
d2564ad) - feat(auth): every request resolves its subject from the record (
cc5ae79) - feat(auth): the dev secret unpins and tokens live half a day (
02e329e) - feat(db): the server applies its own schema on boot (
92286c1) - feat(seed): the family command grows a whole tree on a fresh database (
9c0e571) - feat: the family name greets from the header, tab, sign-in and TUI (
c8e5781) - feat(calendar): who and what filters over the board (
f8dad3a) - feat(calendar): the span cancel confirm names its dates (
6c609ab) - feat(calendar): events span days — all day, one block, or daily times (
6896ea4) - feat(tour): theme pick step after the mark (
32f2005) - feat(admin): syntax highlighting on the raw JSON peeks (
de55599) - feat(admin): raw JSON peek for members and audit events (
d58160a) - feat(tour): role-based first-login walkthrough (
9649133) - feat(auth): sliding token renewal and session-expiry handling (
c9eb92b) - feat(admin): admin area — members, audit log, system settings (
793e849) - feat(users): manual ex-partner links and household halo in the tree (
9afb63e) - feat(events): repeating events — derived occurrences with overrides (
fb00ad8) - feat(items): takers see the whole jobs board (
bc63d3e) - feat(notify): live data feed — pages refresh over the stream (
f4fcf1e) - feat(notify): claim announcements and points in completion news (
57f48c5) - feat(notify): notifications — inboxes, live stream, bell, toasts (
a551e03) - feat(items): repeating jobs — close-out mints the successor (
7a4385e) - feat(users): self-service change password (
03ef537) - feat(web): mark menagerie, fitting room everywhere, settings as cards (
e7897c7) - feat(settings): sync theme and mark to the server (
06aa429) - feat(web): split tree-only members out of the family grid (
2c9cb78) - feat(web): tabs deep-link via ?view= in the URL (
5b93c86) - feat(web): unclaimed jobs lead the Everyone view (
9d1b587) - feat(web): up-for-grabs preview on the Today board (
4acc41d) - feat(users): record-only members — living family without login (
ac80488) - feat(tree): stronger family grouping in the tree layout (
e01395c) - feat(seed): lists and linked points rewards (
361e185) - feat(web): job points (
bacc78b) - feat(web): lists land — index, detail, quick-add (
6576c95) - feat(server): points auto-claim; reward link rules + LinkItem (
a9d3af4) - feat(server): item lists (
84ee4c0) - feat(rewards): claimed-only points balance; web reward delete (
3dc7b1c) - feat(proto): item lists — ListRef, SetList, ItemListService (
badf5aa) - feat(web): SVG chevrons for calendar navigation; wider day sheet (
e0ac4b0) - feat(web): SVG close icon for sheets (
19df759) - feat(web): day-view header with centred title, sticky above the clock (
2e435cf) - feat(web): previous and next day navigation in the day view (
fe0afae) - feat(web): calendar day timeline view (
bdd51cf) - feat(seed): busy calendar days with 3-5 events (
4aff303) - feat(seed): reusable dev-data seeder for the existing family (
c99316b) - feat(web): rewards UI catches up with the points ledger (ADR-0003) (
1d52017) - feat(web): job sheet and take-ownership UI (ADR-0014) (
875386c) - feat(items): job ownership and editing rules (ADR-0014, backend) (
2bab609) - feat(roles): widen role gates for members and children (
b2f2839) - feat(web): colour-coded tree lines, sibling arcs, and a legend (
6d3658f) - feat(web): family tree view (ADR-0005) (
ab63f8f) - feat(setup): first-time setup flow via SystemService/SetupStatus (
18f9d6f) - feat(domain): derive the family graph (ADR-0004) (
3fc146d) - feat(rewards): points ledger with costed claims (ADR-0003) (
02ed2ed) - feat(observability): provision the Grafana dashboard set (
8819b56) - feat(svc): entity mutation counter and domain event counters (
6acd5fe) - feat(auth): login, token and authorization-denial metrics (
f8cda8d) - feat(db): operation duration histogram and pool gauges (
d3b8df2) - feat(otel): global meter provider, runtime metrics, telemetry package (
eee85bb) - feat: service authz, CLI user reference, profile self-service (
3f9ea23) - feat(web): frontend foundation, sign-in profile picker, and Today board (
af5895d) - feat(domain): restrict user deletion on live references (
b2dd080) - feat(domain): extract entity behaviour into internal/domain (
ce7bd99) - feat(user): scrub password_hash via svc.SanitizeInterceptor (
adeec8e) - feat(observability): add config-driven OTLP exporters (
f021284) - feat(cli): implement table formatter and shell completion (
ed6eb47) - feat(api): add List RPCs across all services (
2f7936c) - feat(deploy): add Kubernetes deployment via kind, CNPG, Timoni and Flux (
4114dc0) - feat(reward): implement service handlers (
001de39) - feat(item): implement service handlers (
687055d) - feat(event): implement remaining service handlers (
4484728) - feat(user): implement Delete handler (
3ffd58b) - feat(database): add Delete primitive to Table and TxTable (
bb52583) - feat(cli): add Makefile targets for CLI build (
bc4b30d) - feat(cli): add all service commands (user, event, item, reward) (
068b029) - feat(cli): add login/logout commands and output formatters (
354d8c3) - feat(cli): add foundation with config and version command (
4e11e06) - feat(client): expose all proto fields in reward params structs (
12728be) - feat(rbac): define roles and permissions in protobuf (RFC 004) (
adc8326) - feat: add Go client package for CLI tools and applications (
ebe1db0) - feat(logging): add context-aware structured logging to reward service (
bc724e2) - feat(logging): add context-aware structured logging to item service (
69ba4fe) - feat(logging): add context-aware structured logging to event service (
463595c) - feat(logging): add context-aware structured logging (
372d89f) - feat(user): implement rfc-002 phase 4 role management (
2bd8a97) - feat(auth): implement rfc-002 phase 3 (interceptor) (
a20cfa9) - feat: implement rfc-002 phase 2 (AssignRoles, CompleteItem) (
03942c0) - feat(auth): implement rfc-002 phase 1 (permissions) (
be97e5e) - feat: implement RFC-001 (
99a4808) - feat: update version package to match semver spec (
4ded920) - feat: update services to work with new database structure (
fdedaad) - feat: refactor to use cobra (
4a48897) - feat: set up dagger and the version package (
c73781f) - feat: create internal service packages (
3f1cb67) - feat: create proto api and generate go code (
3e35382)
Fixes
- fix: update the cosign public key (
8144874) - fix(docs): concrete webhook envelope example in event reference (
57b053c) - fix(docs): guides at clean URLs, API TOC nested under its entry (
94ba31f) - fix(android): no refresh error line for the network's absence (
9b284a3) - fix(android): docs entry in the me-menu (
e9d27e9) - fix(android): Today job cards learn steps and open the job sheet (
ac2b695) - fix(android): reachability learns from traffic and a heartbeat (
e107e63) - fix(android): sync chip becomes a strip under the offline bar (
3bd68c2) - fix(web): sync chip becomes a strip under the offline bar (
5419d5b) - fix(android): keep Activity reachable through the member-locale context (
3ffde81) - fix(web): step editors open under their own row (
23fef05) - fix(web): day strip sits under the header; Today cards learn steps (
1e6e13d) - fix(web): day view nav icon and pinned all-day strip (
65eb2d1) - fix(audit): queue entries off the request path (
baa2e1f) - fix(mcp): authenticate before revealing the disabled state (
6532345) - fix(web/tree): let family-tree text follow the text-size setting (
45c24d9) - fix(web/a11y): tie validation errors to their fields (
09cbe80) - fix(web/a11y): announce save completion to screen readers (
0cc58f4) - fix(web/i18n): set document language on locale switch (
0a74e78) - fix(web,android): surface-on-danger for the offline strip (
fd4841d) - fix(web): the strip rises unprompted; 5xx reloads keep the shell (
f4fe28c) - fix(web,android): offline holes the real phone found (
7571c47) - fix(calendar): month cells take the web's fixed dress and day-spread (
e89f1a9) - fix(android): the bell hears its own stream — Subscribe joins Watch (
26ae3ce) - fix(notifications): make the bell's badge an accent dot (
bf20b6c) - fix(android): resolve every Material3 colour role via FamTokens (
a30693b) - fix(mealrota): the cook ref goes unnamed (
6440330) - fix(style): danger buttons get icons and the date canon its ruling (
6645381) - fix(auth): close the setup window behind the first admin (
566a1b1) - fix(android): every failure names its reason (
570e46b) - fix(notification): route MarkAllRead through the svc seams (
60fae06) - fix(android): the app wears its own face (
d7659b4) - fix(android,ci): derive APK version from the release tag (
b098829) - fix(android): give UnifiedPush the Activity it always wanted (
f39efd4) - fix(ci): the android platform learns its full name (
37cac9d) - fix(ci): absorb SIGPIPE from the sdkmanager license pipe (
4349c4c) - fix(web): failures name their reason (
8b39b7e) - fix(auth,web): the session survives a closed tab (
a84c49c) - fix(push,deploy): opening-night stumbles smoothed (
98c092d) - fix(web): narrow screens breathe (
421480f) - fix(web): the board's mark rides the bottom bar too (
c32bd26) - fix(i18n): family default reaches everyone who never chose (
2e84580) - fix(deploy): OTLP export ships off by default (
618fe4c) - fix(proto): codegen comes home (
05f3f1f) - fix(deploy): the published module serves ClusterIP (
27e2f1c) - fix(release): the module takes the plain name timoni under the org roof (
9234382) - fix(deploy): the module default follows the repo to its org (
f6d2852) - fix(release): artifacts speak v3 (
8fbb4a9) - fix(ci): the lint's one quibble yields; buf pins its version (
39b98e7) - fix(ci): caches wait for a reachable cache server (
8e9465c) - fix(web): focus rings survive their scroll boxes (
ed88d11) - fix(docs): the corner-pill tag sits above its positioned card (
82e3e0b) - fix(calendar): the who filter lists active members only (
8344965) - fix(calendar): the stretch cancel is called Cancel Span (
5e5bb73) - fix(calendar): the whole-stretch cancel stands in plain sight (
b5408a6) - fix(tour): steps pin heading and actions like the sheets (
ef703e5) - fix(admin): the Everyone filter chip wears a mark (
daf80e0) - fix(admin): audit filters wear the site's own controls (
52dbdf8) - fix(admin): Add member sits beside the page title (
edc7056) - fix(marks): prune departed members from the device caches (
2d8161b) - fix(items): repeat successors compute in the rule's own time zone (
661fac6) - fix(events): occurrence math runs in the family's timezone (
4f9cad8) - fix(items): shared list entries are visible to takers (
56552df) - fix(web): a deadline time without a date means today (
15a0be2) - fix(web): dedupe optimistic adds against live-refreshed data (
9ae7ca5) - fix(web): server verdicts reach the user instead of connection copy (
42fea8d) - fix(rewards): linked-claim guard and two display gaps (
a3f0d46) - fix(client): send explicit Complete=true in CompleteItem (
fd0ca24) - fix(web): fixed-width day nav pills (
478c63f) - fix(web): day-view header layout (
90f36c9) - fix(web): cap calendar day cells at three rows (
5ea8e80) - fix(web): keep the calendar grid inside the viewport (
708c8d1) - fix(web): sink rootless tree nodes; dash ex-partner arcs (
b7b8ad9) - fix(family): mirror partnerships in derived relations (
4901572) - fix(client): read the auth token at request time, not at New (
353df15) - fix(security): bump Go to 1.25.12 and patch vulnerable deps (
d3e5fef) - fix(user): persist uid on create and preserve identity fields on update (
0e04b81) - fix(auth): grant List RPCs the same roles as service Read (
1f0a1e9) - fix(database): quote reserved-word table identifiers and migrate to pgx (
29cb013) - fix(deploy): drop stray server subcommand arg from Timoni deployment (
53d8010) - fix: bump deps and replace interface{} with any (
afdf836) - fix: resolve golangci-lint errors in server, event, and logging (
8eedeeb) - fix: bind cobra flags to viper and add mapstructure tags to config (
87fe7b1) - fix: remove dep review as it needs a license (
215e34c) - fix(ci): bump the go version and repair the auth test (
96725ce) - fix: resolve golangci-lint errors (
1ebfe91) - fix(ci): align golangci-lint and the go version (
c80c82c) - fix: correct the go.mod module name (
f5b3535)
Other
- ci: derive registry and mail domain from server URL (
883112d) - refactor: purge residual fam- prefixes from icons and dashboards (
3c2cf59) - docs(site): promote webhook events page into the nav bar (
8c683cc) - docs(site): add webhook event trigger reference (
f0ce33e) - docs(site): drop TrueNAS install guide from docs site (
24cf210) - test(integration): per-user export end-to-end (
99ce1af) - docs: TrueNAS install guide and distribution ADR (
50c3961) - ci: attach TrueNAS compose to releases (
c361efb) - test(integration): sub-task lifecycle coverage (
84cd408) - docs: add ADR-0025 sub-tasks (
200f059) - ci: build and release the docs site (
4a50afd) - test(integration): webhook coverage over the wire (
bd33de7) - test(mcp): enable the endpoint before the integration specs speak MCP (
644fba6) - docs(adr): ADR-0024 outbound webhooks (
188d4f1) - i18n(web): extract the accessibility strings (
4ac9f01) - docs(frontend): use the real icon set throughout the plan page (
460a1d0) - docs(frontend): drop the build order from the plan (
caf3bcd) - docs(frontend): make the HTML plan the single canonical doc (
af82e7e) - docs(frontend): icon inventory section in the design plan (
6813f6b) - docs: record sqlite-default storage in the development guide (
a8a884f) - test(integration): hermetic sqlite harness default, postgres opt-in (
f844f5b) - refactor(database): introduce storage dialect seam (
c13f140) - docs(adr): profile switching and quick-switch PINs (ADR-0020) (
9309868) - docs(web): sketch the switch-user profile sheet in the frontend plan (
01c7137) - chore: refresh devbox.lock after a devbox update (
ac8c65c) - test(changes): the live-update hub gets its own specs (
2f43547) - chore(deploy): the last two moving images freeze (
63f2bb1) - docs(agents): the development guide finally enters the repo (
8061df7) - chore: everything states its version (
87eb7a1) - docs(parity): the deliberate gaps get their ledger (
9a96a80) - docs(adr): ADR-0017 writes the sessions story down (
b8a4a6b) - ci(release): republish exorcises the ghost (
76d58af) - ci(release): no seal, no ship — APK job demands signing secrets (
e4eedd6) - ci: an empty nudge to re-fire the workflows (
083b55e) - ci(tag): tag only when every sibling workflow is green (
e24a731) - ci: third-party actions state their address (
c1b867f) - ci: follow the runner's relabel from ubuntu-latest to Linux (
9b229cf) - chore(deploy,ci): the forge changes its name (
e405f33) - docs(agents): the law goes above the lore (
692cbf8) - ci(release): publish only after every artifact lands (
f751116) - ci(release): a half-dressed keystore refuses to sign (
937ad3d) - ci(release): no bell without a clapper — the APK gates the release (
91c9435) - ci(android): the generated clients answer for themselves (
a5404f1) - chore(deploy): a bell tower for testing — ntfy on the cluster (
48d139d) - ci(release): packages walk themselves home (
df169a1) - ci(release): the tag push wears a real token so the release wakes (
0a15719) - ci(gitea): the cache server answers at the LAN door (
68549c5) - ci(gitea): the NAS takes the checks (
2f40cb4) - refactor(roles): the auth shim retires (
435b419) - chore: root directory sheds its pre-kind era (
7696c36) - docs(adr): ADR-0016 accepted; api keys and /mcp reach the README (
af1adf7) - docs(demos): the scroll finds its tempo — quicker wheel ticks (
f98eea6) - docs(demos): add a gliding cursor and stepped scrolling (
dc876eb) - docs(demos): a scripted camera crew (
82706b5) - docs(adr): ADR-0016 proposes the MCP endpoint and admin-managed API keys (
88f44d7) - refactor(web): create/edit forms in sheets with pinned actions (
36ed823) - docs(adr): ADR-0015 item lists and points auto-claim (
d5fbda1) - revert(web): drop sibling arcs from the tree (
fce4c1b) - docs(adr): record the metrics instrumentation decision (ADR-0013) (
a562c3b) - docs: mark A–E shipped in integrity & intake review (closeout layout) (
f0fb12f) - refactor(domain): move the user intake rules onto the domain module (
be055b2) - refactor(services): absorb the create protocol into a svc.Create seam (
57753d7) - refactor(database): hoist the row protocol onto a runner seam (
525c7fc) - docs: add architecture review (integrity & intake proposal) (
711c78f) - docs: mark A–E shipped in edge & provenance review (closeout layout) (
308f59a) - refactor(services): drop dead ctx fields, unify Read error map (
8d2022f) - test(roles): prove the permission matrix covers every RPC (
3d475ca) - refactor(services): answer actor provenance once in svc (
5125265) - refactor(domain): speak verdicts in one shape (
40d6617) - refactor(cli): funnel the command run protocol through a run seam (
2c3357a) - refactor(server): extract handler assembly into internal/server (
552725c) - docs: add architecture review (edge & provenance proposal) (
2baf84a) - docs: reformat domain-behaviour review to match sibling closeout layout (
85922b5) - refactor(auth): centralise RPC authorization behind auth.Allow (
e949cce) - refactor(services): add svc.RequireFields validation seam (
f254041) - refactor(client): funnel unary calls through a generic invoke seam (
4485a68) - docs: add architecture review (domain-behaviour proposal) (
f690852) - docs: mark A–D shipped in architecture review (
b2ea624) - refactor(database): extract generic table constructors (
b4006f4) - refactor(user): propagate found bool from findUserByEmail (
663f485) - refactor(services): collapse List handlers onto svc.List seam (
7576742) - docs: add architecture review report (2026-07-22) (
4978668) - refactor(services): add Mutate/Delete seam for read-modify-write (
99bcd3f) - docs(adr): record JSONB query convention (ADR-0001) (
071d83f) - refactor(database): add query seam (List/Count/FindBy/FindAllBy) (
2f5854b) - refactor(database): add WithinTx transaction seam and sweep handlers (
b30a73a) - docs: add architecture review report (2026-07-21) (
c624790) - ci: run integration tests against a real Postgres service (
cbc4197) - test(integration): add real-Postgres integration test harness (
31b55ad) - build(devbox): add Timoni and Kubernetes tooling (
19a85ac) - chore: add /server to .gitignore (
ac0de89) - chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdoutmetric (
5d71df1) - chore(deps): bump github.com/onsi/gomega from 1.38.2 to 1.39.0 (
4aabd7b) - docs: add comprehensive local development configuration and automation (
5ec8fcb) - test: add comprehensive test coverage for reward service (
6977ebf) - test: add comprehensive test coverage for item service (
1615c46) - test: add comprehensive test coverage for event service (
7bfbcd6) - test: add comprehensive test coverage for untested packages (
9ca4e65) - refactor: move module path to famorgasy.ie (
d21d3d5) - chore(deps): bump golang.org/x/crypto from 0.43.0 to 0.46.0 (
db1f376) - chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace (
1c888ac) - chore(deps): bump golang.org/x/crypto (
f9cf30c) - docs: complete rfc-002 phase 5 testing and documentation (
c38b01b) - chore: add Viper configuration management (
3b6d1e0) - chore(deps): bump golang.org/x/net from 0.46.0 to 0.47.0 (
3dd7d5a) - chore: update go version (
db6e25c) - chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdoutmetric (
9d491b5) - chore(deps): bump connectrpc.com/otelconnect from 0.7.2 to 0.8.0 (
d57a40b) - chore(deps): bump connectrpc.com/connect from 1.18.1 to 1.19.1 (
5460137) - chore: remove unsupported workflows (
23f5461) - chore: enable code scanning (
15e7b89) - ci: add the github workflows (
197a93f) - chore(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.10 (
6351f8b) - chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace (
d58d0fb) - chore: refine rfc-002 and rfc-003 (
f93595e) - docs: add rfcs for authN functionality (
f9e7cf7) - refactor(database): restructure the package (
f93a855) - chore: format code (
b47ead6) - chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdoutlog (
1aade87) - chore(deps): bump golang.org/x/net from 0.40.0 to 0.41.0 (
2421c00) - chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace (
e582ee8) - chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdoutmetric (
3e27d8d) - chore(deps): bump go.opentelemetry.io/otel/sdk/log from 0.12.2 to 0.13.0 (
7b88bae) - chore(deps): bump go.opentelemetry.io/otel/sdk/metric (
76abc16) - chore: expand dagger pipeline (
53075dd) - ci: add dependabot config (
74b8a4d) - chore: add gitignore, license and readme (
5a3bd08)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- feat(docs): mount the app's real header widgets on /docs (