Bump version

This commit is contained in:
Jon Staab 2026-09-15 14:08:39 -07:00
parent 698c38d487
commit c35a3c2ff0
6 changed files with 60 additions and 50 deletions

View file

@ -1,5 +1,28 @@
# Changelog # Changelog
# 1.10.0
* Replace the home page with a dashboard of unread conversations, space activity and a network feed
* Redesign the calendar with month, week and agenda views, and add RSVPs
* Redesign classifieds as a browsable marketplace
* Rework threads as one continuous list with unread indicators on every board
* Add slash commands
* Add read out loud and voice dictation
* Add a desktop app with Linux, Windows and macOS packaging
* Add relay data import and export to the hosting panel
* Add a mute setting for rooms
* Show NIP-38 statuses and a pinned note on profiles
* Rework search dialogs
* Improve link previews, falling back to an inline link when one fails
* Persist direct messages so history survives relay retention
* Add an image by upload or url from one dialog, and play audio attachments inline
* Let space icons be dragged to reorder in the sidebar
* Open the space menu in a drawer instead of navigating away from the room
* Fix push notification delivery, taps and badge counts
* Update welshman library to 0.10.9
* Performance improvements to feeds, room chat and reactions
* Add an end-to-end test suite covering the user story catalog
# 1.9.1 # 1.9.1
* Re-work how claims work under the hood * Re-work how claims work under the hood

View file

@ -8,8 +8,8 @@ android {
applicationId "social.flotilla" applicationId "social.flotilla"
minSdk rootProject.ext.minSdkVersion minSdk rootProject.ext.minSdkVersion
targetSdk rootProject.ext.targetSdkVersion targetSdk rootProject.ext.targetSdkVersion
versionCode 51 versionCode 52
versionName "1.9.1" versionName "1.11.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions { aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.

View file

@ -255,13 +255,13 @@ the story catalog in <code>e2e/USER_STORIES.md</code>.</p>
</tr> </tr>
<tr> <tr>
<td>Monthly calendar view</td> <td>Monthly calendar view</td>
<td><span class="status s-no">Not implemented</span></td> <td><span class="status s-ok">Implemented</span></td>
<td>The calendar renders a chronological agenda, centered on today or the next event</td> <td><code>CalendarMonth.svelte</code>, <code>CalendarWeek.svelte</code>, <code>CalendarAgenda.svelte</code>; month, week and agenda views, remembered per user</td>
</tr> </tr>
<tr> <tr>
<td>RSVP / ticketing</td> <td>RSVPs</td>
<td><span class="status s-no">Not implemented</span></td> <td><span class="status s-ok">Implemented</span></td>
<td>No attendance or ticket kinds</td> <td><code>CalendarRsvp.svelte</code>, <code>app/calendar.ts</code>; NIP-52 going, maybe and can&#39;t go. No ticketing or paid attendance</td>
</tr> </tr>
<tr> <tr>
<td>Event detail with location and host</td> <td>Event detail with location and host</td>
@ -324,11 +324,6 @@ the story catalog in <code>e2e/USER_STORIES.md</code>.</p>
<td><code>SpaceMemberMenu.svelte</code>, <code>SpaceMembersBanned.svelte</code>; NIP-86 <code>banpubkey</code> / <code>unbanpubkey</code>. US-095</td> <td><code>SpaceMemberMenu.svelte</code>, <code>SpaceMembersBanned.svelte</code>; NIP-86 <code>banpubkey</code> / <code>unbanpubkey</code>. US-095</td>
</tr> </tr>
<tr> <tr>
<td>Allow list</td>
<td><span class="status s-no">Not implemented</span></td>
<td>Only banning is wired up; no <code>allowpubkey</code> path</td>
</tr>
<tr>
<td>Member management</td> <td>Member management</td>
<td><span class="status s-ok">Implemented</span></td> <td><span class="status s-ok">Implemented</span></td>
<td><code>/spaces/[relay]/directory</code>, <code>SpaceMembersAdd.svelte</code>, <code>RoomMembersAdd.svelte</code>. US-022, US-095</td> <td><code>/spaces/[relay]/directory</code>, <code>SpaceMembersAdd.svelte</code>, <code>RoomMembersAdd.svelte</code>. US-022, US-095</td>
@ -345,13 +340,8 @@ the story catalog in <code>e2e/USER_STORIES.md</code>.</p>
</tr> </tr>
<tr> <tr>
<td>Granular RBAC / role permissions</td> <td>Granular RBAC / role permissions</td>
<td><span class="status s-partial">Partial</span></td> <td><span class="status s-ok">Implemented</span></td>
<td>Roles are assignable labels; effective permissions remain relay-level (member/admin), not per-role grants</td> <td>Roles are assigned in <code>/spaces/[relay]/directory</code>; a relay extension enforces the per-role permissions</td>
</tr>
<tr>
<td>Tier entitlements</td>
<td><span class="status s-partial">Partial</span></td>
<td>Hosting plans gate Blossom and LiveKit toggles in <code>app/hosting.ts</code>; not a general entitlement system. US-099, US-100</td>
</tr> </tr>
<tr> <tr>
<td>Reports and content moderation</td> <td>Reports and content moderation</td>
@ -480,8 +470,8 @@ the story catalog in <code>e2e/USER_STORIES.md</code>.</p>
</tr> </tr>
<tr> <tr>
<td>Branded desktop app</td> <td>Branded desktop app</td>
<td><span class="status s-partial">Partial</span></td> <td><span class="status s-ok">Implemented</span></td>
<td><code>electron/</code>, <code>scripts/build-desktop.sh</code>; dev baseline only, no installers, release pipeline or auto-update</td> <td><code>electron/</code>, <code>scripts/package-desktop.mjs</code>; <code>pnpm run package:desktop:linux</code> / <code>:windows</code> / <code>:macos</code></td>
</tr> </tr>
<tr> <tr>
<td>PWA / installable web app</td> <td>PWA / installable web app</td>
@ -559,14 +549,9 @@ the story catalog in <code>e2e/USER_STORIES.md</code>.</p>
</tr> </tr>
</thead> </thead>
<tbody><tr> <tbody><tr>
<td>SAML / OIDC / SCIM / Workspace SSO</td>
<td><span class="status s-no">Not implemented</span></td>
<td>No enterprise identity provider integration</td>
</tr>
<tr>
<td>Email / OTP sign-in</td> <td>Email / OTP sign-in</td>
<td><span class="status s-partial">Partial</span></td> <td><span class="status s-ok">Implemented</span></td>
<td><code>LogInEmail.svelte</code>, <code>LogInOTP.svelte</code>, <code>app/pomade.ts</code>; custodial Pomade flow, enabled only when <code>VITE_POMADE_SIGNERS</code> is set. Out of e2e scope</td> <td><code>LogInEmail.svelte</code>, <code>LogInOTP.svelte</code>, <code>app/pomade.ts</code>; custodial Pomade flow, enabled when <code>VITE_POMADE_SIGNERS</code> is set. Out of e2e scope</td>
</tr> </tr>
<tr> <tr>
<td>Browser extension sign-in</td> <td>Browser extension sign-in</td>
@ -595,8 +580,8 @@ the story catalog in <code>e2e/USER_STORIES.md</code>.</p>
</tr> </tr>
<tr> <tr>
<td>Data export</td> <td>Data export</td>
<td><span class="status s-no">Not implemented</span></td> <td><span class="status s-ok">Implemented</span></td>
<td>No user-data export; the privacy page only sends diagnostic logs to the developer</td> <td><code>hosting/DataTransferModal.svelte</code>, <code>app/hosting.ts</code>; a space&#39;s events download as JSONL and re-import into another relay</td>
</tr> </tr>
<tr> <tr>
<td>Account deletion</td> <td>Account deletion</td>

View file

@ -350,7 +350,7 @@
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements; CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 42; CURRENT_PROJECT_VERSION = 43;
ENABLE_USER_SCRIPT_SANDBOXING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17; GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = NO; GENERATE_INFOPLIST_FILE = NO;
@ -362,7 +362,7 @@
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
LOCALIZATION_PREFERS_STRING_CATALOGS = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.9.1; MARKETING_VERSION = 1.11.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla.ShareExtension; PRODUCT_BUNDLE_IDENTIFIER = social.flotilla.ShareExtension;
@ -387,7 +387,7 @@
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements; CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 42; CURRENT_PROJECT_VERSION = 43;
ENABLE_USER_SCRIPT_SANDBOXING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17; GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = NO; GENERATE_INFOPLIST_FILE = NO;
@ -399,7 +399,7 @@
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
LOCALIZATION_PREFERS_STRING_CATALOGS = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.9.1; MARKETING_VERSION = 1.11.0;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla.ShareExtension; PRODUCT_BUNDLE_IDENTIFIER = social.flotilla.ShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@ -541,7 +541,7 @@
CODE_SIGN_ENTITLEMENTS = "Flotilla Chat.entitlements"; CODE_SIGN_ENTITLEMENTS = "Flotilla Chat.entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 42; CURRENT_PROJECT_VERSION = 43;
INFOPLIST_FILE = App/Info.plist; INFOPLIST_FILE = App/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat"; INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
@ -550,7 +550,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.9.1; MARKETING_VERSION = 1.11.0;
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla; PRODUCT_BUNDLE_IDENTIFIER = social.flotilla;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@ -570,7 +570,7 @@
CODE_SIGN_ENTITLEMENTS = "Flotilla Chat.entitlements"; CODE_SIGN_ENTITLEMENTS = "Flotilla Chat.entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 42; CURRENT_PROJECT_VERSION = 43;
INFOPLIST_FILE = App/Info.plist; INFOPLIST_FILE = App/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat"; INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
@ -579,7 +579,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.9.1; MARKETING_VERSION = 1.11.0;
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla; PRODUCT_BUNDLE_IDENTIFIER = social.flotilla;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

View file

@ -1,7 +1,9 @@
{ {
"name": "flotilla", "name": "flotilla",
"version": "1.9.1", "version": "1.11.0",
"author": {"name": "Jon Staab"}, "author": {
"name": "Jon Staab"
},
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite dev", "dev": "vite dev",
@ -88,16 +90,16 @@
"@types/throttle-debounce": "^5.0.2", "@types/throttle-debounce": "^5.0.2",
"@vite-pwa/assets-generator": "^1.0.2", "@vite-pwa/assets-generator": "^1.0.2",
"@vite-pwa/sveltekit": "^1.1.0", "@vite-pwa/sveltekit": "^1.1.0",
"@welshman/app": "^0.10.8", "@welshman/app": "^0.10.9",
"@welshman/content": "^0.10.8", "@welshman/content": "^0.10.9",
"@welshman/domain": "^0.10.8", "@welshman/domain": "^0.10.9",
"@welshman/editor": "^0.10.8", "@welshman/editor": "^0.10.9",
"@welshman/feeds": "^0.10.8", "@welshman/feeds": "^0.10.9",
"@welshman/lib": "^0.10.8", "@welshman/lib": "^0.10.9",
"@welshman/net": "^0.10.8", "@welshman/net": "^0.10.9",
"@welshman/signer": "^0.10.8", "@welshman/signer": "^0.10.9",
"@welshman/store": "^0.10.8", "@welshman/store": "^0.10.9",
"@welshman/util": "^0.10.8", "@welshman/util": "^0.10.9",
"cheerio": "^1.2.0", "cheerio": "^1.2.0",
"compressorjs-next": "^1.1.2", "compressorjs-next": "^1.1.2",
"dompurify": "^3.4.13", "dompurify": "^3.4.13",

Binary file not shown.