Skip to content

docs(rules): QML int-width, binding-freshness, boundary-value gotchas#85

Merged
jakewan merged 1 commit into
mainfrom
feature/qt-int-width-binding-freshness-boundary-testing
Jun 23, 2026
Merged

docs(rules): QML int-width, binding-freshness, boundary-value gotchas#85
jakewan merged 1 commit into
mainfrom
feature/qt-int-width-binding-freshness-boundary-testing

Conversation

@jakewan

@jakewan jakewan commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Overview

The transaction-recording-form work surfaced three durable lessons worth encoding in the repo's own rule set so the next agent doesn't re-discover them rather than relying on one session's memory:

  • A QML int is 32-bit, so a cents value — carried as int64 end to end through the daemon and proto — silently truncates above ~$214k. qt-app.md now documents typing any cents-bearing or int64-crossing property as var, not int.
  • A derived property read inside the onXChanged handler of the property it depends on can return a stale, pre-change value. qt-app.md now records reading the changed source property directly in the handler.
  • The overflow slipped every reading pass because example-based specs only probe representative magnitudes. testing.md gains a boundary-value convention — the orthogonal modality that catches that class — framed around type/representation/seam crossings so it complements the existing input-validation guidance rather than duplicating it.

The two qt-app.md sections are path-conditioned to app/**, so they cost nothing off-app; the testing.md section is cross-cutting (core/daemon/app seams) and always-loaded.

Issue references

Related to #38.

…dary-value testing

The transaction-recording-form work surfaced three durable lessons worth
encoding so the next agent does not re-discover them:

- A QML int is 32-bit, so a cents value (carried as int64 end to end)
  silently truncates past ~$214k. Document typing cents-bearing properties
  as var, not int.
- A derived property read inside its dependency's onXChanged handler can
  return a stale pre-change value; read the changed source property directly.
- The overflow slipped every reading pass because example-based specs only
  probe representative magnitudes. Add a boundary-value testing convention as
  the orthogonal modality that catches that class.

The two qt-app.md sections are path-conditioned to app/**; the testing.md
section is cross-cutting (core/daemon/app seams) and always-loaded.
@jakewan jakewan marked this pull request as ready for review June 23, 2026 05:48
@jakewan jakewan merged commit cba3854 into main Jun 23, 2026
3 checks passed
@jakewan jakewan deleted the feature/qt-int-width-binding-freshness-boundary-testing branch June 23, 2026 05:48
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