4098 Commits
Author SHA1 Message Date
GitHub Actions 55678d3914 feat(release): bump version v1.66.0 2026-06-02 10:20:42 +00:00
Harsh ShandilyaandGitHub 2661b82950 Update CHANGELOG.md 2026-06-02 15:45:56 +05:30
ClaudeGitHubanthropic-code-agent[bot] <242468646+Claude@users.noreply.github.com>msfjarvis
4bbf092c2d [WIP] Fix certificate pinning error on app launch (#1188)
Thanks for asking me to work on this. I will get started on it and keep
this PR's description up to date as I form a plan and make progress.

> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>1.65.0 Certificate Pinning error </issue_title>
> <issue_description>Opening the App just gives the error
> 
> > Certificate pinning failure
> 
> I imagine that this is due to the new certificate on lobster:
> 
> > Not Before Tue, 02 Jun 2026 03:17:13 GMT 
> 
> 
> backtrace:
> ```
> javax.net.ssl.SSLPeerUnverifiedException: Certificate pinning failure!
>   Peer certificate chain:
>     sha256/nmaozNNuQ1MLbF/avDVhKPEu1JiZibqa/rcIhF6rJaU=: CN=lobste.rs
> sha256/brzvtCELCIZUo4sD/qPX0ccRtPsd3DY6RfmxpOU9oB4=: CN=YE1,O=Let's
Encrypt,C=US
> sha256/sCkq5UWXjg+7mKu9lMhhYF5bGLsy7VI/UNW3tccdR7w=: CN=Root
YE,O=ISRG,C=US
> sha256/diGVwiVYbubAI3RW4hB9xU8e/CH2GnkuvVFZE8zmgzI=: CN=ISRG Root
X2,O=Internet Security Research Group,C=US
>   Pinned certificates for lobste.rs:
>     sha256/Bla1TIdpGeHXQS0/CIrA5hhFhOTZd94IIJRS3G3AcIo=
>     sha256/jQJTbIh0grw0/1TkHSumWb+Fs0Ggogr621gT3PvPKG0=
>     sha256/C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=
> at
okhttp3.CertificatePinner.check$okhttp(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:427)
> at
okhttp3.internal.connection.ConnectPlan.connectTls(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:223)
> at
okhttp3.internal.connection.ConnectPlan.connectTlsEtc(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:153)
> at
okhttp3.internal.connection.FastFallbackExchangeFinder.find(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:139)
> at
okhttp3.internal.connection.ConnectInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:30)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
okhttp3.internal.cache.CacheInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:1872)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
okhttp3.internal.cache.CacheInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:666)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
okhttp3.internal.cache.CacheInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:220)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
io.sentry.okhttp.SentryOkHttpInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:461)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
okhttp3.logging.HttpLoggingInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:576)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
okhttp3.internal.cache.CacheInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:773)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
dev.msfjarvis.claw.core.network.UserAgentInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:19)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
dev.msfjarvis.claw.core.network.RetryAfterInterceptor.intercept(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:3)
> at
okhttp3.internal.http.RealInterceptorChain.proceed(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:104)
> at
okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:118)
> at
okhttp3.internal.connection.RealCall$AsyncCall.run(r8-map-id-4720644bb8de639be45bbb06d58eed30b6402544fe3e08afbfc1a8ff6d7ebbc6:42)
> at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1154)
> at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:652)
> 	at java.lang.Thread.run(Thread.java:1563)
> Suppressed: javax.net.ssl.SSLPeerUnverifiedException: Certificate
pinning failure!
>   Peer certificate chain:
>     sha256/nmaozNNuQ1MLbF/avDVhKPEu1JiZibqa/rcIhF6rJaU=: CN=lobste.rs
> sha256/brzvtCELCIZUo4sD/qPX0ccRtPsd3DY6RfmxpOU9oB4=: CN=YE1,O=Let's
Encrypt,C=US
> sha256/sCkq5UWXjg+7mKu9lMhhYF5bGLsy7VI/UNW3tccdR7w=: CN=Root
YE,O=ISRG,C=US
> sha256/diGVwiVYbubAI3RW4hB9xU8e/CH2GnkuvVFZE8zmgzI=: CN=ISRG Root
X2,O=Internet Security Research Group,C=US
>   Pinned certificates for lobste.rs:
>     sha256/Bla1TIdpGeHXQS0/CIrA5hhFhOTZd94IIJRS3G3AcIo=
>     sha256/jQJTbIh0grw0/1TkHSumWb+Fs0Ggogr621gT3PvPKG0=
>     sha256/C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=
> 		... 27 more
> ```
> 
> 
> Version: 1.65.0
> </issue_description>
> 
> <agent_instructions>Remove the certificate pinning
logic</agent_instructions>
> 
> ## Comments on the Issue (you are @claude[agent] in this section)
> 
> <comments>
> </comments>

---------

Co-authored-by: anthropic-code-agent[bot] <242468646+Claude@users.noreply.github.com>
Co-authored-by: msfjarvis <13348378+msfjarvis@users.noreply.github.com>
2026-06-02 09:27:35 +00:00
renovate[bot]andGitHub 7cbf87080d fix(deps): update dependency org.jetbrains.kotlinx:kotlinx-datetime to v0.8.0-0.6.x-compat 2026-06-02 04:01:12 +00:00
Harsh Shandilya 784bda4105 refactor: drop all uses of java.time 2026-06-02 09:26:43 +05:30
renovate[bot]andGitHub 8adcef03d6 chore(deps): update plugin dependencyanalysis to v3.14.1 2026-06-01 22:09:41 +00:00
Harsh Shandilya 7efa5600d0 fix: give some padding to the collapsed comment count 2026-06-02 00:22:19 +05:30
Harsh Shandilya cb75ef0673 feat: add an indicator for collapsed comment count
Update the tests to account for the new UI affordance
2026-06-02 00:16:29 +05:30
Harsh Shandilya ae8db6d851 chore: update changelog 2026-06-01 00:11:33 +05:30
Harsh Shandilya 265a00e9b1 refactor: match the reply API request shape more closely
Without this we get a failed 404 reply even though the comment goes through just fine
2026-05-31 23:59:35 +05:30
Harsh Shandilya 94aa52b669 feat: add reply screen ui 2026-05-31 23:59:35 +05:30
Harsh Shandilya ca2dbd758c feat: add reply viewmodel 2026-05-31 23:59:35 +05:30
Harsh Shandilya fa22dbe4cf feat: add reply quote insertion helper 2026-05-31 18:57:53 +05:30
Harsh Shandilya 481efd24ab fix: improve comment click UX semantics 2026-05-31 18:43:37 +05:30
Harsh Shandilya 19346101c6 fix: use the correct thread guide color for each level 2026-05-31 18:43:25 +05:30
Harsh Shandilya b19a48fa09 fix: bump to Gradle 9.6.0-rc-1 2026-05-31 12:11:43 +05:30
renovate[bot]andGitHub 5457c204cf fix(deps): update dependency com.slack.lint.compose:compose-lint-checks to v1.5.1 2026-05-31 00:40:05 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
05e0664d14 fix(deps): update screenshot to v0.0.1-alpha15 (#1181)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[com.android.compose.screenshot](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`0.0.1-alpha14` → `0.0.1-alpha15` |
![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.compose.screenshot:com.android.compose.screenshot.gradle.plugin/0.0.1-alpha15?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.compose.screenshot:com.android.compose.screenshot.gradle.plugin/0.0.1-alpha14/0.0.1-alpha15?slim=true)
|
|
[com.android.tools.screenshot:screenshot-validation-api](http://tools.android.com/)
| `0.0.1-alpha14` → `0.0.1-alpha15` |
![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.screenshot:screenshot-validation-api/0.0.1-alpha15?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.screenshot:screenshot-validation-api/0.0.1-alpha14/0.0.1-alpha15?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/msfjarvis/compose-lobsters).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-30 03:40:01 +00:00
Harsh Shandilya e91338b31e fix: improve comment tree rendering 2026-05-29 23:51:12 +05:30
Harsh Shandilya f77221aeea chore: update changelog 2026-05-29 22:53:32 +05:30
Harsh Shandilya 8ee7d5dc28 Revert "feat: revert comments UI back to current stable for hotfix release"
This reverts commit 6d932c84d5.
2026-05-29 22:45:47 +05:30
GitHub Actions 76cb3376b7 feat(release): start next development iteration 2026-05-29 16:44:51 +00:00
GitHub Actions 9ba9791de8 feat(release): bump version v1.65.0 2026-05-29 16:39:35 +00:00
Harsh Shandilya 43408c2bec chore: update changelog 2026-05-29 21:59:24 +05:30
Harsh Shandilya 7ec580d9c6 fix: update selectors and test assertions 2026-05-29 21:52:59 +05:30
Harsh Shandilya 18b33e550a fix: refresh test fixtures 2026-05-29 21:52:59 +05:30
Harsh Shandilya 6d932c84d5 feat: revert comments UI back to current stable for hotfix release
This will be reverted back after the release

Revert "feat: re-do comment UI to look like Boost for Reddit"

This reverts commit 03e0a13e1d.

Revert "build: add compose screenshot testing support"

This reverts commit 5992a5fa15.

Revert "feat: rework comment entry layout and enable upvote action"

This reverts commit 4904c76220.

Revert "feat: re-do comment upvote UI"

This reverts commit c32ed849d2.
2026-05-29 21:52:59 +05:30
Harsh Shandilya 03e0a13e1d feat: re-do comment UI to look like Boost for Reddit 2026-05-29 19:51:05 +05:30
Harsh Shandilya 5992a5fa15 build: add compose screenshot testing support 2026-05-29 19:44:16 +05:30
renovate[bot]andGitHub 6b84d5277b chore(deps): update dependency com.facebook:ktfmt to v0.63 2026-05-28 21:04:01 +00:00
renovate[bot]andGitHub f41c36c24c fix(deps): update dependency io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin to v6.9.0 2026-05-28 14:40:29 +00:00
renovate[bot]andGitHub 9b4449c890 chore(deps): update plugin dependencyanalysis to v3.14.0 2026-05-28 06:08:21 +00:00
Harsh Shandilya 4904c76220 feat: rework comment entry layout and enable upvote action 2026-05-28 00:12:13 +05:30
Harsh Shandilya c5a8dea7d2 Merge remote-tracking branches 'origin/renovate/com.diffplug.spotless-spotless-plugin-gradle-8.x' and 'origin/renovate/sentry'
* origin/renovate/com.diffplug.spotless-spotless-plugin-gradle-8.x:
  fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.6.0

* origin/renovate/sentry:
  fix(deps): update sentry to v8.43.0
2026-05-27 23:18:05 +05:30
renovate[bot]andGitHub 8930c0c5dc fix(deps): update sentry to v8.43.0 2026-05-27 17:47:05 +00:00
renovate[bot]andGitHub 5dc4afbf36 fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.6.0 2026-05-27 17:47:01 +00:00
renovate[bot]andHarsh Shandilya c3ec92582f fix(deps): update dependency com.slack.lint.compose:compose-lint-checks to v1.5.0 2026-05-27 23:15:00 +05:30
renovate[bot]andGitHub b8ee16be84 chore(deps): update plugin ksp to v2.3.9 2026-05-26 21:55:32 +00:00
Harsh Shandilya c32ed849d2 feat: re-do comment upvote UI 2026-05-27 00:33:46 +05:30
Harsh Shandilya 997b37ccb0 feat: switch expand/collapse UI to match Lobsters 2026-05-27 00:24:06 +05:30
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
976ed3b31a chore(deps): update plugin com.gradle.develocity to v4.4.2 (#1174)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| com.gradle.develocity | `4.4.1` → `4.4.2` |
![age](https://developer.mend.io/api/mc/badges/age/maven/com.gradle.develocity:com.gradle.develocity.gradle.plugin/4.4.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.gradle.develocity:com.gradle.develocity.gradle.plugin/4.4.1/4.4.2?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/msfjarvis/compose-lobsters).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-26 15:16:49 +00:00
Harsh Shandilya 75863cdf94 refactor: move CommentEntry composable to CommentEntry.kt 2026-05-26 17:13:04 +05:30
GitHub Actions a3687d0b4c feat(release): start next development iteration 2026-05-26 08:56:03 +00:00
GitHub Actions 2b571be006 feat(release): bump version v1.64.0 2026-05-26 08:49:32 +00:00
renovate[bot]andGitHub 820744409e fix(deps): update aboutlibraries to v14.2.1 2026-05-26 03:45:25 +00:00
Harsh Shandilya 1b6ae68e0d Fix login session detection and comment timestamps
Only persist Lobsters login cookies after the WebView proves the
session is authenticated, and treat anonymous lobster_trap cookies as
logged out state. Also clear the WebView cookie jar on logout so the
embedded login flow cannot silently restore a prior session.

Simplify comment timestamps to match the current site markup by
tracking one timestamp plus an edited flag instead of fabricating a
creation time we no longer receive.
2026-05-23 13:04:38 +05:30
renovate[bot]andGitHub 8c67a874a5 chore(deps): update plugin dependencyanalysis to v3.13.0 2026-05-21 22:43:29 +00:00
renovate[bot]andGitHub 8296f58ad9 fix(deps): update dependency io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin to v6.8.1 2026-05-21 18:11:24 +00:00
renovate[bot]andGitHub 1cd40a1383 fix(deps): update dependency io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin to v6.8.0 2026-05-21 13:28:46 +00:00
Harsh Shandilya dce9dc33fe chore: refresh baseline profiles 2026-05-21 18:56:33 +05:30