Conversation
- Raise the exact pin from 6.25.1 (held for iPad landscape blur) - Drop MetalLayerScaleFix; upstream #4373 fixes native scale
- Clamp unresolved identity hex to 2–3 bytes from device hashSize - Capture width on neighbours response so disconnect does not reflow labels - Widen colliding unplottable map titles to the full prefix - Add resolver, view model, and map builder coverage
- Replace per-advert getContact queue with watermarked batch sync - Stamp phone-clock lastHeard for sort, prune, and backup - Claim isSyncInProgress as advert-owned so full sync waits - Admit delta rounds once a full contact fetch completes, so an empty radio with no watermark still syncs its first auto-added contact - Report a busy outcome when another sync holds the claim, so a collision keeps its drained keys instead of spending the failure budget - Cover coalescing, 0x8F rollback, escalation, and prune safety
- Expose contactsStart total via ContactFetchResult (nil when missing) - Skip orphan prune unless the snapshot is complete and the V-contact can be identified - Force contacts-only full sync when the local table is at capacity - Add tests for capacity, truncation, shrink, missing total, and V-contact
- Stamp lastHeard on inbound DM, successful ping, and path response - Keep radio lastModified on path response - Cover DM and path response with tests Co-authored-by: JCBird1012 <jonathan@jcaicedo.com>
- Store every region that verifies a packet's transport code, not first match only - Surface ambiguous chips in bubbles, message info, and RX log - Reprocess retained rows when known regions change
Match heard repeats on channel, timestamp, and text. The connect-time node name is not a join key.
Companion firmware restamps CLI packets to its own RTC. Stock clock sync then sets the node from that stamp, not the phone. Rewrite remote clock sync to time <phone-epoch>. Sync Time and Tools CLI then set the node from the host clock.
Telemetry warned from a login snapshot vs the radio clock. Device Time used a later CLI clock query. Those two samples did not match, so the banner stayed after the node looked right. Measure drift when Device Info loads clock. Show the warning next to Device Time. Drop the login snapshot and the Telemetry banner.
- Store new regions with flood allowed, same as firmware put - Show CLI errors in the Regions section - Validate the name in the add alert before sending
- * is a packet with no region, not all traffic
- Scroll-to-bottom requests only pin when already at the bottom - Outgoing and self-sent rows no longer raise the unread badge
- One process PersistenceStore; no second actor on connect - Registry survives disconnect and only clears on restore - Reconnect refreshes the loaded window instead of replacing it
- Unique and ambiguous region labels on Frank and Public floods - Two RX-log rows for the same unique/ambiguous cases - Hop IDs on Alice's Public flood (live RX-log receive)
- After the connect-failure budget, re-issue connect when the bond verified recently or the app is not confirmed active - isAppActive starts false so a BLE process relaunch keeps the pending connect
* feat(contacts): crop profile picture before saving Adds a pan/pinch crop step between picking a photo (library or file import) and saving it as a contact's avatar, instead of using the picked image as-is. Crops via UIImage.draw(in:) rather than raw CGImage cropping so EXIF-rotated photos crop the same region shown in the on-screen preview. * fix: regenerate L10n.swift with swiftgen The committed generated file didn't match current swiftgen output ordering, tripping the codegen CI check. * chore: retrigger CI * fix(contacts): address avatar crop review feedback Fixes the modal-presentation race between the picker/importer sheets and the crop cover, decodes and downsamples off the main actor via ImageIO instead of full-resolution UIImage(data:), removes the redundant JPEG re-encode by passing the cropped UIImage straight to the existing avatar processor, swaps the deprecated MagnificationGesture for MagnifyGesture with a clamped live pinch value, and drops an unused outer GeometryReader. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: romeo <romeo@romeos-mini-4.home> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
- Keep live pan/zoom covering the crop guide so Choose matches the preview - Anchor the iPad source menu on the avatar button - Notify contacts changed after avatar save so the Nodes list updates
- Notify contacts changed so the Nodes list updates nickname and block
- Last incoming in a channel cluster gets a photo when the sender uniquely matches a contact, otherwise initials - Rooms use the same layout with initials; DMs skip the column
- Start the flight in the same admit turn as the new row - Skip when scrolled up or Reduce Motion is on - Key room hops on author prefix
- Place pin A when a unique contact name matches the channel sender - Simulator channel mocks no longer invent a key prefix
- Bind the loaded field directly so typed text is visible - Show Apply errors on the Contact Info section - Keep the character count in the field row
- Store DiscoveredNode.outPathLength as Int so leftover SQLite -1 no longer traps fetch - DTO still uses UInt8 via truncatingIfNeeded; envelope unchanged
- Store Contact.outPathLength as Int so leftover SQLite -1 no longer traps fetch - DTO still uses UInt8 via truncatingIfNeeded; envelope unchanged
- Resolve heard-repeat names with NeighborNameResolver so a short-prefix collision is .fallback - Show FallbackMatchIndicatorView on those Repeat Details rows
The form only allowed dotted IPv4 even though the transport already resolves names. Keep the typed hostname so reconnect looks it up again. - Validate IPv4 and DNS hostnames, including .local - Switch the host field to a URL keyboard - Trim before save; update copy in all locales
- xcsift prints one summary at EOF, so make test-app looked hung after xcodegen - heartbeat from the pipe consumer every 30s; lock wait lines include elapsed time
A busy conversation sized the first fetch to every unread plus context, which could load thousands of rows on open. Cap that window at 200; remaining unread pages in via loadOlder.
- xcodebuild can run simctl diagnose (--timeout=600) after a green suite - pass -collect-test-diagnostics never on test-app and test-store
- Add a list indicator for unseen outgoing .failed sends - Mark them seen when the conversation is opened
- batchSaveContacts must not wipe existing avatarImageData - simulator reseed must keep a user-set avatar
- Channel mark leaves other indexes and the same index on another radio - Room mark leaves the unmarked session
- Swipe-back posted willHide while the keyboard window stayed, dropping the compose bar mid-screen - Hold current lift during an interactive pop; back-button and keyboard drag still apply the proposed frame
- Open Advanced Settings via navigateToSetting(.advanced) - Drop the toolbar's private AdvancedSettingsView destination
- Detect language at bake time and show an in-bubble Translate control - Keep stored message text as-is and cache translations per target
- Put `.translationPresentation` on a later `.background` sibling in chat and room - Overlay wrapping `.conversationTranslationSession` failed in airplane mode even with packs on disk
- Present the system overlay when in-bubble TranslationSession throws - Quiet cancel and pack download stay as they are, with no error alert
- Skip language detection and chrome on outgoing chat and from-self room rows - Drop isOutgoing from BubbleTranslationControl
- Regions UI now sets region default, not home - Removing the current default also sends region default <null> - Caption covers originated packets and immediate persist
fix(l10n): revise Portuguese (Portugal) translation
- Mark Portuguese as verified by zadoke #413 - Default-scope keys now use scope, nó, and Adverts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.