Skip to content

feat: improve app runtime reliability and ecg exports - #59

Merged
Pluze merged 12 commits into
mainfrom
develop
Aug 7, 2026
Merged

feat: improve app runtime reliability and ecg exports#59
Pluze merged 12 commits into
mainfrom
develop

Conversation

@Pluze

@Pluze Pluze commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Why

Improve App runtime reliability, native control consistency, diagnostic recovery, and ECG data handoff while keeping user documentation focused on supported tasks.

What changed

  • Added ECG Print export of the most recent analyzed region as a MATLAB timetable to the base workspace or a MAT file, including raw and filtered samples, peak markers, units, timing, and provenance.
  • Made bound controls and App callbacks share one validated transaction with consistent rollback, diagnostics, and declared behavior ownership.
  • Added automatic compact diagnostic bundles after errored sessions close and a separate informational dialog capability for successful outcomes.
  • Standardized native action height, adaptive readonly text, and between-section dividers without changing App-owned layouts or scientific behavior.
  • Prevented Launcher repair or version replacement while a LabKit App remains open.
  • Removed obsolete test and documentation detail, rewrote App manuals around reader tasks, and retired the obsolete T-Test design page together with its stale published-history link.
  • Made metadata-preserving history-link maintenance an explicit documented and tested policy, while continuing to reject deletion of published history records.
  • Simplified hosted validation to two modes: full PR/manual-recovery validation and a lightweight protected-main record; every accepted main commit now republishes documentation.
  • Consolidated the squash-oriented versions to labkit.app 2.3.0, ECG Print 1.7.0, and Launcher 1.8.4; the ECG history date and Change ID now match the component's final Updated date.

Scientific formulas, units, defaults, source data, and existing result formats are unchanged apart from the additive ECG timetable export.

Evidence

python3 .agents/skills/labkit-pr-preparer/scripts/audit_pr.py --base origin/main --head develop
PASS: direct component transitions and consolidated history

python3 .github/scripts/check_integration_policy.py --event-name pull_request --base-ref main --head-ref develop --head-repository Pluze/LabKit-MATLAB-Workbench --repository Pluze/LabKit-MATLAB-Workbench --base-sha origin/main --head-sha develop
PASS: integration policy

maintainLabKitDocLinks(repoRoot)
PASS: 259 Markdown files, 0 repair candidates, 0 unresolved links

buildtool docsCheck
PASS: 235 narrative pages, 148 API pages, 388 generated files compared byte-for-byte

buildtool changedFast
PASS: 107 product-change evidence identities before final metadata consolidation; 64 policy and validation-framework identities on the final commit

python -m unittest discover -s .github/scripts -p 'test_*.py'
PASS: 19 workflow-policy tests

validate_agent_skills.py
PASS: 7 repository skill contracts

Data-hygiene diff scan
PASS: no local paths, private-App details, subject/patient/participant identifiers, or device identifiers found

Automated hidden-GUI evidence covers declared construction and callback wiring. Native pointer feel, display-scale typography, subjective visual quality, real-data suitability, and scientific interpretation remain manual boundaries. Developer-led interactive validation must be confirmed before the Release workflow is dispatched.

Risks and follow-up

  • Diagnostic bundles can contain sensitive paths, values, and exception details and must be reviewed before sharing.
  • A process termination that bypasses Runtime close cannot create the automatic close-time bundle.
  • Existing custom App definitions with an editable surface that has no binding or callback now fail closed and must declare an owner or make the surface read-only.
  • Manual CI recovery requires GitHub Actions to be operational enough to accept a new dispatch; it cannot repair a service-wide outage in progress.
  • Release publication remains separate: after merge, the exact main-push CI run must pass, the Release workflow creates the tag and draft Release, and a developer must inspect the notes and launcher asset before publication.

Author confirmation

  • The final diff matches the stated scope and contains no unrelated change.
  • The evidence above covers required local and manual validation; every remaining unverified boundary is explicit.
  • The diff contains only synthetic or generic public data, with no private App details, lab identifiers, local paths, or recognizable sample values.

@Pluze
Pluze merged commit 5b5fdf5 into main Aug 7, 2026
10 checks passed
@Pluze
Pluze deleted the develop branch August 7, 2026 01:42
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