{
"path": "/3ml25azowc22f",
"site": "at://did:plc:xg2vq45muivyy3xwatcehspu/site.standard.publication/3m6bjy3xm5s2a",
"tags": [
"Android",
"Flutter",
"BlueSky",
"BlackSky",
"Release Notes"
],
"$type": "site.standard.document",
"title": "Lazurite for Android (alpha 3)",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"id": "019df3cd-d9a6-7ffb-9e92-4beaa789e1d9",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://github.com/stormlightlabs/lazurite/releases/tag/v1.0.0-alpha.3",
"$type": "pub.leaflet.blocks.website",
"title": "Release v1.0.0 Alpha 3 · stormlightlabs/lazurite",
"description": "Overview Added quick Jump to top actions in feed/profile flows, plus tap-to-refresh behavior on an active feed tab. Added opt-in crash reporting via Firebase Crashlytics with an explicit consent p...",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreiffe427nqmyywrojhlrvj4gylwsjr7yrbmsn3yy72vgeuhrzlf6ca"
},
"mimeType": "image/png",
"size": 22800
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Overview"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 23,
"byteStart": 12
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "Added quick Jump to top actions in feed/profile flows, plus tap-to-refresh behavior on an active feed tab."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 28,
"byteStart": 6
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "Added opt-in crash reporting via Firebase Crashlytics with an explicit consent prompt."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Improved post interaction UX with larger touch targets and a clearer trailing metadata layout."
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "What’s New"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Feed and profile ergonomics"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Added jump-to-top affordance in Home feed workflows."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Added refresh-on-retap behavior for selected feed tabs."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Added jump-to-top interactions in profile views."
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Crash reporting and resilience"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Integrated Firebase Crashlytics behind user consent."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Added a crash reporting consent gate with persisted consent state in settings."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Added robust error capture hooks"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "UI improvements"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Updated post actions layout with larger tap areas and improved action/meta alignment for better accessibility and usability."
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Fixes"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Fixed a feed refresh/feed-content reload race condition."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Removed duplicate feed loading/refresh indicators."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Improved transaction retry safety."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Improved Apple push-token initialization reliability"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Under the Hood"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Added Firebase/Crashlytics project wiring updates across Android and iOS config."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Expanded automated test coverage for crash reporting, feed caching/refresh behavior, footer interactions, settings state, and formatting utilities."
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Support"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 95,
"byteStart": 89
},
"features": [
{
"uri": "https://github.com/stormlightlabs/lazurite",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 106,
"byteStart": 99
},
"features": [
{
"uri": "https://tangled.org/desertthunder.dev/lazurite",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Lazurite (and I) could use your support! That can be anything from feedback, an issue on Github or Tangled, or a star on either platform!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Thanks for reading, and thanks for using Lazurite!"
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreifnguelqv3jfnsjexcusrmmvxms7pxsmmtyu5t4pakotnfkfidyda",
"uri": "at://did:plc:xg2vq45muivyy3xwatcehspu/app.bsky.feed.post/3ml25bca2jk2f",
"commit": {
"cid": "bafyreifnfzvlqwyxvwopm4lez4xv4oif4smjtquqaxohm2jxoipjwazbie",
"rev": "3ml25bcdeqd2n"
},
"validationStatus": "valid"
},
"description": "v1.0.0-alpha.3",
"publishedAt": "2026-05-04T16:55:56.378Z"
}