Repository navigation
Releases
ClassSync v0.3.27
ClassSync v0.3.27
- Windows Settings → Automation now offers independent Launch with Windows and Start minimized switches, also available during setup.
- Choose a visible window or a quiet system tray launch at Windows sign-in. Shortcuts and tray actions open the window; background sync continues while hidden.
- Existing installations retain their startup choice and hidden-at-login behavior. Preferences remain local to each PC.
- Prevent the window flashing during hidden startup and keep duplicate login launches from raising an existing window.
- Restore the original window and taskbar entry reliably when opening a shortcut after a tray-only launch.
- Refresh relay development dependencies to patched versions required by the release security checks.
- Pin Java 17 for Android release CI to avoid incompatible runner defaults. v0.3.26 was not published.
Windows artifacts are unsigned because a publisher certificate is not configured. Android uses the existing release signing identity.
ClassSync v0.3.25
ClassSync v0.3.25
What's changed since v0.3.24
- New accounts can leave ISEP Portal and Moodle disabled during setup. Enable or disable both later under Settings → Connections.
- When disabled, ClassSync stops ISEP imports and hides imported Academic sections, cached imported records, search hits, and next-class widget data. Local tasks and manual evaluations remain available.
- Existing accounts keep ISEP imports enabled after upgrading. The preference follows encrypted account recovery and device sync. Stored credentials and cached records remain available if the sources are enabled again.
- Updated the relay development toolchain's transitive
undicidependency to a patched version. The Worker runtime is unchanged.
Upgrade notes
-
Flutter version:
0.3.25+33. -
Local database schema 8 adds the academic-source preference with an enabled default for existing installations. No relay migration is required.
-
Android updates require the same signing certificate as existing installations.
-
The Windows installer is unsigned because no Windows code-signing certificate is configured. Windows may show an Unknown publisher prompt.
ClassSync v0.3.24
ClassSync v0.3.24
What's changed since v0.3.23
- Verified app updates: Windows and Android can check the latest public GitHub release, verify the downloaded installer or APK against the release SHA-256 checksums, and start the platform installer. Update checks run at launch and on demand in Settings → App updates & widget.
- Next-class Android widget: A home-screen widget shows the upcoming class and opens ClassSync. The Overview screen also refreshes its next-class display from the same schedule data.
- Public contribution checks: CI and security scans now run for public pull requests and
main; release tags retain update and deletion protection. Repository ownership is recorded in.github/CODEOWNERSso required code-owner review can protect merges.
Upgrade notes
- Flutter version:
0.3.24+32. - No local database or relay migration is required.
- Android updates require the same signing certificate as existing installations.
ClassSync v0.3.23
What's changed
- Next class at a glance — Overview prioritizes a class starting within the
next four days, including time, room, subject, lesson type, and teacher. - Faster timetable reading — desktop and mobile now open on the structured
time-by-weekday table, while agenda remains available on demand. - More resilient Portal imports — attendance preserves Portuguese accents,
and exam registration accepts the live titled-grid layout plus the official
no-active-period response without mistaking navigation for data. - Recoverable background jobs — Android persists discovered transcript jobs
to encrypted account sync before expensive processing, keeping history and
recovery visible across devices after process interruption. - More stable Gemini output — structured generation uses bounded thinking,
handles finish reasons and token exhaustion explicitly, and retries one
malformed response before entering durable backoff.
Release notes
- No local database or relay migration is required for this release.
- Relay code is unchanged from v0.3.22.
- Built and validated locally without GitHub Actions.
ClassSync v0.3.22
What's changed
- Reliable task state across devices — completing, reopening, dismissing,
or restoring a task now triggers an immediate best-effort account sync. - Last task action wins — task status has its own mutation timestamp, so a
newer summary refresh can no longer overwrite an explicit action made on
another device. - Concurrent-device safety — encrypted snapshot revision conflicts are
re-read and retried before falling back to the normal later sync. - Clearer task priority — pending tasks appear before completed and
dismissed history, while deadlines continue to order tasks within each
state.
Release notes
- Existing tasks remain compatible; their first explicit status action adds
the new synchronization timestamp automatically. - No local database or relay migration is required for this release.
- Built and validated locally without GitHub Actions.
ClassSync v0.3.21
What's changed
- Absences — Academic now shows the Portal attendance record by subject and,
when the official data can be matched reliably, the percentage against every
planned class through the end of the teaching period, plus the remaining
TP + PL allowance under the one-third rule. - School calendar — official teaching periods, breaks, and exam windows are
available from Academic's compact More menu as an upcoming-first timeline. - Clearer Tasks and Evaluations — task deadlines remain under Tasks;
Evaluations are reserved for graded tests, exams, presentations, and projects.
Tasks now synchronize across every device paired to the same account. - Clearer Grades & progress — assessment weights can be added explicitly,
their purpose is explained in context, and official history stays distinct
from current grade planning. - Quieter, safer imports — unavailable optional Portal/Moodle sources no
longer dominate the screen, and repeated Portal navigation text is rejected
instead of being displayed as exam registration data. - More reliable Notion publishing — transient first-append failures on a
newly created page retry inline using the existing idempotent content marker. - Reliable Android wake-ups — transcript-ready pushes now create expedited,
per-event background work; background automation retains its FCM token even
when visible alerts are disabled, initializes all headless dependencies, and
includes the current WorkManager Android 16 handshake fix.
Release notes
- Portal and Moodle data remain read-only and locally cached.
- No local database or relay migration is required for this release.
- Built and validated locally without GitHub Actions.
ClassSync v0.3.20
ClassSync 0.3.20
Fixes
- Android Fireflies pushes now wake the background sync pipeline automatically instead of waiting for the user to open or tap the app.
- Cross-device or retry reconciliation is presented as a completed canonical summary instead of a user-facing duplicate failure.
- Completed Sync entries stay manageable: opening the row shows the job controls, while an explicit Library action opens the canonical summary.
- The Sync three-dot menu can change the class for completed summaries and can discard a transcript without deleting its published Notion summary.
- Changing a class refreshes the subject metadata of derived lecture tasks; discarding the transcript removes those derived tasks.
- A corrected class is now authoritative when a summary is regenerated, so conflicting class labels from the transcript or meeting metadata are not carried into the replacement summary. Re-selecting the current class from
Change classexplicitly regenerates an existing summary with that class locked in. - The in-app Library now preserves much more of the Notion presentation: rich inline emphasis and links, callout icons/backgrounds, code language, equations, quotes, to-do state, and text/background colors.
- Newly generated Notion summaries are visible immediately instead of being hidden inside collapsed
ClassSync generatedtoggles. - Legacy ClassSync toggle wrappers are migrated to visible content when the summary is opened or re-published by this version.
Version
- Flutter version:
0.3.20+28
ClassSync v0.3.19
What’s changed
- Per-transcript summary language — keep the normal ClassSync default unchanged and choose a different language for an individual transcript. Existing summaries can be regenerated in the selected language and update the same published Library entry.
- Discard invalid transcripts — bad or irrelevant recordings can now be discarded from Sync before publishing. ClassSync keeps an ignored local tombstone so the same Fireflies transcript is not queued again when the recovery window sees it later.
- Library-first navigation — completed items in Sync and recent summaries on a class page now open inside the ClassSync Library first. The underlying Notion page remains available from the Library when needed.
Release notes
- Default summary language is unchanged.
- No database schema migration is required for this release.
- Discarding is only available before a summary has been published; published notes remain available through Library.
ClassSync v0.3.18
Full Changelog: v0.3.17...v0.3.18
ClassSync v0.3.17
ClassSync v0.3.17
- Support hosted relay registration policies, including open, invite, and
token-based account registration. - Harden Fireflies GraphQL connection validation and surface provider errors.
- Improve setup, Settings, and synced-job screens for relay registration and
remote Notion summary status. - Add D1 migration
0008_registration_invites.sqland relay coverage for
registration-policy discovery. - Correct the credential-tile regression test after Moodle and ISEP became one
combined integration tile.
Validated locally with frozen dependency installation, relay checks, Flutter
formatting/analyzer/tests with coverage, Windows and signed Android APK/AAB
release builds, signing-certificate verification, and Inno Setup packaging.
No GitHub Actions build is used.