Repository navigation
Releases
Releases · HPTarkk/Tark
Tarkk 1.2.3
Tarkk 1.2.2
Changes since v1.2.1:
- Fix crackling Shared Music: give libopus per-channel frame sizes (#346)
versionCode 38.
Tarkk 1.2.1
Tarkk 1.2.0
Changes since v1.1.3:
- Enable member reporting by default
- Report story: keep the speech bubble and its tail in step with the speaker (#342)
- Report story: bring the cartoon riders back, avatars as helmet stickers (#341)
- Report flow: cast riders as their avatars, coach the tap once (#340)
- chore(deps): bump the go-minor-and-patch group (#338)
- report: animated per-member report and local mute, behind TARK_MEMBER_REPORT (#339)
- backend: bump Go toolchain to 1.27.3 (GO-2026-6809) (#336)
- admin: empty-state halo floats with its tile and stays centred on it (#335)
- admin: Settings chips lift without clipping and glide to their section (#334)
- test: make the guest web release fixture run on Linux CI
- admin: write every number in Persian digits on Persian pages
- Admin: a Settings page for theme, language, password and sign-ins
- admin: show event logs in words instead of codes and JSON
- admin: admins list goes full width, adding an admin moves to a drawer
- admin: empty state for the System page's route table
- admin: animated empty states for every empty list
- Redesign the admin System page
- Admin pricing: keep input labels on one line
- Rework the account page's actions into one ordered list
- admin: cache static files so the menu stops jumping on every click
- Log where a frozen run was stuck after an ANR
- chore(bazaar): refresh screenshots and capture metadata
- Swap the hotspot host after the room falls off a hotspot
- chore(website): release site/app sync as 1.0.5
- fix(website): match the site to the current app
- Break hotspot vote ties by Android version and install age
- Keep the hotspot move reachable for a phone still on the router
- Simplify home, settings and the room menu
- Keep the hotspot host reachable and the election in agreement
- Keep both phones in step through a move off the router
- Keep both phones agreeing they are on the hotspot; join by hand after repeated failures
- Keep the phones on one hotspot and agree on it; give the move its own scene
- Turn every connection state into the next and redesign the plain screens
- feat(room): designed failure scene, close button and notification "Close room"
- fix(room): keep both phones agreeing on who hosts and let a new start run
- feat(room): offer Bluetooth instead of staying on the house Wi-Fi
- fix(room): let the move off home Wi-Fi elect a host before the call opens
- feat(room): connect a Room's two phones over Bluetooth in its own scene
- test: drop an unused import
- feat(permission): dress the primer in the website's forest greens
- feat(settings): drop the riding-mode and Wi-Fi/hotspot rows
- feat(room): one continuous move to a hotspot, and back again if it drops
- fix(room): a failed join says what actually went wrong
- feat(room): the host sees the joiner arriving; invite retry and swap wired
- feat(room): failure recovery on join and a role-switch turn on reconnect
- feat(room): invite sheet fails out of the beacon and retries in place
- feat(core): per-link established and failed choreography in the journey
- fix(transfer): give the hotspot host attempt 35 s instead of 15 s
- fix(motion): back always moves like back, hand-overs stop crossing, RTL nudges mirror
- feat(room): deleted rooms pull the list up like a chain; the empty state rises out of the dust
- fix(room): the joiner's connecting scene no longer cuts away mid-link
- fix(room): Connect works right after closing an invite
- feat(permission): an in-app primer before every runtime permission
- update flutter
- feat(room): move off the home router onto a phone's hotspot before the channel opens
- fix(qr): every Tarkk code carries the centre mark again, proven scannable
- feat(room): the beacon resolves into the code on the invite and reconnect screens
- feat(connection): the journey carries through the channel entry and reconnect scan
- feat(onboarding): redesign as a three-movement journey into a room
- style: dart format the link preparing visual and step row test
- feat(room): deleted Rooms turn to dust and the list closes the gap
- feat(connection): one continuous scene from scan to channel
- feat(room): one-tap "let them invite people" on the invite code
- feat(room): signed, delegable invite rights for room members
- feat(l10n): typed digits follow the app language in every text field
- fix(ui): put step bullet, icon and first text line on one centre line
- feat(beta): introduce a Beta feature classification and move Guest under it
- fix(connection): keep both phones in step from scan to channel
- feat(room): beacon-and-assembling-code visual while the link comes up
- feat(room): channel lock-in success sequence for room creation
- feat(room): dismiss room creation as a solid sheet, never a crossfade
- fix(room): keep the invite QR sheet full width in every phase
- fix(settings): rename the Persian advanced section to «تنظیمات پیشرفته»
- fix(walkie): open Profile directly from the channel Edit chip
versionCode 36.
Tarkk 1.1.3
Changes since v1.1.2:
- fix: publish guest web on plain release script execution
- fix: default guest web script to unattended build only
- fix: preserve uppercase wordmarks and automate guest web releases
- feat: deploy Flutter guest web releases with Wrangler
- docs: add optimized Persian Bazaar marketing screenshots
- fix: standardize Tarkk app and website branding
versionCode 35.
Tark 1.1.2
Changes since v1.1.1:
- fix(room): one scan joins a new Room and connects; stop stale rejoins
- chore(website): release phone display fit as 1.0.4
- fix(website): keep hero app preview inside phone bezel
versionCode 34.
Tark 1.1.1
Changes since v1.1.0:
- feat(room): match room actions to app panels with a faint forest tint
- chore(website): record release 1.0.3
- fix(website): fit the ending on short laptop screens
- chore(website): record release 1.0.2
- fix(website): keep the download ending in a complete viewport
- Show distinct Wi-Fi and hotspot connection success in Room entry
- Open room creation directly from Landing without flashing the room list
- Record website 1.0.1 deployment
- Fix website demo alignment and navigation, add versioned releases
- feat(website): localize social previews and composition
- style: apply dart format
- fix(android): keep secrets through Keystore hiccups, honest keep-alive restarts
- fix(native): 16 KB pages, aligned denoise mix, safer audio_io calls
- fix(backend): patch Go toolchain, cap code guessing, keep locks off slow work
- feat: refine room connection flows and premium access
- feat(website): launch interactive bilingual landing with cinematic transitions
- fix(room): align subscription gating and Bazaar build permissions
- fix(transfer): discover hotspot peers and recover stalled QR joins
- Move realtime core native and raise test coverage (#324)
- feat(room): auto-enter only after direct peer proof
- refactor(room): use QR membership and Wi-Fi transport
- Point the Settings profile card's arrow the right way in Persian (#321)
- Show every face on Profile and give Profile a clear way in (#320)
- Admin panel: ask before actions that are hard to undo (#319)
- Admin panel: send the sign-in code on its own, live price separators, copy Bazaar prices (#318)
- Rooms show a premium mark on subscribed members (#316)
- Admin panel: QR code for authenticator setup, custom dropdown list, no page scrollbar (#317)
- Admin panel: Persian digits and dates, avatars, nicer dropdowns, actions keep your place (#315)
- Ask before signing out of the account (#314)
- Subscription page asks Bazaar right away, so a cancelled renewal shows (#313)
- Admin panel: ask before signing out (#312)
- Backend: log why Google's signing keys could not be fetched
- Admin panel: keep the account card at the bottom, roomier spacing (#310)
- Redesign the plans page and compact the profile page (#309)
- Admin panel: sidebar shell, stat tiles, card tables and motion on every page (#308)
- Admin panel: Persian by default, English on a switch, logo as tab icon (#307)
- Admin panel sign-in: centred animated card, code field, error shake (#306)
- Plans, profile and account card: animated hero, richer cards, Persian fixes (#305)
- Allow plain http to a backend on the local network
- Account screens: animated hero, Persian layout, success beat (#303)
- Run the admin panel locally: setup-backend.ps1 turns it on, admin-local.ps1 creates a login (#302)
- TEST_SUB test plan, and plan titles that match the Bazaar products (#300)
- Show remembered avatars in the Room lobby (#301)
- Subscription plans from the backend, localized responses, price helper and subscription page (#298)
- Free the microphone a closed app left open (#299)
- Keep the rejoin code sheet smooth when the other phone comes back (#297)
- chore(deps): bump golang from 1.26.6 to 1.27.0 in /backend
- Monitoring: System page, 30-day log files, slow API, database and certificate alerts (#295)
- Admin panel actions: disable, sign out, re-check purchase, gift premium, delete (#294)
- Admin panel: sign-in with authenticator codes, roles, dashboard, user lookup (#293)
- Email alerts and encrypted nightly backups for the backend (#292)
- Note in DEPLOYMENT.md that the Google client id is preset
- Deploy fills the Google client id on servers that still have the placeholder
- Use Tarkk's Google web OAuth client id in the app and backend config
- Get a dropped phone back into a live Room, and leave a Room left alone (#290)
- Upload releases to Bazaar through the Pishkhan API
- update gitignore
versionCode 33.
Tark 1.1.0
Changes since v1.0.20:
- Fix release build numbers and make the GitHub step resumable
- Ignore downloaded Google OAuth client files
- chore(deps): bump actions/setup-go from 5 to 7 (#286)
- chore(deps): bump actions/setup-java from 5 to 6 (#287)
- chore(deps): bump actions/checkout from 4 to 7 (#285)
- chore(deps): bump actions/upload-artifact from 4 to 7 (#284)
- Legal texts: effective date 2 June 2027 (planned release)
- Privacy policy: name the right to a copy and to corrections
- Backend: pin Docker base images by digest, verbose govulncheck, quieter CI db (#288)
- Backend: fix performance and security issues, add API docs and deploy scripts (#283)
- add some file for test
- Tarkk mascot: use the real Tarkk logo on the fox
- Tarkk mascot: a fox biker with the Tarkk logo
- Tarkk mascot avatar replaces the icon placeholder
- Fill in the release signing SHA-256 in assetlinks.json
- Email-link fallback at /v/, assetlinks.json, sitemap
- Landing page: accounts are optional, Bluetooth free, the rest a subscription
- Legal texts for optional accounts and subscriptions; account deletion page
- Sign-in screens, Profile account card, email links
- Accounts core: backend client, session, auth flows, subscription remote
- Add google_sign_in and app_links for accounts
- Read the client IP from ArvanCloud's ar-real-ip header
- Avatars in WebP, six unisex characters, and the Tarkk mascot as default
- Add account deletion, a backup mail provider and HTML emails
- Drop the 6-month case from the Bazaar prices test
- Offer monthly and yearly plans only
- Check Bazaar's purchase signature locally when a key is given
- Drop the 6-month plan; no admin refund action
- Add avatars: a setup step, a Profile page, and faces in the channel
- Add Cafe Bazaar purchase client behind BillingService
- Follow the Bazaar docs: header-only token, grace for fresh purchases
- Add the Go backend: accounts, profile and Bazaar subscriptions
- Drop the removed release branch from the cleanup keep-list
- Add one-command releases, in-app update check and Bazaar download link
- Add offline-first subscription core and its four screens
- Split the Android release into Bazaar, GitHub and master scripts (#275)
- update gitignore
- Polish consistency across the app before the first release (#273)
- fix(walkie): plain words on the dead-mic card (#274)
- Recover the mic and speaker when an audio device reopen gets stuck (#272)
- Remove AdTrace analytics; add a log level with screen, tap and settings logging (#269)
- fix(hotspot): raise the hotspot after Wi-Fi goes off, not before (#271)
- fix(hotspot): pull an Android 9 joiner back onto the host's hotspot (#270)
- Default the voice delay setting to its 60 ms minimum (#268)
- Play received voice from the audio callback on Android, Windows and Linux (#267)
- fix(landing): select the Room on the home card before opening it (#266)
- fix(audio): size the speaker cushion to what the device pulls at once (#265)
- feat(audio): jump back to live when voice falls far behind (#264)
- fix(audio): stop the periodic tick in voice and cut the delay it caused
- feat(hotspot): full-screen page asking the host to turn Wi-Fi off (#262)
- fix(bluetooth): ask for Location before searching on Android 6-11 (#261)
- feat(room): Invite above Start in the lobby (#260)
- fix(room): let a Room see a Bluetooth link that is already up (#259)
- fix(room): Wi-Fi/Hotspot wins over Bluetooth, Guest counts as automatic (#258)
- feat(room): round Start in the lobby, no Start on the Rooms list (#257)
- fix(room): keep a Room invite on Bluetooth when Bluetooth is chosen (#256)
- fix(bluetooth): host without a Room invite, run Rooms over Bluetooth, keep a Bluetooth pin (#255)
- fix(walkie): pin the music fold chevron to the top and give Exit room a top gap (#254)
- refactor(walkie): move the music cast watch out of the cubit (#253)
- refactor(walkie): move the transmit counters out of the cubit (#252)
- refactor(walkie): move the channel health checks out of the cubit (#251)
- refactor(walkie): move the home-widget snapshot out of the cubit (#250)
- chore(release): one release branch per minor version in build-android.ps1 (#249)
- feat(walkie): redesign the channel screen after the Room lobby (#248)
- feat(motion): one Cupertino page transition and shared motion across screens (#247)
- perf(walkie): stop re-emitting state on every voice packet (#246)
- fix(transfer): give up on a hotspot start that never answers (#245)
- fix(room): no dead ends when Start finds no working link
- fix(room): point the back arrow the right way in Persian
- feat(room): redesign the saved rooms list after the lobby
- feat(transfer): reconnect the last Bluetooth call when the app opens (#242)
- feat(room): redesign the Room lobby
- feat(room): guided reconnect when Start finds no link between the phones
- fix(transfer): keep the hotspot side when recording the hotspot carrier
- fix(room): join the hand-off hotspot through the proven bridge path
- fix(walkie): announce the mute toggle and Leave as buttons
- fix(android): keep the session alive when the mic service is refused
- fix(onboarding): translate the day/night theme plates
- fix(room): say "turn on Location" when Android 6-11 cannot scan
- fix(wifi): keep a superseded listener from touching the new session
- fix(room): start the inviter's hand-off when someone joins
- fix(room): let the scanning phone host when the inviter cannot
- fix(room): tell a phone that cannot advertise how to join instead
- fix(room): name an expired or foreign-version invite as an invite
- fix(room): announce on Wi-Fi before the Room readiness gate
- ci: add manual workflow to delete merged branches
- chore(release): Tark v1.0.21-beta.9
- fix(room): replay bound transport health (#240)
- chore(release): Tark v1.0.21-beta.8
- fix(room): preserve one-scan transport handoff
- chore(release): Tark v1.0.21-beta.7
- fix(room): keep initial transport handoff in app
- chore(release): Tark v1.0.21-beta.6
- test(room): bind final dial fixtures to BLE rendezvous
- test(room): bind remaining dial fixtures to BLE rendezvous
- test(room): mark dial fixtures as BLE-bound
- test(room): wire forged host proof scenario
- test(room): wire host proof through real control lifecycle
- test(room): fix fake stream teardown ownership
- test(room): close write counter on the correct fake
- style(room): format BLE binding regression
- style(room): format receipt race test
- docs(room): describe BLE-bound Classic control path
- docs(room): align native comments with BLE rendezvous
- diag(android): export BLE RFCOMM milestones to tarklog
- diag(room): capture native rendezvous events in tarklog
- fix(android): return typed rendezvous readiness errors
- diag(room): record Bluetooth adapter readiness
- test(room): inspect first duplicate confirmation
- test(room): prove concurrent receipt idempotency
- fix(room): dedupe concurrent membership receipts
- test(room): require BLE binding and typed readiness failure
- fix(room): preserve typed native readiness failures
- fix(room): require BLE-bound host selection
- test(room): verify QR-bound host challenge proof
- style(room): format proximity carrier test
- style(room): format proximity carrier
- feat(room): authenticate host before sending join capability
- diag(room): trace transport control milestones without credentials
- test(room): prove concurrent join request idempotency
- diag(android): add privacy-safe Bluetooth discovery trail
- diag(room): trace authenticated join protocol milestones
- diag(room): trace one-scan join milestones safely
- diag(room): trace host invite readiness safely
- test(room): model enabled adapter in invite readiness tests
- style(room): format BLE identity tests
- style(room): format proximity readiness tests
- style(room): format rendezvous identity
- style(room): format proximity control changes
- style(room): format BLE rendezvous engine
- fix(room): repair rendezvous host-name helpers
- test(room): bind BLE identity to scanned invitation
- refactor(android): consume hashed rendezvous service data
- refactor(room): pass only BLE digest to Android
- feat(room): derive privacy-safe BLE rendezvous identity
- fix(android): normalize rendezvous correlation hex
- fix(room): keep BLE scan error construction valid
- test(bluetooth): reject oversized control frames
- test(room): never render QR before native readiness
- test(room): cover readiness and BLE-bound discovery
- fix(room): trust BLE binding over cached adapter name
- feat(room): carry BLE rendezvous match evidence
- feat(room): mark BLE-bound rendezvous peers
- fix(room): map typed proximity failures
- fix(room): dedupe concurrent join grants
- fix(room): fail closed on malformed control frames
- fix(bluetooth): bound inbound control frames
- feat(android): add typed BLE rendezvous readiness
- feat(room): use BLE rendezvous for host selection
- fix(room): gate QR on native host readiness
- refactor(room): centralize rendezvous label
- chore(release): Tark v1.0.21-beta.5
- style(room): format blocked dial regression
- test(room): cover blocked native proximity dial
- fix(room): bound native proximity dial
- update test foldering
- chore(release): Tark v1.0.21-beta.4
- test(room): let adopted invite session outlive sheet test
- test(room): avoid fake transport teardown deadlock
- fix(room): request Bluetooth permissions before invite
- chore(release): Tark v1.0.21-beta.3
- fix(room): harden proximity bootstrap and live third-device join
- fix(room): make one-scan join converge over proximity control
- chore(release): Tark v1.0.21-beta.2
- fix(room): simplify invite flow after beta device test (#228)
- chore(release): Tark v1.0.21-beta.1
- fix(release): seal generated l10n before provenance (#223)
- fix(room): plan transport before readiness
- fix(room): separate pending invitations from joined member rosters
- add terms and conditions for app and website (sync)
- style: apply Dart formatter to room failure callout
- style: appl...
Tark 1.0.21
Changes since v1.0.20:
- Split the Android release into Bazaar, GitHub and master scripts (#275)
- update gitignore
- Polish consistency across the app before the first release (#273)
- fix(walkie): plain words on the dead-mic card (#274)
- Recover the mic and speaker when an audio device reopen gets stuck (#272)
- Remove AdTrace analytics; add a log level with screen, tap and settings logging (#269)
- fix(hotspot): raise the hotspot after Wi-Fi goes off, not before (#271)
- fix(hotspot): pull an Android 9 joiner back onto the host's hotspot (#270)
- Default the voice delay setting to its 60 ms minimum (#268)
- Play received voice from the audio callback on Android, Windows and Linux (#267)
- fix(landing): select the Room on the home card before opening it (#266)
- fix(audio): size the speaker cushion to what the device pulls at once (#265)
- feat(audio): jump back to live when voice falls far behind (#264)
- fix(audio): stop the periodic tick in voice and cut the delay it caused
- feat(hotspot): full-screen page asking the host to turn Wi-Fi off (#262)
- fix(bluetooth): ask for Location before searching on Android 6-11 (#261)
- feat(room): Invite above Start in the lobby (#260)
- fix(room): let a Room see a Bluetooth link that is already up (#259)
- fix(room): Wi-Fi/Hotspot wins over Bluetooth, Guest counts as automatic (#258)
- feat(room): round Start in the lobby, no Start on the Rooms list (#257)
- fix(room): keep a Room invite on Bluetooth when Bluetooth is chosen (#256)
- fix(bluetooth): host without a Room invite, run Rooms over Bluetooth, keep a Bluetooth pin (#255)
- fix(walkie): pin the music fold chevron to the top and give Exit room a top gap (#254)
- refactor(walkie): move the music cast watch out of the cubit (#253)
- refactor(walkie): move the transmit counters out of the cubit (#252)
- refactor(walkie): move the channel health checks out of the cubit (#251)
- refactor(walkie): move the home-widget snapshot out of the cubit (#250)
- chore(release): one release branch per minor version in build-android.ps1 (#249)
- feat(walkie): redesign the channel screen after the Room lobby (#248)
- feat(motion): one Cupertino page transition and shared motion across screens (#247)
- perf(walkie): stop re-emitting state on every voice packet (#246)
- fix(transfer): give up on a hotspot start that never answers (#245)
- fix(room): no dead ends when Start finds no working link
- fix(room): point the back arrow the right way in Persian
- feat(room): redesign the saved rooms list after the lobby
- feat(transfer): reconnect the last Bluetooth call when the app opens (#242)
- feat(room): redesign the Room lobby
- feat(room): guided reconnect when Start finds no link between the phones
- fix(transfer): keep the hotspot side when recording the hotspot carrier
- fix(room): join the hand-off hotspot through the proven bridge path
- fix(walkie): announce the mute toggle and Leave as buttons
- fix(android): keep the session alive when the mic service is refused
- fix(onboarding): translate the day/night theme plates
- fix(room): say "turn on Location" when Android 6-11 cannot scan
- fix(wifi): keep a superseded listener from touching the new session
- fix(room): start the inviter's hand-off when someone joins
- fix(room): let the scanning phone host when the inviter cannot
- fix(room): tell a phone that cannot advertise how to join instead
- fix(room): name an expired or foreign-version invite as an invite
- fix(room): announce on Wi-Fi before the Room readiness gate
- ci: add manual workflow to delete merged branches
- chore(release): Tark v1.0.21-beta.9
- fix(room): replay bound transport health (#240)
- chore(release): Tark v1.0.21-beta.8
- fix(room): preserve one-scan transport handoff
- chore(release): Tark v1.0.21-beta.7
- fix(room): keep initial transport handoff in app
- chore(release): Tark v1.0.21-beta.6
- test(room): bind final dial fixtures to BLE rendezvous
- test(room): bind remaining dial fixtures to BLE rendezvous
- test(room): mark dial fixtures as BLE-bound
- test(room): wire forged host proof scenario
- test(room): wire host proof through real control lifecycle
- test(room): fix fake stream teardown ownership
- test(room): close write counter on the correct fake
- style(room): format BLE binding regression
- style(room): format receipt race test
- docs(room): describe BLE-bound Classic control path
- docs(room): align native comments with BLE rendezvous
- diag(android): export BLE RFCOMM milestones to tarklog
- diag(room): capture native rendezvous events in tarklog
- fix(android): return typed rendezvous readiness errors
- diag(room): record Bluetooth adapter readiness
- test(room): inspect first duplicate confirmation
- test(room): prove concurrent receipt idempotency
- fix(room): dedupe concurrent membership receipts
- test(room): require BLE binding and typed readiness failure
- fix(room): preserve typed native readiness failures
- fix(room): require BLE-bound host selection
- test(room): verify QR-bound host challenge proof
- style(room): format proximity carrier test
- style(room): format proximity carrier
- feat(room): authenticate host before sending join capability
- diag(room): trace transport control milestones without credentials
- test(room): prove concurrent join request idempotency
- diag(android): add privacy-safe Bluetooth discovery trail
- diag(room): trace authenticated join protocol milestones
- diag(room): trace one-scan join milestones safely
- diag(room): trace host invite readiness safely
- test(room): model enabled adapter in invite readiness tests
- style(room): format BLE identity tests
- style(room): format proximity readiness tests
- style(room): format rendezvous identity
- style(room): format proximity control changes
- style(room): format BLE rendezvous engine
- fix(room): repair rendezvous host-name helpers
- test(room): bind BLE identity to scanned invitation
- refactor(android): consume hashed rendezvous service data
- refactor(room): pass only BLE digest to Android
- feat(room): derive privacy-safe BLE rendezvous identity
- fix(android): normalize rendezvous correlation hex
- fix(room): keep BLE scan error construction valid
- test(bluetooth): reject oversized control frames
- test(room): never render QR before native readiness
- test(room): cover readiness and BLE-bound discovery
- fix(room): trust BLE binding over cached adapter name
- feat(room): carry BLE rendezvous match evidence
- feat(room): mark BLE-bound rendezvous peers
- fix(room): map typed proximity failures
- fix(room): dedupe concurrent join grants
- fix(room): fail closed on malformed control frames
- fix(bluetooth): bound inbound control frames
- feat(android): add typed BLE rendezvous readiness
- feat(room): use BLE rendezvous for host selection
- fix(room): gate QR on native host readiness
- refactor(room): centralize rendezvous label
- chore(release): Tark v1.0.21-beta.5
- style(room): format blocked dial regression
- test(room): cover blocked native proximity dial
- fix(room): bound native proximity dial
- update test foldering
- chore(release): Tark v1.0.21-beta.4
- test(room): let adopted invite session outlive sheet test
- test(room): avoid fake transport teardown deadlock
- fix(room): request Bluetooth permissions before invite
- chore(release): Tark v1.0.21-beta.3
- fix(room): harden proximity bootstrap and live third-device join
- fix(room): make one-scan join converge over proximity control
- chore(release): Tark v1.0.21-beta.2
- fix(room): simplify invite flow after beta device test (#228)
- chore(release): Tark v1.0.21-beta.1
- fix(release): seal generated l10n before provenance (#223)
- fix(room): plan transport before readiness
- fix(room): separate pending invitations from joined member rosters
- add terms and conditions for app and website (sync)
- style: apply Dart formatter to room failure callout
- style: apply Dart formatter to room failure UX test
- style(room): apply formatter to actionable failures
- feat(room): restore verified speaking presence in durable roster (#218)
- test(room): lock actionable connection failure UX
- fix(room): surface typed recoverable connection failures
- feat(room): show actionable lobby connection failures
- update website. add privacy policy and terms and conditions pages
- fix(room): bind connected roster state to verified member proof (#217)
- test(room): harden connection races and acceptance evidence (#211)
- feat(room): make connection states clear and durable (#210)
- feat(room): gate live entry on verified transport proof (#209)
- feat(room): confirm membership by signed receipt (#208)
- feat(room): coordinate one epoch-fenced connection attempt
- fix: import room handoff reach pulse
- ci: remove temporary formatter workflow
- style: apply Dart formatter
- ci: format room convergence patch
- test(room): lock one-scan bridge completion semantics
- fix(room): complete one-scan join after network bind
- chore: add Graphify context optimization (#199)
- chore: remove #196 test diagnostics
- fix(room): preserve lobby member copy
- chore: capture #196 test failure diagnostics
- ci: diagnose #196 flutter test failure
- docs(room): document hidden Start fallback
- style: format #196 room-first changes
- ci: format #196 room-first changes
- test(room): keep entry transport checks invisible
- test(room): align hidden bootstrap contract with room-first lobby
- test(room): keep pending invite seats out of primary lobby
- test(room): replace network-first lobby expectations
- fix(room): bootstrap fallback invisibly from Start
- chore: remove #196 quality-gate trigger
- chore: trigger #196 quality gate after formatting
- style: format #196 room-first changes
- ci: run one-shot formatter for #196
- feat(room): make the lobby room-first and transport-agnostic
- chore: remove temporary branch marker
- feat(room): codify proven-LAN-first hidden transport policy
- test(room): lock room-first transport UX contract
- docs(room): define room-first automatic ...
Tark v1.0.21-beta.9
Tark release
Android downloads
- Most Android phones (recommended):
tark-v1.0.21-beta.9-arm64-v8a.apk - Older 32-bit ARM phones:
tark-v1.0.21-beta.9-armeabi-v7a.apk - Android emulator / x86_64 device:
tark-v1.0.21-beta.9-x86_64.apk - Play Console only:
tark-v1.0.21-beta.9.aab
APKs are separate assets. Download only the APK that matches the phone; the arm64 APK is the normal choice. Each asset has a neighboring .sha256 file for optional integrity verification.