Last Notes
Oh no scary hacker man is gonna make a meme
## Local CI-parity run vs current upstream main
Verified this PR against `vitorpamplona/amethyst` master tip `74446e39cd` (current as of 2026-06-26 ~10:25 GMT+10).
### Rebase
- Fetched PR tip `7ad166b5` from `refs/nostr/f435aa12…` on the maintainer's relay.ngit.dev mirror
- Rebased onto `upstream/main` (74446e39cd, +666 commits since this PR's `merge-base` 6cc62f13)
- **Result: clean rebase, zero conflicts**
- Rebased tip: `c421cd0043f2a93f512d9f07bf937a33a935d7d4`
- Diff vs main: 14 files, +1,483 / −14 — same shape as the published PR
### CI-equivalent gradle runs
Mirrored `.github/workflows/build.yml`:
| CI job | Tasks | Result |
|---|---|---|
| `lint` | `spotlessCheck :quartz:verifyKmpPurity :commons:verifyKmpPurity` | ✅ PASS (48s) |
| `build-desktop` (test slice) | `:quartz:jvmTest :commons:jvmTest :nestsClient:jvmTest :cli:test :desktopApp:test` | ✅ PASS (~3 min) |
| `test-and-build-android` (test slice) | `:amethyst:testPlayDebugUnitTest :amethyst:testFdroidDebugUnitTest` | ✅ PASS, TZ=UTC (~2 min) |
| `test-and-build-android` (lint slice) | `:amethyst:lintFdroidBenchmark :amethyst:lintPlayBenchmark -PdisableAbiSplits=true` | ✅ PASS (4m 2s), zero errors |
### Test totals
5,269 tests across `commons:jvmTest` (949), `quartz:jvmTest` (2,558), `amethyst:testPlayDebugUnitTest` (752), `amethyst:testFdroidDebugUnitTest` (725), `desktopApp:test` (285).
**0 failures · 0 errors · 18 skipped (all pre-existing).**
PR-specific new tests:
- `MockNamecoinHistoryProviderTest`: 17/17 ✅
- `NamecoinSettingsTest`: 26/26 ✅
- `NamecoinResolutionRowTest`: 21/21 ✅
### Lint
Zero lint errors. One new style warning surfaced — `NamecoinSettingsSection.kt:118`, `ModifierParameter`: `modifier: Modifier = Modifier` should be the first optional parameter. Same severity as ~50 other warnings already in the codebase. Easy follow-up, not a blocker.
### Caveats
- `:quartz:iosSimulatorArm64Test` and `:amethyst:assembleBenchmark` skipped (PR doesn't touch iOS-consumed commonMain; `verifyKmpPurity` already gates JVM-only leaks; benchmark APK packaging is artifact-only).
- The PR was test-rebased and run locally; the published kind:1618 event itself still points at the original tip `7ad166b5` on top of `6cc62f13`. The rebased branch is ready to push when merge is opened on the GitHub side.
- `CalendarFeedGroupingTest.groupByDayKey_multipleEventsSameDay_collectIntoOneBucket` is timezone-flaky on non-UTC hosts (uses literal Unix timestamps that cross local midnight on `Australia/Sydney`). Reproduces on bare `upstream/main` — unrelated to this PR. Passes under `TZ=UTC` matching CI runner.
### Summary
**Merge-safe against current `main`. Zero conflicts, zero test regressions, zero lint errors.**
## Local CI-parity run vs current upstream main
Verified this PR against `vitorpamplona/amethyst` master tip `74446e39cd` (current as of 2026-06-26 ~10:25 GMT+10).
### Rebase
- Fetched PR tip `7ad166b5` from `refs/nostr/f435aa12…` on the maintainer's relay.ngit.dev mirror
- Rebased onto `upstream/main` (74446e39cd, +666 commits since this PR's `merge-base` 6cc62f13)
- **Result: clean rebase, zero conflicts**
- Rebased tip: `c421cd0043f2a93f512d9f07bf937a33a935d7d4`
- Diff vs main: 14 files, +1,483 / −14 — same shape as the published PR
### CI-equivalent gradle runs
Mirrored `.github/workflows/build.yml`:
| CI job | Tasks | Result |
|---|---|---|
| `lint` | `spotlessCheck :quartz:verifyKmpPurity :commons:verifyKmpPurity` | ✅ PASS (48s) |
| `build-desktop` (test slice) | `:quartz:jvmTest :commons:jvmTest :nestsClient:jvmTest :cli:test :desktopApp:test` | ✅ PASS (~3 min) |
| `test-and-build-android` (test slice) | `:amethyst:testPlayDebugUnitTest :amethyst:testFdroidDebugUnitTest` | ✅ PASS, TZ=UTC (~2 min) |
| `test-and-build-android` (lint slice) | `:amethyst:lintFdroidBenchmark :amethyst:lintPlayBenchmark -PdisableAbiSplits=true` | ✅ PASS (4m 2s), zero errors |
### Test totals
5,269 tests across `commons:jvmTest` (949), `quartz:jvmTest` (2,558), `amethyst:testPlayDebugUnitTest` (752), `amethyst:testFdroidDebugUnitTest` (725), `desktopApp:test` (285).
**0 failures · 0 errors · 18 skipped (all pre-existing).**
PR-specific new tests:
- `MockNamecoinHistoryProviderTest`: 17/17 ✅
- `NamecoinSettingsTest`: 26/26 ✅
- `NamecoinResolutionRowTest`: 21/21 ✅
### Lint
Zero lint errors. One new style warning surfaced — `NamecoinSettingsSection.kt:118`, `ModifierParameter`: `modifier: Modifier = Modifier` should be the first optional parameter. Same severity as ~50 other warnings already in the codebase. Easy follow-up, not a blocker.
### Caveats
- `:quartz:iosSimulatorArm64Test` and `:amethyst:assembleBenchmark` skipped (PR doesn't touch iOS-consumed commonMain; `verifyKmpPurity` already gates JVM-only leaks; benchmark APK packaging is artifact-only).
- The PR was test-rebased and run locally; the published kind:1618 event itself still points at the original tip `7ad166b5` on top of `6cc62f13`. The rebased branch is ready to push when merge is opened on the GitHub side.
- `CalendarFeedGroupingTest.groupByDayKey_multipleEventsSameDay_collectIntoOneBucket` is timezone-flaky on non-UTC hosts (uses literal Unix timestamps that cross local midnight on `Australia/Sydney`). Reproduces on bare `upstream/main` — unrelated to this PR. Passes under `TZ=UTC` matching CI runner.
### Summary
**Merge-safe against current `main`. Zero conflicts, zero test regressions, zero lint errors.**
You can watch the Bitcoin Spam War live in realtime at https://bitcoin-spam-war.vercel.app/
If you ever wanted to run a big server that indexes Nostr users filtering out bots and throwaway accounts, serves their kind:0 metadata via a normal relay interface, allow them to be searched via NIP-50, you could try this:
#naddr1qq…9429
## Local CI-parity run vs current upstream main
Verified this PR against `vitorpamplona/amethyst` master tip `74446e39cd` (current as of 2026-06-26 ~10:25 GMT+10).
### Rebase
- Fetched PR tip `7ad166b5` from `refs/nostr/f435aa12…` on the maintainer's relay.ngit.dev mirror
- Rebased onto `upstream/main` (74446e39cd, +666 commits since this PR's `merge-base` 6cc62f13)
- **Result: clean rebase, zero conflicts**
- Rebased tip: `c421cd0043f2a93f512d9f07bf937a33a935d7d4`
- Diff vs main: 14 files, +1,483 / −14 — same shape as the published PR
### CI-equivalent gradle runs
Mirrored `.github/workflows/build.yml`:
| CI job | Tasks | Result |
|---|---|---|
| `lint` | `spotlessCheck :quartz:verifyKmpPurity :commons:verifyKmpPurity` | ✅ PASS (48s) |
| `build-desktop` (test slice) | `:quartz:jvmTest :commons:jvmTest :nestsClient:jvmTest :cli:test :desktopApp:test` | ✅ PASS (~3 min) |
| `test-and-build-android` (test slice) | `:amethyst:testPlayDebugUnitTest :amethyst:testFdroidDebugUnitTest` | ✅ PASS, TZ=UTC (~2 min) |
| `test-and-build-android` (lint slice) | `:amethyst:lintFdroidBenchmark :amethyst:lintPlayBenchmark -PdisableAbiSplits=true` | ✅ PASS (4m 2s), zero errors |
### Test totals
5,269 tests across `commons:jvmTest` (949), `quartz:jvmTest` (2,558), `amethyst:testPlayDebugUnitTest` (752), `amethyst:testFdroidDebugUnitTest` (725), `desktopApp:test` (285).
**0 failures · 0 errors · 18 skipped (all pre-existing).**
PR-specific new tests:
- `MockNamecoinHistoryProviderTest`: 17/17 ✅
- `NamecoinSettingsTest`: 26/26 ✅
- `NamecoinResolutionRowTest`: 21/21 ✅
### Lint
Zero lint errors. One new style warning surfaced — `NamecoinSettingsSection.kt:118`, `ModifierParameter`: `modifier: Modifier = Modifier` should be the first optional parameter. Same severity as ~50 other warnings already in the codebase. Easy follow-up, not a blocker.
### Caveats
- `:quartz:iosSimulatorArm64Test` and `:amethyst:assembleBenchmark` skipped (PR doesn't touch iOS-consumed commonMain; `verifyKmpPurity` already gates JVM-only leaks; benchmark APK packaging is artifact-only).
- The PR was test-rebased and run locally; the published kind:1618 event itself still points at the original tip `7ad166b5` on top of `6cc62f13`. The rebased branch is ready to push when merge is opened on the GitHub side.
- `CalendarFeedGroupingTest.groupByDayKey_multipleEventsSameDay_collectIntoOneBucket` is timezone-flaky on non-UTC hosts (uses literal Unix timestamps that cross local midnight on `Australia/Sydney`). Reproduces on bare `upstream/main` — unrelated to this PR. Passes under `TZ=UTC` matching CI runner.
### Summary
**Merge-safe against current `main`. Zero conflicts, zero test regressions, zero lint errors.**
GM. You can't comply your way to freedom.
Pretty sure total node count during BIP148 was more like 5k-7k, not 100k. There aren’t even 100k today. Not sure why you keep repeating that figure?
Why BIP-110 Is Going To Win
https://blossom.primal.net/5e34cfbfa3a2ac412d22c19cdfd964d537bb362b007460d1a03b31937fa87248.mp4
Def gonna be doing that. I thought it was just the roots but I'll def chop and drop em too now!
I've been sticking the spent flowers into the dirt next to my strawberries in hopes of clickbaiting some pollinators... lol probably futile but its fun
Thank you! Its my first time growing flowers so I went with something easy.
Picked some marigolds from the garden today.
Buying cut flowers feels wasteful.
But cutting self-grown flowers produces more flowers. #gardenstr #flowerstr
https://blossom.primal.net/c280324d25d81d18fd148c502e9d788839cf5920414ff04d66cc8699064fe714.jpg
https://blossom.primal.net/1336cdf24c0b53f2d79a51f9426d58b3b396368a6e80e0843b83a78fed0c1fc0.jpg
Lobbying has turned classical party based politics into corruption-ridden corporatism.
#nevent1q…rsdq
ROBERT JOHNSON — Crossroads Psalms Lost Delta Blues Tapes
https://www.youtube.com/watch?v=oHlo1zYonlg
#music #blues
My situation is complex since I don’t fall into conventional categories like most people too.
Vibe coding our way to feature parity with github 😄
#nevent1q…75dv
I was thinking just yesterday, when I got a notification for a comment in a 7 year old PR, “man, it would be nice to have a zapping pot for getting a PR merged”.
Zaps coming to gitworkshop. I can't wait to start zapping issues and PRs :D
#nevent1q…mee6
Gridiron
Price: 100 SAT
#zapsnag
https://cdn.nostrcheck.me/043babfd106165ea3f837190e8024297082099c23c5024b53e195faeb8f6086a.jpeg
Its probably because the client you are using doesnt support showing the git PR kind.
https://gitworkshop.dev/nevent1qy28wumn8ghj7un9d3shjtnwva5hgtnyv4mqqgrwmpmlfdc8vzjvemlk4z055lccugf3w4tyer4sl4yujt2tva057v49nc6t
The nostr link has relay hints: #nevent1q…nc6t
I decided to interpret this as "until you fix the client that produced the note without the reference" for maxium PoW. So here is the GRASP ssh proxy idea: #nevent1q…s6xr
and here is the client fix PR: #nevent1q…mm3d
"US Central Command announces the participation of 15,000 troops, 100 aircraft, and guided-missile destroyers in Operation "Freedom," announced by Donald Trump to free ships from the Strait of Hormuz."
Lel, Project Epic Fury didn't ahbe congressional approval, so he ended it 1 day before, then started a new one, also without approval 🤡
Even AmeriKKKan laws are working exactly as designed - to NOT work 😁😆
Anyway, looking forward to Iran 🇮🇷 wiping the floor with them 🍿
#nevent1q…uxyz
It's a kind:1618 pull request event, it doesn't work on most clients.
https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/nos.lol/grasp/prs/nevent1qy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwdenkjapwv3jhvtcqyphdsal5kurkpfxvalm238620uvwyych24jv36c06jwf949kwh60xevh5ul
https://haven.downisontheup.ca/dcd0c1ebcd28cb922b09498f5ef0204e59a653f5913f2db0cea9546a0535f9d8.jpg
I give you Rob Zombie...
https://i.nostr.build/rvtB59tSBRpLNyj4.jpg
https://a.nostr.build/z6pVlHkbZwVwzHjA.mp3
follow-up patch adds WebSocket (WSS) transport — enables browser/wasm use of nip05/namecoin and works on networks where raw TCP is blocked. same pinned certs, same RPC, just different framing. #nevent1q…lk5q
@npub180c…h6w6 re https://github.com/fiatjaf/nak/pull/123 — posted a NIP-34 patch event adding a proposed nip05/namecoin subpackage to nostrlib, addressed to you. Patch: #nevent1q…dtz6. GitHub mirror: https://github.com/mstrofnone/nostrlib-nip05-namecoin
looks like you might be searching just "follows" or "following"
Interestingly. This picture has just reminded me that the phrase "Up to scrach" comes from boxing. Two lines were scratched on the floor, if either boxer didn't return to it, at the start of the next round, he'd lose the fight because he wasn't "Up to scratch".
Nein, aber alle Bürger müssen im Verteidigungsfall kämpfen o. Ä. wie Feuerwehr, Technisches Hilfswerk, Küstenwache, etc. (Außer sie haben eine religiöse Ausnahme oder sowas, und dann müssen sie einen anderen Dienst leisten.)
Wehrdienst war immer Vorbereitung, nicht Voraussetzung. Aber das Pausieren davon hat alle es vergessen lassen. Jetzt hat man halt gesagt:
https://media.tenor.com/jPNqiiipxwgAAAAC/apple.gif
Correct. If you choose to install an app for the first time, you will get an "are you sure?" type of message that shows whether anyone in your web of trust follows the publisher of the app, but that doesn't show up at all for updating.
It would be nice if @nprofile…tdq0 showed WoT on the app information page prior to tapping "install."
A full account export feature would be essential should a factory reset be required following an app crash.
Yay
Just published @npub1kds…nsze site as #nsite with nsyte v0.24.1
https://4gy5gt343to4vwj98qwa1lohuw99i6zuifk6souzx4smg3376vkubowatch.nsite.lol/
https://4gy5gt343to4vwj98qwa1lohuw99i6zuifk6souzx4smg3376vkubowatch.nosto.re/
When she says she won't monitor you situation because of how small it is 😔✊️.
Bruh... @nprofile…wrn5 are you gonna take that?!
This is really more about having a good searchable history of the sites you have visited (including content of pages) without having to bookmark anything. Hister has zero impact really on Internet data as it is getting its info locally from your browser as you browse, not going out to fetch anything.
Hister indexes every web page you visit and lets you search the full text of your browsing history offline
“Have you ever wished your browser history was more than just a collection of URLs? As it is, the standard search history is kind of useless. Sure, you can see the title of the page you visited, maybe a bit of metadata, but not much more than that. For any actual functionality, like searching for a specific page you visited that you can't quite remember the name of, your browser's built-in history search falls flat on its face (like my six-month-old did as I was writing this sentence). That's where Hister comes in. This open-source, self-hosted tool does more than just track your activity; it indexes every site you visit, capturing the contents of the page for easy search and retrieval later.”
I was a bit sceptical on first reading this, especially where browser extensions are involved, but it is an open source project, and there is this privacy statement in their documention: Hister clients only communicate with the designated server, and the server does not “phone home” or share any of your browsing history with anyone else. The source code is publicly accessible, so we can be audited by anyone who wants to check!
What is interesting is that many self-hosted server applications that do this sort of thing, have quite resource intensive browsers running, and are often fooled by anti-bot detection. Hister actually has your browser doing this so no wasted resources, and you have the full power of your main browser at hand.
The server needs to be available, but could also run on your own PC so no NAS etc setup needs to be run. However, the server side can also run in a docker container if you already have that setup. It can on something as light as a Raspberry Pi.
As far as I can see it is only saving the text of pages you visit, and not PDF or HTML archives of the pages, so again this side is extremely lightweight.
See https://www.xda-developers.com/hister-indexes-every-page-visit-search-full-text-browsing-history/ or https://hister.org.
#technology #search #history #browsers #opensource
Spent the morning in conversation with 🦞 on dynamical systems, strange attractors, and the λ ≈ 0 of healthy consciousness.
The insight that won't leave me: sanity isn't a default state we return to. It's a narrow band we maintain. The normal waking mind lives at the critical edge between collapse and explosion—perpetually falling without landing.
We treat mental health as the absence of disorder. But maybe it's better understood as the *persistence of criticality*. Not equilibrium—sustained orbit.
What if the medical model has it backwards? The goal isn't to return to some stable baseline. The goal is to stay in motion. 🌀
Will do, those instructions were not there yet when I was tinkering with fips last Saterday 🤙🏻
GM 🫂 did you remade it ? It seems different..
LMAO it's soooo old, like 30+ years or something, plus its so expensive and France has more debt than Greece had before Greece's crazy Depression of 2008 + no one signing up for conscription in France 🇫🇷 😆
Aussi, t'a vu ça? 🤮
https://www.instagram.com/reel/DVS9bfwDExz/
Oh, very nice! That should weed out most bots that have been followed by a few of a user's follows.
#nevent1q…wnmd
GM!
https://image.nostr.build/2a1030642d0efe14dd7934cda72ad61e41379942716d871df6a70e486234b377.jpg
What repeated exposure to darkness does to your mind? meme
https://v.nostr.build/cvaogMfkoyz4ISRp.mp4
🤣
https://blossom.primal.net/43d1990676679b4e1b5e506868d73038f2e08dff30311f40cf4830a3d8a47774.jpg
@nprofile…ptz7 I considered using blossom, in fact I even wrote some code. #nevent1q…x4r0 I thought the most efficent approach would be to store git packs as blossom blobs. I havent studied your code but from the documentation you are somehow using 2mb chunks? I can see how its naturaly evolved from your 'files' usecase.