Repository navigation
Releases: thewoldaa/mise-kal
Release list
Mise-Kal 0.1.1
Documentation site with an interactive demo, and a fix for a crash class that
appeared in 22 places across the application.
Fixed
setState in a catch block with no mounted guard, in 22 places.
Every one of these awaits a network call and then writes state on failure. If
the widget is disposed while the request is in flight — the cashier closes the
payment sheet, the manager navigates away — the setState throws, turning a
recoverable failure into a crash at the till.
The success path in each already had if (!mounted) return;. The catch path did
not, which is why it went unnoticed: the happy path gets exercised by hand and
the failure path does not.
Found in payment_sheet, shift_sheet (both open and close), ticket_panel,
discount_dialog, move_table_dialog, split_bill_dialog, tables_page,
categories_page, item_dialog, modifiers_page, staff_page, and
printers_section.
The regression test does two things: proves the failure is real on a minimal
reproduction, and scans the source for the pattern so a 23rd occurrence fails
the suite instead of shipping. A widget test cannot reach every screen, but a
source scan can.
Added
Documentation site — https://thewoldaa.github.io/mise-kal/
A landing page, an interactive demo, and a hub for every document.
docs/build_site.py generates the pages from the markdown sources rather than
hand-maintaining a second copy, and rewrites links so one source serves both
GitHub and the site.
Interactive demo — https://thewoldaa.github.io/mise-kal/demo/
Reimplements the product's logic in the browser so the four rules can be watched
rather than taken on faith:
- a forged total is recomputed server-side and discarded, with both numbers
logged so the recomputation is visible - firing to the kitchen and settling a bill are refused while the network is
down, because a total only the server computes cannot honestly be guessed at - adding to a bill is queued and drains in order when the connection returns
- a kitchen ticket ages on its border and timer while status stays on the dots,
so a late ticket full of cooking items still reads correctly
Its money arithmetic mirrors server/pb_hooks/lib_money.js including the order
of operations (discount, then service, then tax) and the tax-inclusive branch. A
demo that rounded differently from the server would quietly prove the wrong
thing.
Documentation
docs/testing.md— the seven suites, and why the harness patches upstream's
tests at run time rather than editing themdocs/install-windows.md— building on Windows, and the Developer Mode
prerequisite Flutter's own error message does not name
Changed
The repository is now a proper GitHub fork of
devShakib015/mise. It was standalone,
which is legal under MIT and kept the copyright notice, but it lost the visible
"forked from" link and the fork network graph — someone glancing at the page
could not tell where the work came from.
History already descended from upstream c56d1c3, so the change was a
fast-forward with no rewrite. All commits are intact and attributed.
The site's grid is Ember-tinted and its panels are glass. The grid is held at
5.5% and 9.5% opacity on purpose: a grid behind body text competes with it, and
the threshold where the eye stops reading the lines as structure is around 6% on
this background.
Verification
177 tests: 101 backend checks across six suites, 76 Dart tests. All passing on
Windows.
Notes
Mise-Kal is a fork of Mise by K M
Shahriar Hossain. The MIT license is retained unchanged and the upstream
copyright notice is preserved in LICENSE.
Mise-Kal 0.1.0
The first Mise-Kal release. Everything here is infrastructure and correctness —
no product features were added, because stabilising the existing system and
making it testable comes before building on top of it.
Added
Multi-agent worktree harness (.harness/)
An isolated git worktree, branch, reserved port block, and scratch directory per
agent, so several can work in parallel without touching each other's files.
Waves integrate in a controlled step: a trial merge detects conflicts before
anything lands on main, each branch merges as its own attributable commit, the
full suite runs on the merged result, and each branch is verified to be an
ancestor of main afterwards.
Indonesian localization infrastructure
Flutter gen-l10n with Indonesian as the template locale, English as the
fallback, 204 keys, and the connect and sign-in screens translated. The
generated Dart is committed so tests and CI need no codegen step.
Windows build script
installer/windows/build_windows.sh produces a runnable Windows build with
PocketBase staged in. It checks for Developer Mode first and explains the fix,
because Flutter's own failure for that prerequisite does not name it.
Documentation
CONTRIBUTING.md, SECURITY.md, AGENTS.md, docs/architecture.md,
.env.example, and task definitions covering the first three phases.
Fixed
-
The connection monitor could write to a disposed provider. The health poll
runs every ten seconds and takes up to four to answer, so the provider can be
disposed while a request is in flight — the app closing, or a tablet signing
out. Writingstateafter that threwCannot use the Ref of NotifierProvider after it has been disposed. Three paths needed guarding, not one. -
Shell scripts were checked out with CRLF on Windows. Git's default
core.autocrlf=truerewrites every.shfile, and bash then reads
set -euo pipefail\r, fails to find a command namedpipefail\r, and dies
before the first line. -
The vendored Inter font license was being reformatted by a
.gitattributesrule that normalised a third-party legal notice.
Changed
Test suites now run on Windows. Three things in upstream's suites break under
concurrency, all confirmed by reading them: hardcoded ports 8091–8098, shared
literal /tmp scratch files (Git Bash does not honour TMPDIR for a literal
/tmp path), and pkill -f cleanup that matches command lines as strings and
therefore kills a sibling agent's server mid-suite. The harness patches a copy
at run time and leaves the originals untouched, so upstream stays mergeable.
Verification
- 101 backend checks across six suites
- 74 Dart tests, including 11 new tests for the offline queue's
flush(), which
had none despite being the feature the product leans on - All passing on Windows
Notes
Mise-Kal is a derivative of Mise,
forked at upstream commit c56d1c3. The MIT license is retained unchanged and
the upstream copyright notice is preserved in LICENSE.
This is pre-1.0. The roadmap continues with the Windows installer, the rest of
the Indonesian translation, and then the payment layer.