Skip to content

Releases: Aplanatic/iserv-api

v1.9.0

Choose a tag to compare

@devinoldenburg devinoldenburg released this 22 Jul 09:26

1.9.0 - 2026-07-22

  • Session auto-refresh: Automatically re-authenticate when session cookies expire or IServ redirects to the login page (HTTP 401 / login redirect detection in HttpClient).
  • Matrix token auto-refresh: AuthService.refreshSession() re-obtains Matrix access tokens transparently.
  • Keychain auto-sync: IServAPI.onSessionRefreshed callback notifies AuthBroker to persist refreshed sessions back to the OS native keychain.
  • IServSession.hasPassword() helper.
  • HttpClient.setOnAuthError() for pluggable auth-failure interception.
  • IServAPI.refreshSession() and improved validateSession() / ensureMessengerSession(forceRefresh).

v1.8.14

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 13:57

Fixes

  • Messenger last-message never renders as `[object Object]`
  • Broader room-row detection (`lastMessage` + room id)

v1.8.13

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 13:52

Fixes

  • Messenger rooms/sync no longer show `[object Object]` for last message
  • Hardened Matrix body extraction when `content.body` is non-string

v1.8.12

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 13:41

CLI/API gaps for 0.6.12

  • Expand ~ and allow absolute attachment paths (still reject .. / NUL)
  • FilesService.listWebDav for directory listing
  • AuthBroker.login({ ephemeral }) omits password from keychain
  • logoutAll() for bulk logout
  • Clearer --browser error: uses system Chrome/Edge (no Playwright download)
  • UA product token Aplanatic-IServ/1.8.12

v1.8.11

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 13:31

Summary

  • Exclusive lockfile around profiles.json writes
  • Backup to profiles.json.bak before profile remove
  • Mail idempotencyKey → Message-ID / X-Idempotency-Key
  • Explorer --port / host (loopback by default)
  • Mail list warning when paging ~200-message server pages

v1.8.10

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 13:21

Summary

  • Default HTTP timeout 30s (ISERV_TIMEOUT_MS / client options)
  • Retry 429/502/503 with clear rate-limit errors
  • Max response size 15 MiB
  • User-Agent product token Aplanatic-IServ/1.8.10
  • Redact local filesystem paths in redactText
  • Mail send supports multiple to/cc/bcc addresses

v1.8.9

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 13:12

Summary

  • Reject path-like / invalid hostnames (../../../etc, .., bare labels like etc)
  • Public hosts must look like a DNS name with a TLD

v1.8.8

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 13:04

Summary

  • Messenger: extract readable bodies (body / formatted_body / m.new_content); encrypted → [encrypted]
  • Mail: present plain+rich content (object or array); list paging warnings
  • Account: camelCase groups/roles/rights (+ deprecated PascalCase aliases)
  • Catalog: exercise.past/iserv/exercise/past
  • News: prefer og:title when scraping article titles

v1.8.7

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 12:42

Features

  • timetable.today / getToday() for a single-day period list
  • Inbox list pages past IServ’s ~200-item page cap up to --limit 1000

Fixes

  • News show title/body extraction
  • Account logins deduplicated
  • Prefer the largest matching table for exercises/module lists
  • Typecheck/exactOptionalPropertyTypes clean for CI

v1.8.5

Choose a tag to compare

@devinoldenburg devinoldenburg released this 20 Jul 12:27

Fixes

  • Redaction no longer truncates list payloads at 200 (mail --limit 1000 works)
  • Timetable visibility.note + substitutionsUrl when teachers/changes are hidden by account role
  • requestedStart when --start snaps to ISO week Monday
  • Cleaner group names from groupview