Skip to content

Releases: micha16372/everyday-runtime

v0.4.1 — New look

Choose a tag to compare

@micha16372 micha16372 released this 26 Sep 20:38
7bd6724

Changed

  • New look: colour tokens from Radix Colors (MIT), Tabler icons (MIT), ring gauges
    for "how likely needed" (estimates marked with ~ and a dashed track), product
    avatars by category, bottom navigation on phones, deal cards with the usual price
    struck through, and tappable assistant suggestions built from your own products.
  • Punchier copy in English and German: shorter, active, benefit-first. Tabs are
    now Now, List, Pantry and History. Estimates are still clearly marked as guesses.

Fixed

  • Taps on icons now reach their buttons (SVG pointer-events).

Docs

  • docs/MARKET.md: competitor analysis with a feature matrix and ranked parity gaps
    (#43–#49).

Everyday Runtime v0.4.0 — Talk to your list

Choose a tag to compare

@micha16372 micha16372 released this 26 Sep 20:03
dbdff9e

Talk to your shopping list — in German or English, for free — and let any AI assistant or automation use it.

„Hab 2 Milch für 1,98 gekauft beim Discounter“ → Notiert: 2 l Milch gekauft für 1,98 € bei Discounter.

Added

  • Talk to your list: a free, offline German/English sentence parser on Now —
    “Milch ist leer”, “2 Kaffee auf die Liste”, “Hab 2 Milch für 1,98 gekauft beim
    Discounter”, “Was brauchen wir?”, “Ist Kaffee gerade günstig?”. Answers come from
    the engine, in the language you use; voice via the phone keyboard microphone.
  • AI tools for Twenty's AI chat / MCP: everyday-needs, everyday-product,
    everyday-update and the everyday-shopping skill. The model talks, the engine
    decides — small models and few tokens are enough.
  • docs/AI.md (English and German): the AI tiers and why they stay cheap.
  • MCP: the tools appear in Twenty's own MCP server (/mcp) as
    app_everyday_needs, app_everyday_product, app_everyday_update, so any MCP
    client (Claude, ChatGPT connectors, Cursor …) can read and update the list.
  • POST /s/talk: one sentence in, answer out — for phone shortcuts, Home
    Assistant, n8n, chat bots and NFC tags.
  • Twenty workflow actions “Everyday: what do we need?” and “Everyday: record what
    happened” (e.g. a weekly list by email).
  • docs/INTEGRATIONS.md (English and German) with ready-to-use examples.

Tests

177 unit tests (including 40 real phrasings), 8 integration tests that call the AI tools and POST /s/talk against a real Twenty server, CodeQL and dependency review. The tools were also executed through Twenty's MCP server (tools/list → execute_tool).

Upgrading

git pull && yarn install && yarn twenty apply. No data model change. To use the AI chat, configure an AI provider in your Twenty workspace; the talk box works without one.

Docs: AI.md · INTEGRATIONS.md · ROADMAP.md

Everyday Runtime v0.3.0 — German, active questions, price radar

Choose a tag to compare

@micha16372 micha16372 released this 26 Sep 19:39
d4e8625

Everyday Runtime now speaks German, asks before it guesses, and knows what things usually cost.

Kaffee — 4,99 € statt sonst ~6,79 € · Guter Preis: 4 Pck. kaufen — reicht etwa 48 Tage, spart etwa 7,20 €.

Added

  • German user interface (#11): all screens, explanations, prices and questions
    in German or English; follows the Twenty user language, with a DE/EN switch. The
    demo household is German when the app is.
  • Active questions (#28): “Still enough coffee?” — the app asks where one answer
    helps most (at most three, never nagging).
  • Price radar (#29): price history per product, usual price and recent low,
    great/good/usual/expensive judgement while typing a price, price alerts,
    stock-up recommendation with estimated saving, “Good prices for you” on Now.
  • Open Food Facts / Open Prices (#30): product data and community prices by
    barcode, on request, via GET /s/community-prices; importable as price
    observations.
  • New PriceObservation object; products get shelf life and a price alert.
  • Vision (English and German), re-planned roadmap with milestones.

Changed

  • The domain returns translatable messages next to the English texts; the English
    output and GET /s/needs are unchanged.
  • Privacy documentation describes the one optional outside call (barcode to Open
    Food Facts).

Tests

128 unit tests (engine, questions, prices, deals, Open Food Facts parsers, German rendering, a check that every UI text is translated), 3 integration tests against a real Twenty instance, CodeQL and dependency review in CI; browser run-through in English (desktop, 390 px touch, dark) and German.

Upgrading from 0.2.0

git pull && yarn install && yarn twenty apply. The new PriceObservation object and product fields are added automatically; existing data is untouched.

Privacy note

The only outside call is optional: “Community prices” sends a product's barcode to Open Food Facts / Open Prices when you press it. See PRIVACY.md.

Where this is heading: VISION.md · Deutsch · ROADMAP.md · Try it: DEMO.md

Everyday Runtime v0.2.0 — Quantities and corrections

Choose a tag to compare

@micha16372 micha16372 released this 26 Sep 17:30
6d23523

Everyday Runtime estimates what a household probably needs — with a confidence and a reason — instead of pretending to track exact stock. This release makes the estimates respond to how much you buy and to your corrections.

Milk — Bought today · 3 l usually lasts ~7 days

Added

  • Quantity-aware estimates (#2): purchase quantities give a typical use per
    day; a bulk purchase lasts longer, a small one runs out sooner. Reported
    consumption with a quantity moves the expected run-out by the share used.
  • Learning from corrections (#3): earlier “Empty” and late “Still have it”
    reports adjust how long a product is expected to last (bounded to 0.5–2×, a
    single report counts half), explained in “Why?”.
  • Product details show “Lasts about”, the typical use per day and a “Learned from
    your corrections” hint.
  • DEMO.md: a three-minute walkthrough of the workflow, with updated screenshots.
  • Governance: CODE_OF_CONDUCT (Contributor Covenant 2.1), SUPPORT, MAINTAINERS.
  • Dependabot configuration (grouped monthly updates) and a dependency review
    check on pull requests; CodeQL default setup enabled for the repository.

Fixed

  • Switching tabs kept the scroll position; on phones the Products tab opened
    below its search field. Each tab now starts at the top.
  • “Use per day” is rounded coarsely (e.g. ~0.4 l instead of ~0.41 l).
  • Accessibility (axe): no tabpanel role on <main>, no heading-level jump in
    product details.

Changed

  • Tooling: oxlint 1.85, GitHub Actions checkout/setup-node v7 and
    dependency-review-action v5 (Dependabot); the test configs use Vite's built-in
    resolve.tsconfigPaths instead of the vite-tsconfig-paths plugin.
  • CONTRIBUTING describes branches, the pull request workflow, commit expectations
    and scope.
  • The npm publish workflow runs on demand only (it no longer starts on version
    tags) and enables Corepack.
  • Actions from twentyhq/twenty are pinned to a commit SHA instead of main.

Tests

  • 89 unit tests (41 for the inference engine), lint and typecheck; 3 integration tests against a disposable Twenty instance in CI; CodeQL and dependency review.
  • Manual browser run-through on desktop, 390 px phone (touch) and dark mode: 33/33 workflow steps, no console errors, no HTTP 5xx, no axe violations in the app region.

Upgrading from 0.1.0

No data model change: git pull && yarn install && yarn twenty apply. Existing observations are used as they are; estimates for products bought with varying quantities or with earlier “Empty” reports may change — the “Why?” panel explains how.

Known limitations

Unchanged from 0.1.0: whole history is loaded into the browser (#6), English UI only (#11), one household per workspace (#4), Twenty's aria-disabled widget container (#12).

Try it in three minutes: DEMO.md · ROADMAP.md · CONTRIBUTING.md

Everyday Runtime v0.1.0 — Explainable Smart Shopping

Choose a tag to compare

@micha16372 micha16372 released this 26 Sep 16:22
7dd361f

First public release of Everyday Runtime — a self-hosted shopping assistant, built as a Twenty app, that estimates what a household probably needs from partial information. It does not try to track exact stock; it gives a probability, a confidence and a reason.

Milk — Probably low · 89%
Last purchased 6 days ago · usual interval ~5 days

What's in 0.1.0

Explainable inference — a deterministic engine in plain TypeScript (src/domain), no AI service or API key needed. Per product it returns a state (confirmed / likely / possible / unknown), a confidence, a need score and a one-line reason. It handles direct reports (empty, needed, bought, still there), purchase rhythms (median of recent intervals), consumption, conflicting reports and stale evidence. Every suggestion has a “Why?” with the full explanation. Direct reports are labelled Confirmed, inferences Estimate.

Now — what is probably needed, with percentage, a plain headline and the reason.

Shopping list — quick add (2 milk, coffee x3), items added by a person vs. suggested ones (with the confidence at the time), mark bought with quantity and optional price and store, “Not now” for suggestions.

Products — per-product details (last bought, usual interval, confidence, recent evidence) with It’s empty, Still have it, Bought, Add to list, Archive.

Activity — every observation grouped by day: exactly the evidence the engine uses.

Demo household — five products that show each rule within a minute.

GET /s/needs — authenticated JSON endpoint with the same results, as groundwork for integrations.

Self-hosted and private

All data stays in your own Twenty workspace. The app has no backend of its own, no telemetry and makes no third-party calls. See docs/PRIVACY.md.

Twenty integration

Four custom objects, one full-page front component, one logic function route. Tested against Twenty 2.42 (twenty-sdk 2.42.0). Installation: see the Quick start.

Tests

  • 75 unit tests (28 for the inference engine), lint and typecheck in CI
  • 3 integration tests running the main workflow against a disposable Twenty instance in CI
  • manual browser run-through on desktop, 390 px phone width and dark mode

Known limitations

  • The whole history (up to 2,000 observations / 1,000 list items) is loaded into the browser.
  • Purchase quantities are stored but not yet used for estimates.
  • One household per workspace; no per-person attribution in the UI.
  • English UI only.
  • Twenty renders the app inside a container marked aria-disabled="true"; some screen readers may announce it as disabled.
  • GET /s/needs without a token returns HTTP 500 from the Twenty server instead of 401.

Next

ROADMAP.md · Contributions and real-world feedback welcome: CONTRIBUTING.md. If a suggestion felt wrong, please use the “Suggestion felt wrong” issue template.

Full changelog: CHANGELOG.md