From 404a3946ea45814725e6c9584dbe66f36c31c429 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sat, 25 Apr 2026 21:34:38 -0400 Subject: [PATCH 01/11] docs: draft Bigscreen DisplayID parser proof packet --- ...een-beyond-edid-proof-packet-2026-04-25.md | 225 ++++++++++++++++++ ...4-25-bigscreen-beyond-edid-kernel-quirk.md | 190 +++++++++++++++ 2 files changed, 415 insertions(+) create mode 100644 docs/bigscreen-beyond-edid-proof-packet-2026-04-25.md create mode 100644 src/posts/2026-04-25-bigscreen-beyond-edid-kernel-quirk.md diff --git a/docs/bigscreen-beyond-edid-proof-packet-2026-04-25.md b/docs/bigscreen-beyond-edid-proof-packet-2026-04-25.md new file mode 100644 index 0000000..4b40d21 --- /dev/null +++ b/docs/bigscreen-beyond-edid-proof-packet-2026-04-25.md @@ -0,0 +1,225 @@ +# Bigscreen Beyond EDID Non-Desktop Handling: Proof Packet + +Date: `2026-04-25` +Status: draft; pre-submission; quirk-only patch held; parser proof passed +Decision gate: Monday evening, `2026-04-27` + +## Abstract + +A Bigscreen Beyond head-mounted display attached to the `honey` workstation +reports EDID manufacturer `BIG`, product `0x1234`, and a DisplayID 2.0 +extension header whose primary-use field is `0x07`, corresponding to a +head-mounted virtual reality display. The required DRM semantic result is +`non_desktop = true`. + +A local downstream quirk patch can produce that result, but a quirk-only +upstream submission is not presently appropriate. An identical `BIG/0x1234` +quirk was submitted to `dri-devel` in May 2024, and reviewers directed the +problem toward DisplayID parsing rather than an EDID quirk table entry. + +That parser route now has a positive result: a no-quirk KUnit test on `honey` +against current `drm-misc-next` passed with this captured EDID and +`non_desktop = true`. The remaining decision is whether to send a +regression-test-only patch or to close the upstream submission lane as already +handled by current upstream behavior. + +## Primary Evidence + +| Measurement | Value | +| --- | --- | +| Host | `honey` | +| Kernel during capture | `6.19.5-7.xr.el10` | +| DRM connector | `/sys/class/drm/card0-DP-2` | +| EDID first 16 bytes | `00 ff ff ff ff ff ff 00 09 27 34 12 d2 04 00 00` | +| EDID manufacturer/product | `BIG/0x1234` | +| DisplayID extension prefix | `70 20 79 07 ...` | +| DisplayID version byte | `0x20` | +| DisplayID primary-use byte | `0x07` | +| Primary-use interpretation | head-mounted virtual reality display | +| Durable local capture | `Jesssullivan/Dell-7810:data/captures/honey/bigscreen-beyond-edid-2026-04-25.txt` | +| No-quirk KUnit proof | `Jesssullivan/Dell-7810:data/captures/honey/bigscreen-displayid-kunit-2026-04-25.txt` | +| KUnit base | `drm-misc-next` commit `03af6c3afc48` | +| KUnit result | `drm_test_connector_edid_displayid_hmd_primary_use` passed | + +The current evidence proves the device identity, the DisplayID primary-use +claim, and the upstream parser result for this EDID in a no-quirk kernel-tree +test. It does not yet prove a live connector-property result from an +unmodified upstream kernel booted on this hardware. + +## Structural EDID Preflight + +A local byte-level preflight of the captured EDID produced the following +results: + +| Check | Result | +| --- | --- | +| Total length | 256 bytes | +| Base EDID block checksum | `0x00` | +| DisplayID extension block checksum | `0x00` | +| DisplayID section checksum | `0x00` | +| DisplayID declared payload length | 121 bytes | +| First DisplayID block | tag `0x22`, revision `0x09`, payload length 40 bytes | +| First DisplayID block bounds | valid within the declared DisplayID section | +| Static parser expectation | `non_desktop = true` | + +This preflight showed that the captured EDID satisfies the structural +assumptions that current `drm-misc-next` appears to require before +`update_displayid_info()` can observe DisplayID version `0x20` and primary use +`0x07`. The subsequent KUnit proof confirms that parser expectation in-tree. + +## Prior-Art Record + +The relevant public history is a May 2024 `dri-devel` thread and the associated +freedesktop issue: + +- Sefa Eyeoglu submitted a `drm_edid.c` quirk adding `BIG/0x1234` to the + non-desktop table on `2024-05-17`. +- Jani Nikula requested that the issue include EDID evidence and possibly + `drm.debug=14` dmesg so that the quirk would remain explainable later. +- Sefa submitted a revised patch referencing freedesktop issue 39. +- Philipp Zabel observed that the EDID's DisplayID block already describes the + primary use as a head-mounted virtual reality display and that + `update_displayid_info()` should use this to set `non_desktop`. +- Sefa noted EDID conformance failures in the DisplayID data blocks. +- Jani stated that the DisplayID header primary-use value should be sufficient + for classification. + +Source links: + +- +- +- +- +- +- +- + +## Technical Implication + +The proposed upstream artifact cannot be framed as a novel EDID quirk. The +review record establishes a stronger expected invariant: + +```text +DisplayID version 2.0 ++ primary-use field HEAD_MOUNTED_VR +=> drm_display_info.non_desktop = true +``` + +Current `drm-misc-next` contains the intended decision point in +`update_displayid_info()` in `drivers/gpu/drm/drm_edid.c`. The DisplayID +iterator path in `drivers/gpu/drm/drm_displayid.c` exposes the extension +version and primary-use byte. The relevant constants are +`DISPLAY_ID_STRUCTURE_VER_20` and `PRIMARY_USE_HEAD_MOUNTED_VR`. + +The parser-path result is now positive. The technical question is no longer +whether a quirk is needed for this EDID in current `drm-misc-next`; it is +whether a small regression test is valuable upstream documentation for this +previously disputed hardware case. + +## Candidate Paths + +### Path A: Parser Or Regression-Test Submission + +This is the preferred technical route. + +1. Current `drm-misc-next` has been evaluated against the captured Bigscreen + Beyond EDID by KUnit on `honey`. +2. Because upstream sets `non_desktop`, retire the local quirk lane and + document the downstream cleanup. +3. If submitting upstream, prefer a regression-test-only patch with references + to the 2024 review thread and freedesktop issue 39. +4. Do not submit a parser fix unless a separate failure is found. +5. Submit any patch with references to the 2024 review + thread and freedesktop issue 39. + +### Path B: Quirk With Explicit Rebuttal + +This path is not preferred. It is acceptable only if Path A produces evidence +that the parser path cannot classify the connector correctly. + +The submission would need to include: + +- full EDID evidence; +- the upstream failure mode; +- the downstream result; +- a direct explanation of why the DisplayID header should not be relied upon + for this EDID; +- `drm.debug=14` dmesg if the failure mode is not self-evident. + +### Path C: Prior-Art Coordination + +Before any public patch that supersedes or reopens the 2024 work, contact Sefa +Eyeoglu if feasible. Ask whether they prefer to resend, co-author, review, or +be credited. Add credit trailers only with explicit consent. + +Path C can run in parallel with Path A. It should precede any public v1 that +uses Sefa's prior submission as a foundation. + +## Verification Routes + +### Offline Parser Proof + +Use the captured 256-byte EDID as a fixed test vector. This route is complete +for the current question: `drm_test_connector_edid_displayid_hmd_primary_use` +passed against `drm-misc-next` commit `03af6c3afc48` without any `BIG/0x1234` +quirk. + +Required output: + +- kernel tree and commit; +- test vector hash or stored EDID path; +- function or test target exercised; +- observed `non_desktop` result: true; +- whether any new patch is required. + +### Live Kernel Proof + +Boot or run an unmodified upstream-equivalent kernel on a host with the +headset attached. + +Required output: + +- kernel build identity; +- connector path; +- raw EDID; +- connector property result; +- dmesg excerpt if the result differs from the parser expectation. + +### Runtime Context Proof + +This route is explanatory rather than necessary for the kernel decision. It may +show why the classification matters to Monado, DRM leasing, and XoxdWM, but it +must not be used as a substitute for the DRM parser proof. + +## Hardware Required + +- Original Bigscreen Beyond headset reporting `BIG/0x1234`. +- Linux host with a DisplayPort path to the headset. +- GPU and DRM stack exposing the headset connector through `/sys/class/drm` + and `/dev/dri`. +- Ability to read EDID and connector properties without changing compositor or + service state. +- Optional OpenXR/Monado stack for runtime context after the kernel property is + verified. + +## Submission Rules + +- Do not send the current quirk-only patch before the `2026-04-27` decision + gate. +- Do not omit the 2024 thread from the patch rationale. +- Do not use `Reported-by`, `Suggested-by`, `Reviewed-by`, or + `Co-developed-by` without explicit permission. +- Do not include the Bigscreen Beyond 2e product ID `0x5095` unless separate + evidence is captured. +- Do not claim unpatched upstream runtime behavior until it has been measured. +- Do not include lab-private topology, credentials, or host-access details in + public kernel email. + +## Current Conclusion + +The strongest submission path remains Path A, with Path C running in parallel +if a public patch is sent. Path A now says current upstream parser behavior is +correct for the captured EDID. A quirk-only v1 would repeat the prior public +patch and would likely receive the same technical objection. The next useful +artifact is either a regression-test-only patch or a documented decision to +retire the downstream quirk carry. diff --git a/src/posts/2026-04-25-bigscreen-beyond-edid-kernel-quirk.md b/src/posts/2026-04-25-bigscreen-beyond-edid-kernel-quirk.md new file mode 100644 index 0000000..f21990f --- /dev/null +++ b/src/posts/2026-04-25-bigscreen-beyond-edid-kernel-quirk.md @@ -0,0 +1,190 @@ +--- +title: "Bigscreen Beyond EDID Non-Desktop Handling: Evidence, Prior Art, and Submission Path" +date: "2026-04-25" +description: "A pre-submission technical report for the Bigscreen Beyond EDID non-desktop lane, including live EDID evidence, prior dri-devel review, and a no-quirk DisplayID parser proof." +tags: ["linux", "kernel", "drm", "edid", "openxr", "monado", "hardware", "rocky-linux", "bci"] +published: false +slug: "bigscreen-beyond-edid-kernel-quirk" +category: "hardware" +source_repo: "tinyland-inc/linux-xr" +source_path: "drivers/gpu/drm/drm_edid.c" +--- + +## Abstract + +The original Bigscreen Beyond headset attached to my `honey` workstation +reports EDID manufacturer `BIG`, product `0x1234`, and a DisplayID 2.0 +extension whose primary-use byte is `0x07`, corresponding to a head-mounted +virtual reality display. The target Linux DRM connector semantic is therefore +`non_desktop = true`. + +The immediate conclusion is not that a new EDID quirk should be submitted. +Sefa Eyeoglu submitted the same `BIG/0x1234` quirk to `dri-devel` in May 2024, +and the review thread identified the DisplayID primary-use field as the +preferred basis for classification. A quirk-only v1 from me would duplicate +that public work and likely repeat the same review failure. + +The parser proof now exists. A no-quirk KUnit test on `honey`, run against +`drm-misc-next` commit `03af6c3afc48`, parsed the captured EDID and passed with +`non_desktop = true`. That result changes the candidate upstream artifact from +"add a product quirk" to either "submit a regression-test-only patch" or "close +the upstream submission lane because current upstream already handles this +EDID." + +## Measured Evidence + +The current local evidence was captured from the headset path on `honey` +without changing service state. + +| Measurement | Value | +| --- | --- | +| Host | `honey` | +| Kernel during capture | `6.19.5-7.xr.el10` | +| DRM connector | `/sys/class/drm/card0-DP-2` | +| EDID first 16 bytes | `00 ff ff ff ff ff ff 00 09 27 34 12 d2 04 00 00` | +| EDID manufacturer/product | `BIG/0x1234` | +| DisplayID extension prefix | `70 20 79 07 ...` | +| DisplayID version byte | `0x20` | +| DisplayID primary-use byte | `0x07` | +| Primary-use interpretation | head-mounted virtual reality display | +| Durable capture | `Jesssullivan/Dell-7810:data/captures/honey/bigscreen-beyond-edid-2026-04-25.txt` | +| No-quirk KUnit proof | `Jesssullivan/Dell-7810:data/captures/honey/bigscreen-displayid-kunit-2026-04-25.txt` | +| KUnit base | `drm-misc-next` commit `03af6c3afc48` | +| KUnit result | `drm_test_connector_edid_displayid_hmd_primary_use` passed | + +This evidence proves the device identity, the DisplayID header claim, and the +upstream parser result for this EDID in a no-quirk KUnit test. It does not yet +prove a live connector-property result from an unmodified upstream kernel booted +on this hardware. + +I also ran a byte-level preflight against the captured EDID. The result is +important because it moves the next question from conjecture to a narrow parser +test. + +| Check | Result | +| --- | --- | +| Total length | 256 bytes | +| Base EDID block checksum | `0x00` | +| DisplayID extension block checksum | `0x00` | +| DisplayID section checksum | `0x00` | +| DisplayID declared payload length | 121 bytes | +| First DisplayID block | tag `0x22`, revision `0x09`, payload length 40 bytes | +| First DisplayID block bounds | valid within the declared DisplayID section | +| Static parser expectation | `non_desktop = true` | + +This was a reason to prioritize the parser route rather than a duplicate quirk. +The KUnit result now confirms the parser route in-tree. + +## Prior Public Review + +The relevant upstream record is already public: + +| Date | Source | Result | +| --- | --- | --- | +| 2024-05-17 | [Sefa Eyeoglu initial patch](https://lists.freedesktop.org/archives/dri-devel/2024-May/454216.html) | Submitted a `drm_edid.c` quirk for `BIG/0x1234`. | +| 2024-05-17 | [Jani Nikula evidence request](https://lists.freedesktop.org/archives/dri-devel/2024-May/454226.html) | Requested EDID evidence, and possibly `drm.debug=14` dmesg, in a referenced issue. | +| 2024-05-17 | [Sefa revised patch](https://lists.freedesktop.org/archives/dri-devel/2024-May/454244.html) | Added the freedesktop issue reference. | +| 2024-05-17 | [Philipp Zabel parser objection](https://lists.freedesktop.org/archives/dri-devel/2024-May/454248.html) | Noted that the DisplayID extension marks the device as an HMD and that `update_displayid_info()` should set `non_desktop`. | +| 2024-05-17 | [Sefa EDID conformance note](https://lists.freedesktop.org/archives/dri-devel/2024-May/454255.html) | Reported DisplayID conformance failures from `edid-decode --check`. | +| 2024-05-20 | [Jani Nikula parser-position reply](https://lists.freedesktop.org/archives/dri-devel/2024-May/454416.html) | Reiterated that the primary-use value should be deducible from the DisplayID header. | +| 2024-05-17 | [freedesktop issue 39](https://gitlab.freedesktop.org/drm/misc/kernel/-/work_items/39) | Recorded full EDID evidence for the same headset identity. | + +This history changes the submission burden. The kernel-facing question is no +longer "can a product quirk classify this headset?" The more precise question +is whether the current DisplayID parser classifies this EDID correctly, and if +not, why not. + +## Kernel Decision Point + +The relevant invariant is: + +```text +DisplayID version 2.0 ++ primary-use field HEAD_MOUNTED_VR +=> drm_display_info.non_desktop = true +``` + +Current `drm-misc-next` has logic in `update_displayid_info()` in +`drivers/gpu/drm/drm_edid.c` to set `non_desktop` from DisplayID primary use. +The iterator path in `drivers/gpu/drm/drm_displayid.c` exposes the DisplayID +extension version and primary-use byte. The local EDID contains the same +critical header pattern as the 2024 public issue: + +```text +70 20 79 07 ... +``` + +where `0x20` is DisplayID 2.0 and `0x07` is the head-mounted VR primary-use +code. + +The direct KUnit result is the important proof point: + +```text +[PASSED] drm_test_connector_edid_displayid_hmd_primary_use +Testing complete. Ran 1 tests: passed: 1 +``` + +No `BIG/0x1234` quirk was applied in that test tree. + +## Submission Paths + +### Path A: Parser Or Regression-Test Patch + +This is now the supported route. Current `drm-misc-next` has been evaluated +against the full captured EDID and derives `non_desktop` without a product +quirk. If I send a patch, it should be a regression-test-only patch that records +the previously disputed hardware case and links the 2024 review thread. + +### Path B: Quirk With Explicit Rebuttal + +This route is only defensible if Path A shows that the parser route cannot +classify this EDID correctly. A quirk submission would need to include the full +EDID, the upstream failure result, the downstream result, and a direct response +to the 2024 DisplayID objection. + +### Path C: Coordination With Sefa Eyeoglu + +Before I send a public patch that supersedes or reopens the 2024 work, I should +attempt to coordinate with Sefa Eyeoglu. Credit trailers such as `Reported-by`, +`Suggested-by`, `Reviewed-by`, or `Co-developed-by` require explicit consent. + +Path A and Path C can proceed in parallel. A quirk-only patch should remain +held until the decision gate on Monday evening, `2026-04-27`. + +## Verification Requirements + +The minimum proof packet for a kernel submission should include: + +- full 256-byte EDID evidence; +- kernel tree and commit used for parser proof; +- observed `non_desktop` result on current upstream or an upstream-equivalent + build; +- explanation of whether the result comes from DisplayID parsing or an EDID + quirk; +- references to the 2024 `dri-devel` thread and freedesktop issue 39; +- no claims about Bigscreen Beyond 2e product ID `0x5095` unless separately + evidenced. + +The Monado/XoxdWM runtime path remains useful context, but it is not a +substitute for the DRM parser result. Runtime proof explains why the +classification matters. Parser proof determines what should be sent upstream. + +## Current Status + +The local quirk branch remains useful as a comparison artifact, but it is not +appropriate for public submission: + +| Field | Value | +| --- | --- | +| Worktree | `/Volumes/linux-xr-cs/linux-xr-drm-misc-edid-check` | +| Branch | `jess/upstream-bigscreen-edid-v1-drm-misc` | +| Candidate commit | `6130bc78eefb` | +| Status | held; do not send as v1 | +| Decision gate | Monday evening, `2026-04-27` | + +The parser-path proof against the captured EDID now shows that current upstream +already handles the device. The responsible outcome is to avoid a duplicate +quirk and instead clean up the downstream carry, unless a regression-test-only +patch is worth submitting to preserve this exact case in DRM tests. + +-Jess From 98878fe3dd39bff468f3d936f465cc80f198e744 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sat, 25 Apr 2026 22:29:28 -0400 Subject: [PATCH 02/11] Migrate from rolldown-vite 7.3.1 to native Vite 8.0.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop the npm:rolldown-vite alias and overrides block, bump @sveltejs/vite-plugin-svelte from v6 to v7. No config renames needed — vite.config.ts had no rollupOptions or advancedChunks. Build, typecheck, lint, and 88/88 unit tests pass cleanly. --- package-lock.json | 291 ++++++++++++++++++++++++---------------------- package.json | 9 +- 2 files changed, 154 insertions(+), 146 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4249e79..433a00c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "@playwright/test": "^1.59.1", "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.57.1", - "@sveltejs/vite-plugin-svelte": "^6.2.4", + "@sveltejs/vite-plugin-svelte": "^7.0.0", "@tailwindcss/vite": "^4.2.2", "@tummycrypt/vite-plugin-a11y": "^0.2.1", "@tummycrypt/vite-plugin-skeleton-colors": "^0.2.1", @@ -51,7 +51,7 @@ "tsx": "^4.21.0", "typescript": "^5.9.3", "typescript-eslint": "^8.58.2", - "vite": "npm:rolldown-vite@^7.3.1", + "vite": "^8.0.10", "vitest": "^4.1.4" } }, @@ -479,21 +479,21 @@ "license": "Apache-2.0" }, "node_modules/@emnapi/core": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.0.tgz", - "integrity": "sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.0.tgz", - "integrity": "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "dev": true, "license": "MIT", "optional": true, @@ -502,9 +502,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", - "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, @@ -2025,20 +2025,22 @@ ] }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", - "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, "node_modules/@noble/ciphers": { @@ -4374,20 +4376,10 @@ "@opentelemetry/api": "^1.1.0" } }, - "node_modules/@oxc-project/runtime": { - "version": "0.101.0", - "resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.101.0.tgz", - "integrity": "sha512-t3qpfVZIqSiLQ5Kqt/MC4Ge/WCOGrrcagAdzTcDaggupjiGxUx4nJF2v6wUCXWSzWHn5Ns7XLv13fCJEwCOERQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@oxc-project/types": { - "version": "0.101.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.101.0.tgz", - "integrity": "sha512-nuFhqlUzJX+gVIPPfuE6xurd4lST3mdcWOhyK/rZO0B9XWMKm79SuszIQEnSMmmDhq1DC8WWVYGVd+6F93o1gQ==", + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz", + "integrity": "sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==", "dev": true, "license": "MIT", "funding": { @@ -4737,9 +4729,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.53.tgz", - "integrity": "sha512-Ok9V8o7o6YfSdTTYA/uHH30r3YtOxLD6G3wih/U9DO0ucBBFq8WPt/DslU53OgfteLRHITZny9N/qCUxMf9kjQ==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==", "cpu": [ "arm64" ], @@ -4754,9 +4746,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.53.tgz", - "integrity": "sha512-yIsKqMz0CtRnVa6x3Pa+mzTihr4Ty+Z6HfPbZ7RVbk1Uxnco4+CUn7Qbm/5SBol1JD/7nvY8rphAgyAi7Lj6Vg==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==", "cpu": [ "arm64" ], @@ -4771,9 +4763,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.53.tgz", - "integrity": "sha512-GTXe+mxsCGUnJOFMhfGWmefP7Q9TpYUseHvhAhr21nCTgdS8jPsvirb0tJwM3lN0/u/cg7bpFNa16fQrjKrCjQ==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz", + "integrity": "sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==", "cpu": [ "x64" ], @@ -4788,9 +4780,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.53.tgz", - "integrity": "sha512-9Tmp7bBvKqyDkMcL4e089pH3RsjD3SUungjmqWtyhNOxoQMh0fSmINTyYV8KXtE+JkxYMPWvnEt+/mfpVCkk8w==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz", + "integrity": "sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==", "cpu": [ "x64" ], @@ -4805,9 +4797,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.53.tgz", - "integrity": "sha512-a1y5fiB0iovuzdbjUxa7+Zcvgv+mTmlGGC4XydVIsyl48eoxgaYkA3l9079hyTyhECsPq+mbr0gVQsFU11OJAQ==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz", + "integrity": "sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==", "cpu": [ "arm" ], @@ -4822,9 +4814,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.53.tgz", - "integrity": "sha512-bpIGX+ov9PhJYV+wHNXl9rzq4F0QvILiURn0y0oepbQx+7stmQsKA0DhPGwmhfvF856wq+gbM8L92SAa/CBcLg==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==", "cpu": [ "arm64" ], @@ -4839,9 +4831,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.53.tgz", - "integrity": "sha512-bGe5EBB8FVjHBR1mOLOPEFg1Lp3//7geqWkU5NIhxe+yH0W8FVrQ6WRYOap4SUTKdklD/dC4qPLREkMMQ855FA==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz", + "integrity": "sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==", "cpu": [ "arm64" ], @@ -4855,10 +4847,44 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.53.tgz", - "integrity": "sha512-qL+63WKVQs1CMvFedlPt0U9PiEKJOAL/bsHMKUDS6Vp2Q+YAv/QLPu8rcvkfIMvQ0FPU2WL0aX4eWwF6e/GAnA==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==", "cpu": [ "x64" ], @@ -4873,9 +4899,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.53.tgz", - "integrity": "sha512-VGl9JIGjoJh3H8Mb+7xnVqODajBmrdOOb9lxWXdcmxyI+zjB2sux69br0hZJDTyLJfvBoYm439zPACYbCjGRmw==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz", + "integrity": "sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==", "cpu": [ "x64" ], @@ -4890,9 +4916,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.53.tgz", - "integrity": "sha512-B4iIserJXuSnNzA5xBLFUIjTfhNy7d9sq4FUMQY3GhQWGVhS2RWWzzDnkSU6MUt7/aHUrep0CdQfXUJI9D3W7A==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==", "cpu": [ "arm64" ], @@ -4907,9 +4933,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.53.tgz", - "integrity": "sha512-BUjAEgpABEJXilGq/BPh7jeU3WAJ5o15c1ZEgHaDWSz3LB881LQZnbNJHmUiM4d1JQWMYYyR1Y490IBHi2FPJg==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz", + "integrity": "sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==", "cpu": [ "wasm32" ], @@ -4917,16 +4943,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.0" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { - "node": ">=14.0.0" + "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.53.tgz", - "integrity": "sha512-s27uU7tpCWSjHBnxyVXHt3rMrQdJq5MHNv3BzsewCIroIw3DJFjMH1dzCPPMUFxnh1r52Nf9IJ/eWp6LDoyGcw==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz", + "integrity": "sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==", "cpu": [ "arm64" ], @@ -4941,9 +4969,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.53.tgz", - "integrity": "sha512-cjWL/USPJ1g0en2htb4ssMjIycc36RvdQAx1WlXnS6DpULswiUTVXPDesTifSKYSyvx24E0YqQkEm0K/M2Z/AA==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz", + "integrity": "sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==", "cpu": [ "x64" ], @@ -4958,9 +4986,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", - "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz", + "integrity": "sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==", "dev": true, "license": "MIT" }, @@ -5188,42 +5216,23 @@ } }, "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.4.tgz", - "integrity": "sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.0.0.tgz", + "integrity": "sha512-ILXmxC7HAsnkK2eslgPetrqqW1BKSL7LktsFgqzNj83MaivMGZzluWq32m25j2mDOjmSKX7GGWahePhuEs7P/g==", "dev": true, "license": "MIT", "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "deepmerge": "^4.3.1", "magic-string": "^0.30.21", "obug": "^2.1.0", - "vitefu": "^1.1.1" + "vitefu": "^1.1.2" }, "engines": { "node": "^20.19 || ^22.12 || >=24" }, "peerDependencies": { - "svelte": "^5.0.0", - "vite": "^6.3.0 || ^7.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.2.tgz", - "integrity": "sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "obug": "^2.1.0" - }, - "engines": { - "node": "^20.19 || ^22.12 || >=24" - }, - "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", - "svelte": "^5.0.0", - "vite": "^6.3.0 || ^7.0.0" + "svelte": "^5.46.4", + "vite": "^8.0.0-beta.7 || ^8.0.0" } }, "node_modules/@swc/helpers": { @@ -12513,9 +12522,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -12649,9 +12658,9 @@ } }, "node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "dev": true, "funding": [ { @@ -13428,14 +13437,14 @@ "license": "Unlicense" }, "node_modules/rolldown": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.53.tgz", - "integrity": "sha512-Qd9c2p0XKZdgT5AYd+KgAMggJ8ZmCs3JnS9PTMWkyUfteKlfmKtxJbWTHkVakxwXs1Ub7jrRYVeFeF7N0sQxyw==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz", + "integrity": "sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.101.0", - "@rolldown/pluginutils": "1.0.0-beta.53" + "@oxc-project/types": "=0.127.0", + "@rolldown/pluginutils": "1.0.0-rc.17" }, "bin": { "rolldown": "bin/cli.mjs" @@ -13444,19 +13453,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-beta.53", - "@rolldown/binding-darwin-arm64": "1.0.0-beta.53", - "@rolldown/binding-darwin-x64": "1.0.0-beta.53", - "@rolldown/binding-freebsd-x64": "1.0.0-beta.53", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.53", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.53", - "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.53", - "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.53", - "@rolldown/binding-linux-x64-musl": "1.0.0-beta.53", - "@rolldown/binding-openharmony-arm64": "1.0.0-beta.53", - "@rolldown/binding-wasm32-wasi": "1.0.0-beta.53", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.53", - "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.53" + "@rolldown/binding-android-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-x64": "1.0.0-rc.17", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.17", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17" } }, "node_modules/rollup-plugin-visualizer": { @@ -14338,14 +14349,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -14801,21 +14812,17 @@ } }, "node_modules/vite": { - "name": "rolldown-vite", - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/rolldown-vite/-/rolldown-vite-7.3.1.tgz", - "integrity": "sha512-LYzdNAjRHhF2yA4JUQm/QyARyi216N2rpJ0lJZb8E9FU2y5v6Vk+xq/U4XBOxMefpWixT5H3TslmAHm1rqIq2w==", - "deprecated": "Use this package to migrate from Vite 7 to Vite 8. For the most recent updates, migrate to Vite 8 once you're ready.", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz", + "integrity": "sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/runtime": "0.101.0", - "fdir": "^6.5.0", - "lightningcss": "^1.30.2", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rolldown": "1.0.0-beta.53", - "tinyglobby": "^0.2.15" + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.10", + "rolldown": "1.0.0-rc.17", + "tinyglobby": "^0.2.16" }, "bin": { "vite": "bin/vite.js" @@ -14831,7 +14838,8 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "esbuild": "^0.27.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", @@ -14846,6 +14854,9 @@ "@types/node": { "optional": true }, + "@vitejs/devtools": { + "optional": true + }, "esbuild": { "optional": true }, diff --git a/package.json b/package.json index c02e54f..fb17a4c 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "puppeteer": "^23.11.1", "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.57.1", - "@sveltejs/vite-plugin-svelte": "^6.2.4", + "@sveltejs/vite-plugin-svelte": "^7.0.0", "@tailwindcss/vite": "^4.2.2", "@tummycrypt/vite-plugin-a11y": "^0.2.1", "@tummycrypt/vite-plugin-skeleton-colors": "^0.2.1", @@ -44,7 +44,7 @@ "typescript": "^5.9.3", "typescript-eslint": "^8.58.2", "@vitest/coverage-v8": "^4.1.4", - "vite": "npm:rolldown-vite@^7.3.1", + "vite": "^8.0.10", "vitest": "^4.1.4" }, "dependencies": { @@ -63,8 +63,5 @@ "type": "module", "workspaces": [ "packages/*" - ], - "overrides": { - "vite": "npm:rolldown-vite@^7.3.1" - } + ] } From e8a82c78ac8bd15e7dcbaf6a58033470bbfac2c0 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sat, 25 Apr 2026 23:46:46 -0400 Subject: [PATCH 03/11] docs: update chapel rt draft stance --- ...producible-host-probes-nix-chapel-dhall.md | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md index f77f5ff..7a816f5 100644 --- a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md +++ b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md @@ -1,13 +1,13 @@ --- -title: "Characterizing a Dual-Socket BCI Server Before and After RT" +title: "Characterizing a Dual-Socket BCI Server Before Claiming RT Wins" date: "2026-04-25" -description: "Building a reproducible host-characterization pipeline for a Dell T7810 BCI server-- generic lane baseline captured, RT lane next, with Chapel probes, PBT verification, and Nix+Dhall for reproducibility." +description: "A draft result note for a Dell T7810 BCI server: first generic/RT host-characterization packet captured, generic repeats captured, no RT improvement claim yet." tags: ["Chapel", "Nix", "Dhall", "NUMA", "hardware", "reproducibility", "RT"] published: false slug: "reproducible-host-probes-nix-chapel-dhall" category: "hardware" source_repo: "Jesssullivan/Dell-7810" -source_path: "docs/platform/honey-chapel-live-result-2026-04-23.md" +source_path: "docs/platform/honey-rt-smi-hwlat-chapel-series-2026-04-25.md" --- I've been tuning a Dell Precision T7810 as a BCI server for real-time XR work-- two Xeon E5-2630 v3 processors, 32 threads, two NUMA nodes, the kind of dual-socket Haswell-era machine that rewards you for thinking about memory topology and punishes you for ignoring it. @@ -21,7 +21,7 @@ The goal is to characterize this host's parallel and scheduling behavior across `honey` is a Dell Precision T7810 running Rocky Linux with a heavily tuned kernel cmdline-- `tsc=nowatchdog`, `nohz_full`, `isolcpus`, `irqaffinity`, the works. Two kernel lanes are installed: - **Generic**: `6.19.5-7.xr.el10`, `PREEMPT_DYNAMIC` -- the current baseline -- **RT**: `6.19.5-rt1-8.xr.el10`, `PREEMPT_RT` -- booted and validated, SMI storm observed (1.6 SMIs/sec) +- **RT**: `6.19.5-rt1-8.xr.el10`, `PREEMPT_RT` -- booted once for a bounded packet, then returned to generic The question isn't whether RT is faster. The question is: what does this host's parallel behavior look like on each lane, measured the same way, with the same probe, captured in a format I can cite in a paper? @@ -49,31 +49,40 @@ forall ch in 0.. Date: Sat, 25 Apr 2026 23:59:50 -0400 Subject: [PATCH 04/11] feat: add ActivityPub pulse pipeline with mock outbox and /pulse route Source-agnostic AP ingestion pipeline: prebuild script reads from mock JSON now, switches to real AP outbox URL via env var when tinyland.dev is ready. AS2-compliant schema with tl: namespace extensions for bird sightings, bike rides, code activity, sensor readings, and freeform notes. Five kind-specific card components with filter bar and optional client-side live refresh. 75 mock activities spanning 90 days with real Maine bird species, Lewiston/Auburn routes, and actual repo names. --- package.json | 2 +- scripts/data/mock-outbox.json | 2382 +++++++++++++++++ scripts/generate-activity-stream.mts | 58 + scripts/generate-mock-outbox.mts | 253 ++ src/lib/activitypub/config.ts | 7 + src/lib/activitypub/fetch.ts | 27 + src/lib/activitypub/resolve.ts | 90 + src/lib/activitypub/types.ts | 97 + src/lib/components/ActivityCard.svelte | 22 + src/lib/components/ActivityStream.svelte | 85 + src/lib/components/activity/BikeCard.svelte | 42 + src/lib/components/activity/BirdCard.svelte | 44 + src/lib/components/activity/CodeCard.svelte | 41 + src/lib/components/activity/NoteCard.svelte | 32 + src/lib/components/activity/SensorCard.svelte | 32 + src/routes/+layout.svelte | 1 + src/routes/pulse/+page.svelte | 22 + src/routes/pulse/+page.ts | 9 + static/data/activity-outbox.json | 2382 +++++++++++++++++ 19 files changed, 5627 insertions(+), 1 deletion(-) create mode 100644 scripts/data/mock-outbox.json create mode 100644 scripts/generate-activity-stream.mts create mode 100644 scripts/generate-mock-outbox.mts create mode 100644 src/lib/activitypub/config.ts create mode 100644 src/lib/activitypub/fetch.ts create mode 100644 src/lib/activitypub/resolve.ts create mode 100644 src/lib/activitypub/types.ts create mode 100644 src/lib/components/ActivityCard.svelte create mode 100644 src/lib/components/ActivityStream.svelte create mode 100644 src/lib/components/activity/BikeCard.svelte create mode 100644 src/lib/components/activity/BirdCard.svelte create mode 100644 src/lib/components/activity/CodeCard.svelte create mode 100644 src/lib/components/activity/NoteCard.svelte create mode 100644 src/lib/components/activity/SensorCard.svelte create mode 100644 src/routes/pulse/+page.svelte create mode 100644 src/routes/pulse/+page.ts create mode 100644 static/data/activity-outbox.json diff --git a/package.json b/package.json index fb17a4c..c8f7198 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "private": true, "scripts": { "dev": "vite dev", - "prebuild": "tsx scripts/generate-search-index.mts && tsx scripts/optimize-images.mts && tsx scripts/render-mermaid.mts && tsx scripts/generate-blog-stats.mts && tsx scripts/generate-tag-graph.mts && tsx scripts/generate-photo-gallery.mts", + "prebuild": "tsx scripts/generate-search-index.mts && tsx scripts/optimize-images.mts && tsx scripts/render-mermaid.mts && tsx scripts/generate-blog-stats.mts && tsx scripts/generate-tag-graph.mts && tsx scripts/generate-photo-gallery.mts && tsx scripts/generate-activity-stream.mts", "build": "vite build", "postbuild": "tsx scripts/generate-redirects.mts && pagefind --site build", "test:redirects": "npm run build && tsx scripts/validate-redirects.mts", diff --git a/scripts/data/mock-outbox.json b/scripts/data/mock-outbox.json new file mode 100644 index 0000000..355f8b3 --- /dev/null +++ b/scripts/data/mock-outbox.json @@ -0,0 +1,2382 @@ +{ + "@context": "https://www.w3.org/ns/activitystreams", + "id": "https://tinyland.dev/@jesssullivan/outbox", + "type": "OrderedCollection", + "totalItems": 75, + "orderedItems": [ + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4211517840947f71079d2ce769508b60", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-26T06:38:25.923Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4211517840947f71079d2ce769508b60", + "published": "2026-04-26T06:38:25.923Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/171c83ff7da77e555ba84723b44f6e4d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T18:54:45.491Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/171c83ff7da77e555ba84723b44f6e4d", + "published": "2026-04-24T18:54:45.491Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+38/-18 lines across 4 commits in jesssullivan.github.io.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 38, + "linesRemoved": 18, + "commits": 4, + "repository": "jesssullivan.github.io", + "languages": [ + "Rust", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/844b19e6c404a031e441d959af729444", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T20:27:07.482Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/844b19e6c404a031e441d959af729444", + "published": "2026-04-23T20:27:07.482Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 White-breasted Nuthatch at Range Pond State Park.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5fc07342785656832462196def454c95", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T11:47:22.024Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5fc07342785656832462196def454c95", + "published": "2026-04-22T11:47:22.024Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 20.2C, 39% humidity, CO2 473ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 20.2, + "unit": "C" + }, + { + "name": "Humidity", + "value": 39, + "unit": "%" + }, + { + "name": "CO2", + "value": 473, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8baad0ce2f103e6155cfe753f1e713b2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T10:58:38.890Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8baad0ce2f103e6155cfe753f1e713b2", + "published": "2026-04-21T10:58:38.890Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/76663f8cd2b0c17410f6f7a488411ab9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T05:15:14.737Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/76663f8cd2b0c17410f6f7a488411ab9", + "published": "2026-04-20T05:15:14.737Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a3aa502a82274eff9a9f2b778c5d89f5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-18T19:33:51.722Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a3aa502a82274eff9a9f2b778c5d89f5", + "published": "2026-04-18T19:33:51.722Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+249/-116 lines across 6 commits in XoxdWM.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 249, + "linesRemoved": 116, + "commits": 6, + "repository": "XoxdWM", + "languages": [ + "Rust", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f168aced1900ff654ffbb047b0216012", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T17:15:09.917Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f168aced1900ff654ffbb047b0216012", + "published": "2026-04-17T17:15:09.917Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

7.6 mi ride along the Nezinscot River road. 29 minutes, 192 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 7.6, + "durationMinutes": 29, + "route": "Nezinscot River road", + "elevationGainFeet": 192 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6349659ddbd5aa54f291c2bd477102df", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T12:19:14.524Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6349659ddbd5aa54f291c2bd477102df", + "published": "2026-04-16T12:19:14.524Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+240/-69 lines across 7 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 240, + "linesRemoved": 69, + "commits": 7, + "repository": "scheduling-kit", + "languages": [ + "Nix", + "Zig" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/70dcf1eea677ecef7446ad7758a6f687", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T06:59:04.235Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/70dcf1eea677ecef7446ad7758a6f687", + "published": "2026-04-15T06:59:04.235Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4bf8deda84a2d446645bec1aef7cb37f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T23:23:09.634Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4bf8deda84a2d446645bec1aef7cb37f", + "published": "2026-04-13T23:23:09.634Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 25.3C, 51% humidity, CO2 849ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 25.3, + "unit": "C" + }, + { + "name": "Humidity", + "value": 51, + "unit": "%" + }, + { + "name": "CO2", + "value": 849, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/28c58570712d7439caebd0ab1020c539", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T00:13:40.251Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/28c58570712d7439caebd0ab1020c539", + "published": "2026-04-13T00:13:40.251Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Bradbury Mountain.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/528e338a58de1cbfe63dd1cf736be68b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-11T13:48:53.741Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/528e338a58de1cbfe63dd1cf736be68b", + "published": "2026-04-11T13:48:53.741Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/85fb67b23709f2fe936d527762070e81", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-10T09:14:22.538Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/85fb67b23709f2fe936d527762070e81", + "published": "2026-04-10T09:14:22.538Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/415fc624e8866df8c963d644e1f1be54", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-09T09:59:25.056Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/415fc624e8866df8c963d644e1f1be54", + "published": "2026-04-09T09:59:25.056Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7231a8ae524df3aad3a3f827f45aa5a4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-08T01:27:47.581Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7231a8ae524df3aad3a3f827f45aa5a4", + "published": "2026-04-08T01:27:47.581Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Black-capped Chickadees at Lost Valley trails- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Black-capped Chickadee", + "scientificName": "Poecile atricapillus", + "location": { + "type": "Place", + "name": "Lost Valley trails", + "latitude": 44.0889, + "longitude": -70.2456 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c5de567b7e605d368fd754a4e3236a47", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-07T01:29:19.980Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c5de567b7e605d368fd754a4e3236a47", + "published": "2026-04-07T01:29:19.980Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3/-2 lines across 2 commits in cmux.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 2, + "commits": 2, + "repository": "cmux", + "languages": [ + "Svelte", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/82a4da6c231d89280eb76e9c2ea5f7d9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-05T13:22:07.137Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/82a4da6c231d89280eb76e9c2ea5f7d9", + "published": "2026-04-05T13:22:07.137Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 White-breasted Nuthatch at Androscoggin Riverlands.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09bcca81620daea6b6a7cde10721062d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-04T08:58:28.128Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09bcca81620daea6b6a7cde10721062d", + "published": "2026-04-04T08:58:28.128Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7f9faaf116d3cb8ae69958428614b493", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-03T06:10:48.133Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7f9faaf116d3cb8ae69958428614b493", + "published": "2026-04-03T06:10:48.133Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9321d2a2df8137b7659ef519f2d14a64", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-02T03:28:04.004Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9321d2a2df8137b7659ef519f2d14a64", + "published": "2026-04-02T03:28:04.004Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Black-capped Chickadees at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Black-capped Chickadee", + "scientificName": "Poecile atricapillus", + "location": { + "type": "Place", + "name": "Thorncrag Bird Sanctuary", + "latitude": 44.1003, + "longitude": -70.2148 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/57d86b32385872e9ad6e19ac6e1deece", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-31T22:19:07.620Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/57d86b32385872e9ad6e19ac6e1deece", + "published": "2026-03-31T22:19:07.620Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-30T14:40:03.052Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "published": "2026-03-30T14:40:03.052Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

14.8 mi ride along the Nezinscot River road. 70 minutes, 670 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 14.8, + "durationMinutes": 70, + "route": "Nezinscot River road", + "elevationGainFeet": 670 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3a2bb2869191c279c66d67cc50dfe03e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-29T08:51:48.169Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3a2bb2869191c279c66d67cc50dfe03e", + "published": "2026-03-29T08:51:48.169Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2f9c17657955b38230c84c38e78dd1ab", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-28T09:18:13.089Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2f9c17657955b38230c84c38e78dd1ab", + "published": "2026-03-28T09:18:13.089Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/460c61259cf70605658e51f7c48ae64e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-27T01:24:29.334Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/460c61259cf70605658e51f7c48ae64e", + "published": "2026-03-27T01:24:29.334Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+154/-5 lines across 8 commits in acuity-middleware.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 154, + "linesRemoved": 5, + "commits": 8, + "repository": "acuity-middleware", + "languages": [ + "Nix", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ebd9c12ddc22968dae8b5b6d03057995", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-26T00:19:32.902Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ebd9c12ddc22968dae8b5b6d03057995", + "published": "2026-03-26T00:19:32.902Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/35763973bafd97f2953eb7eb7ba07f16", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-24T19:36:15.266Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/35763973bafd97f2953eb7eb7ba07f16", + "published": "2026-03-24T19:36:15.266Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0ca1b7bf3e1f82e334faab238ab47326", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-23T13:50:09.918Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0ca1b7bf3e1f82e334faab238ab47326", + "published": "2026-03-23T13:50:09.918Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Morning fog on the Androscoggin. Perfect conditions for great blue herons- counted six in a half-mile stretch.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c45e8e8a0a6121b97546acbd713e9c99", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T10:39:52.274Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c45e8e8a0a6121b97546acbd713e9c99", + "published": "2026-03-22T10:39:52.274Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

27.6 mi ride along the Lisbon Falls loop. 133 minutes, 497 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 27.6, + "durationMinutes": 133, + "route": "Lisbon Falls loop", + "elevationGainFeet": 497 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/31095068f27684456ef6430436f6213e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-21T05:09:32.640Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/31095068f27684456ef6430436f6213e", + "published": "2026-03-21T05:09:32.640Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ba4e64be4f9a4b870b1e862aac6a2785", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-20T00:22:09.434Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ba4e64be4f9a4b870b1e862aac6a2785", + "published": "2026-03-20T00:22:09.434Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+114/-50 lines across 2 commits in cmux.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 114, + "linesRemoved": 50, + "commits": 2, + "repository": "cmux", + "languages": [ + "Svelte", + "CSS" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5e8cb357b80d2ee47757a210c1cdeb46", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-18T14:43:13.164Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5e8cb357b80d2ee47757a210c1cdeb46", + "published": "2026-03-18T14:43:13.164Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ea7f6735a3d1213e0a36ae3c8e37cb61", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-17T14:58:32.573Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ea7f6735a3d1213e0a36ae3c8e37cb61", + "published": "2026-03-17T14:58:32.573Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Great Blue Heron at Bradbury Mountain.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Great Blue Heron", + "scientificName": "Ardea herodias", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/604b976b778db7fb303b649c8d185bff", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-16T09:31:46.518Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/604b976b778db7fb303b649c8d185bff", + "published": "2026-03-16T09:31:46.518Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T23:38:44.132Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "published": "2026-03-14T23:38:44.132Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Red-tailed Hawks at Sabattus Pond- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Red-tailed Hawk", + "scientificName": "Buteo jamaicensis", + "location": { + "type": "Place", + "name": "Sabattus Pond", + "latitude": 44.1209, + "longitude": -70.0874 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T00:51:49.153Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "published": "2026-03-14T00:51:49.153Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Androscoggin Riverlands.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b8dabfc5d830d6c944f2d36759caa9de", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-12T13:35:08.946Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b8dabfc5d830d6c944f2d36759caa9de", + "published": "2026-03-12T13:35:08.946Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

23.9 mi ride along the Turner Center hill climb. 112 minutes, 589 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 23.9, + "durationMinutes": 112, + "route": "Turner Center hill climb", + "elevationGainFeet": 589 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/faefef3d75ea4eebdf1f36240980d2b1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-11T11:55:06.301Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/faefef3d75ea4eebdf1f36240980d2b1", + "published": "2026-03-11T11:55:06.301Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 18.3C, 37% humidity, CO2 431ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 18.3, + "unit": "C" + }, + { + "name": "Humidity", + "value": 37, + "unit": "%" + }, + { + "name": "CO2", + "value": 431, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a8524fe901a5d67ded4b23dcdfbece29", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-10T11:25:41.320Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a8524fe901a5d67ded4b23dcdfbece29", + "published": "2026-03-10T11:25:41.320Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+240/-41 lines across 5 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 240, + "linesRemoved": 41, + "commits": 5, + "repository": "scheduling-kit", + "languages": [ + "TypeScript", + "CSS" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/351b03c80d6ba3cff5d558dca8e3e85b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-08T23:23:39.121Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/351b03c80d6ba3cff5d558dca8e3e85b", + "published": "2026-03-08T23:23:39.121Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/35c760846a909343967770d1f4ad98a5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-07T21:06:58.978Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/35c760846a909343967770d1f4ad98a5", + "published": "2026-03-07T21:06:58.978Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 4 Cedar Waxwings at Range Pond State Park- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Cedar Waxwing", + "scientificName": "Bombycilla cedrorum", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 4 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/58358cd78551db339950c6605e5fb5f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-06T13:50:22.830Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/58358cd78551db339950c6605e5fb5f7", + "published": "2026-03-06T13:50:22.830Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/63ada09c8d16f5fcdcd2692223647b71", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-05T13:21:52.204Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/63ada09c8d16f5fcdcd2692223647b71", + "published": "2026-03-05T13:21:52.204Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7d70740fa93a950f5b287195de9f0a7e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-04T11:11:51.554Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7d70740fa93a950f5b287195de9f0a7e", + "published": "2026-03-04T11:11:51.554Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/15fd9367271144503800f07aa40cd524", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-03T03:58:45.730Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/15fd9367271144503800f07aa40cd524", + "published": "2026-03-03T03:58:45.730Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

5.1 mi ride along the Turner Center hill climb. 20 minutes, 659 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 5.1, + "durationMinutes": 20, + "route": "Turner Center hill climb", + "elevationGainFeet": 659 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/396e4884df1b5e4879cb4a710917bfcd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-02T00:51:35.079Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/396e4884df1b5e4879cb4a710917bfcd", + "published": "2026-03-02T00:51:35.079Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5b4358f60023247c458522bc1ad2db4e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-28T17:55:28.562Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5b4358f60023247c458522bc1ad2db4e", + "published": "2026-02-28T17:55:28.562Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/23bda90c0ec9f761985cb789d83f2e1e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-27T12:26:53.071Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/23bda90c0ec9f761985cb789d83f2e1e", + "published": "2026-02-27T12:26:53.071Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Hermit Thrushs at Androscoggin Riverlands- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Hermit Thrush", + "scientificName": "Catharus guttatus", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09469d509adaada274f313ce7235a796", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T11:18:32.217Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09469d509adaada274f313ce7235a796", + "published": "2026-02-26T11:18:32.217Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d95cd6fc6e01f4a93d3796cd1b255042", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-25T01:15:59.534Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d95cd6fc6e01f4a93d3796cd1b255042", + "published": "2026-02-25T01:15:59.534Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 Barred Owls at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Thorncrag Bird Sanctuary", + "latitude": 44.1003, + "longitude": -70.2148 + }, + "count": 3 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6c8e700e47de6ef132a2eaef883f29be", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-24T00:37:51.920Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6c8e700e47de6ef132a2eaef883f29be", + "published": "2026-02-24T00:37:51.920Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+171/-102 lines across 6 commits in jesssullivan.github.io.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 171, + "linesRemoved": 102, + "commits": 6, + "repository": "jesssullivan.github.io", + "languages": [ + "Nix", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/40962a3677faaee44849f9a14064c3af", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-22T20:19:19.574Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/40962a3677faaee44849f9a14064c3af", + "published": "2026-02-22T20:19:19.574Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7/-1 lines across 2 commits in XoxdWM.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7, + "linesRemoved": 1, + "commits": 2, + "repository": "XoxdWM", + "languages": [ + "Nix", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9d4fcf18cb81e58bff9db7b39de2adf8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-21T13:39:56.769Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9d4fcf18cb81e58bff9db7b39de2adf8", + "published": "2026-02-21T13:39:56.769Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4a2e5fde14eb5128dc46175f685915f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-20T08:31:23.802Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4a2e5fde14eb5128dc46175f685915f7", + "published": "2026-02-20T08:31:23.802Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/629ac8cd3a8d5214bfbb44751ebedae5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-19T04:28:57.458Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/629ac8cd3a8d5214bfbb44751ebedae5", + "published": "2026-02-19T04:28:57.458Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 19.2C, 30% humidity, CO2 463ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 19.2, + "unit": "C" + }, + { + "name": "Humidity", + "value": 30, + "unit": "%" + }, + { + "name": "CO2", + "value": 463, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/49e6b025cd5031fc0fb3c85210ccfb18", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-18T00:38:08.598Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/49e6b025cd5031fc0fb3c85210ccfb18", + "published": "2026-02-18T00:38:08.598Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 4 Barred Owls at Sabattus Pond- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Sabattus Pond", + "latitude": 44.1209, + "longitude": -70.0874 + }, + "count": 4 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09ef926d9821dd072a0b61953f7c6c0b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-16T15:36:20.564Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09ef926d9821dd072a0b61953f7c6c0b", + "published": "2026-02-16T15:36:20.564Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e1e91535cb3c58a1f392b533c9ec9401", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-15T12:21:51.544Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e1e91535cb3c58a1f392b533c9ec9401", + "published": "2026-02-15T12:21:51.544Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+158/-22 lines across 3 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 158, + "linesRemoved": 22, + "commits": 3, + "repository": "scheduling-kit", + "languages": [ + "Chapel", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/82ca38bf01aa1160a27d882bfee72751", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-14T09:32:23.112Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/82ca38bf01aa1160a27d882bfee72751", + "published": "2026-02-14T09:32:23.112Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0d802d944fd7563893673fd0ca52612e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T23:34:42.523Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0d802d944fd7563893673fd0ca52612e", + "published": "2026-02-12T23:34:42.523Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b6b88cc1982ff25ecfc0a5b5f82f050c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T01:22:37.107Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b6b88cc1982ff25ecfc0a5b5f82f050c", + "published": "2026-02-12T01:22:37.107Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9/-5 lines across 5 commits in acuity-middleware.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 9, + "linesRemoved": 5, + "commits": 5, + "repository": "acuity-middleware", + "languages": [ + "Python", + "Chapel" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2194d64f3c07b7b52bd96af2ea49d983", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-10T17:51:58.955Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2194d64f3c07b7b52bd96af2ea49d983", + "published": "2026-02-10T17:51:58.955Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+155/-1 lines across 6 commits in jesssullivan.github.io.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 155, + "linesRemoved": 1, + "commits": 6, + "repository": "jesssullivan.github.io", + "languages": [ + "Svelte", + "CSS" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/909c5ae402cf42d38ee0c113f829a1f3", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T10:38:22.200Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/909c5ae402cf42d38ee0c113f829a1f3", + "published": "2026-02-09T10:38:22.200Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/286d32eb3623c658e9438650c0e754b8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-08T05:38:05.142Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/286d32eb3623c658e9438650c0e754b8", + "published": "2026-02-08T05:38:05.142Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+114/-42 lines across 7 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 114, + "linesRemoved": 42, + "commits": 7, + "repository": "scheduling-kit", + "languages": [ + "Rust", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/54ddbfd0256d796d45fd6650163cca19", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-07T03:28:07.634Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/54ddbfd0256d796d45fd6650163cca19", + "published": "2026-02-07T03:28:07.634Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/79c37666ab615886cb85257a12ac5920", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-05T18:45:00.405Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/79c37666ab615886cb85257a12ac5920", + "published": "2026-02-05T18:45:00.405Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0701a9911329b65d867d3dd544e1383a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-04T20:57:56.174Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0701a9911329b65d867d3dd544e1383a", + "published": "2026-02-04T20:57:56.174Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Lost Valley trails.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Lost Valley trails", + "latitude": 44.0889, + "longitude": -70.2456 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f51ae3f23de813eb98b98f99a7ea3f0b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-03T09:20:28.035Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f51ae3f23de813eb98b98f99a7ea3f0b", + "published": "2026-02-03T09:20:28.035Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/563c23dcc5c294aceb11de7456cdca25", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-02T04:47:11.026Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/563c23dcc5c294aceb11de7456cdca25", + "published": "2026-02-02T04:47:11.026Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/36ad79113eaf0b376f88e8073d5b92c4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-01T01:43:59.899Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/36ad79113eaf0b376f88e8073d5b92c4", + "published": "2026-02-01T01:43:59.899Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ed951163e16f73b496b764b5ea5c5375", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-31T00:17:20.456Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ed951163e16f73b496b764b5ea5c5375", + "published": "2026-01-31T00:17:20.456Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+114/-29 lines across 6 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 114, + "linesRemoved": 29, + "commits": 6, + "repository": "scheduling-kit", + "languages": [ + "Svelte", + "Chapel" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/60caf2a69c651c2320366d598767c00b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-29T16:36:32.975Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/60caf2a69c651c2320366d598767c00b", + "published": "2026-01-29T16:36:32.975Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cbe14caa0a0928be9b5554eb363d4cd2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-28T10:36:30.503Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cbe14caa0a0928be9b5554eb363d4cd2", + "published": "2026-01-28T10:36:30.503Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 Eastern Bluebirds at Bradbury Mountain- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Eastern Bluebird", + "scientificName": "Sialia sialis", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 3 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dfc22700861a5a4cdc0f66d34da859a8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-27T04:52:51.732Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dfc22700861a5a4cdc0f66d34da859a8", + "published": "2026-01-27T04:52:51.732Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 White-breasted Nuthatchs at Range Pond State Park- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 3 + } + } + } + ] +} \ No newline at end of file diff --git a/scripts/generate-activity-stream.mts b/scripts/generate-activity-stream.mts new file mode 100644 index 0000000..1a892aa --- /dev/null +++ b/scripts/generate-activity-stream.mts @@ -0,0 +1,58 @@ +#!/usr/bin/env node +/** + * Generate activity stream JSON from AP outbox source. + * Source: mock file (scripts/data/mock-outbox.json) or remote AP outbox URL. + * Output: static/data/activity-outbox.json + */ +import { readFile, writeFile, mkdir } from 'node:fs/promises'; + +const OUTBOX_SOURCE = process.env.AP_OUTBOX_URL || 'scripts/data/mock-outbox.json'; +const OUTPUT = 'static/data/activity-outbox.json'; +const MAX_ITEMS = 100; + +interface OutboxCollection { + '@context': unknown; + id: string; + type: string; + totalItems: number; + orderedItems: Record[]; +} + +async function fetchOutbox(source: string): Promise { + if (source.startsWith('http')) { + const res = await fetch(source, { + headers: { Accept: 'application/activity+json' }, + }); + if (!res.ok) throw new Error(`Failed to fetch outbox: ${res.status}`); + return res.json() as Promise; + } + const raw = await readFile(source, 'utf-8'); + return JSON.parse(raw) as OutboxCollection; +} + +async function main(): Promise { + const outbox = await fetchOutbox(OUTBOX_SOURCE); + + if (outbox.type !== 'OrderedCollection') { + throw new Error(`Expected OrderedCollection, got ${outbox.type}`); + } + + const items = outbox.orderedItems.slice(0, MAX_ITEMS); + + const output = { + '@context': outbox['@context'], + id: outbox.id, + type: 'OrderedCollection', + totalItems: items.length, + orderedItems: items, + }; + + await mkdir('static/data', { recursive: true }); + await writeFile(OUTPUT, JSON.stringify(output, null, 2)); + console.log(`Activity stream: ${items.length} activities -> ${OUTPUT}`); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/scripts/generate-mock-outbox.mts b/scripts/generate-mock-outbox.mts new file mode 100644 index 0000000..a9ec9b9 --- /dev/null +++ b/scripts/generate-mock-outbox.mts @@ -0,0 +1,253 @@ +#!/usr/bin/env node +/** + * Generate mock AP outbox with realistic activity data. + * Run manually: tsx scripts/generate-mock-outbox.mts + * Output: scripts/data/mock-outbox.json + */ +import { writeFile } from 'node:fs/promises'; +import { createHash } from 'node:crypto'; + +const OUTPUT = 'scripts/data/mock-outbox.json'; +const ACTOR = 'https://tinyland.dev/@jesssullivan'; +const BASE = 'https://tinyland.dev'; + +function uuid(seed: string): string { + return createHash('sha256').update(seed).digest('hex').slice(0, 32); +} + +function randomBetween(min: number, max: number, seed: number): number { + const x = Math.sin(seed) * 10000; + const r = x - Math.floor(x); + return min + r * (max - min); +} + +function pick(arr: T[], seed: number): T { + const x = Math.sin(seed) * 10000; + const r = x - Math.floor(x); + return arr[Math.floor(r * arr.length)]; +} + +const BIRDS = [ + { species: 'Pileated Woodpecker', scientific: 'Dryocopus pileatus' }, + { species: 'Black-capped Chickadee', scientific: 'Poecile atricapillus' }, + { species: 'Common Loon', scientific: 'Gavia immer' }, + { species: 'Barred Owl', scientific: 'Strix varia' }, + { species: 'Great Blue Heron', scientific: 'Ardea herodias' }, + { species: 'Red-tailed Hawk', scientific: 'Buteo jamaicensis' }, + { species: 'Eastern Bluebird', scientific: 'Sialia sialis' }, + { species: 'Ruby-throated Hummingbird', scientific: 'Archilochus colubris' }, + { species: 'American Robin', scientific: 'Turdus migratorius' }, + { species: 'White-breasted Nuthatch', scientific: 'Sitta carolinensis' }, + { species: 'Cedar Waxwing', scientific: 'Bombycilla cedrorum' }, + { species: 'Hermit Thrush', scientific: 'Catharus guttatus' }, +]; + +const LOCATIONS = [ + { name: 'Thorncrag Bird Sanctuary', lat: 44.1003, lon: -70.2148 }, + { name: 'Range Pond State Park', lat: 44.0667, lon: -70.3500 }, + { name: 'Androscoggin Riverlands', lat: 44.0412, lon: -70.1823 }, + { name: 'Sabattus Pond', lat: 44.1209, lon: -70.0874 }, + { name: 'Bradbury Mountain', lat: 43.9017, lon: -70.1678 }, + { name: 'Lost Valley trails', lat: 44.0889, lon: -70.2456 }, +]; + +const BIKE_ROUTES = [ + 'Androscoggin River Trail', + 'Lisbon Falls loop', + 'Turner Center hill climb', + 'Sabattus to Lewiston connector', + 'Auburn riverwalk to Lake Auburn', + 'Nezinscot River road', +]; + +const REPOS = [ + 'jesssullivan.github.io', + 'XoxdWM', + 'aperture-bootstrap', + 'cmux', + 'scheduling-kit', + 'acuity-middleware', +]; + +const LANGUAGES = ['TypeScript', 'Svelte', 'Chapel', 'Nix', 'Rust', 'Zig', 'Python', 'CSS']; + +const NOTES = [ + 'Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.', + 'Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.', + 'The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.', + 'Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.', + 'Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.', + 'Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.', + 'Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.', + 'Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.', + 'Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.', + 'The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.', + 'Morning fog on the Androscoggin. Perfect conditions for great blue herons- counted six in a half-mile stretch.', + 'Passkey enrollment on the Yubikey 5C finally works with the new FIDO2 bridge in cmux. No more password prompts.', +]; + +interface Activity { + '@context': (string | Record)[]; + type: string; + id: string; + actor: string; + published: string; + object: Record; +} + +function makeActivity( + published: Date, + seed: number, + obj: Record, +): Activity { + const id = uuid(`${published.toISOString()}-${seed}`); + return { + '@context': [ + 'https://www.w3.org/ns/activitystreams', + { tl: 'https://tinyland.dev/ns/v1#' }, + ], + type: 'Create', + id: `${BASE}/activities/${id}`, + actor: ACTOR, + published: published.toISOString(), + object: { + type: 'Note', + id: `${BASE}/notes/${id}`, + published: published.toISOString(), + attributedTo: ACTOR, + ...obj, + }, + }; +} + +function makeBird(published: Date, seed: number): Activity { + const bird = pick(BIRDS, seed); + const loc = pick(LOCATIONS, seed + 1); + const count = Math.floor(randomBetween(1, 5, seed + 2)); + const plural = count > 1 ? 's' : ''; + return makeActivity(published, seed, { + content: `

Spotted ${count} ${bird.species}${plural} at ${loc.name}${count > 1 ? '- feeding together in the canopy' : ''}.

`, + tag: [{ type: 'Hashtag', name: '#birding' }, { type: 'Hashtag', name: '#maine' }], + 'tl:birdSighting': { + species: bird.species, + scientificName: bird.scientific, + location: { type: 'Place', name: loc.name, latitude: loc.lat, longitude: loc.lon }, + count, + }, + }); +} + +function makeBike(published: Date, seed: number): Activity { + const route = pick(BIKE_ROUTES, seed); + const distance = parseFloat(randomBetween(5, 28, seed + 1).toFixed(1)); + const duration = Math.round(distance * randomBetween(3.5, 5.5, seed + 2)); + const elevation = Math.round(randomBetween(100, 800, seed + 3)); + return makeActivity(published, seed, { + content: `

${distance} mi ride along the ${route}. ${duration} minutes, ${elevation} ft elevation.

`, + tag: [{ type: 'Hashtag', name: '#cycling' }, { type: 'Hashtag', name: '#maine' }], + 'tl:bikeRide': { distanceMiles: distance, durationMinutes: duration, route, elevationGainFeet: elevation }, + }); +} + +function makeCode(published: Date, seed: number): Activity { + const repo = pick(REPOS, seed); + const added = Math.round(randomBetween(3, 280, seed + 1)); + const removed = Math.round(randomBetween(0, added * 0.6, seed + 2)); + const commits = Math.max(1, Math.round(randomBetween(1, 8, seed + 3))); + const langs = [pick(LANGUAGES, seed + 4), pick(LANGUAGES, seed + 5)].filter( + (v, i, a) => a.indexOf(v) === i, + ); + return makeActivity(published, seed, { + content: `

+${added}/-${removed} lines across ${commits} commit${commits > 1 ? 's' : ''} in ${repo}.

`, + tag: [{ type: 'Hashtag', name: '#code' }], + 'tl:codeActivity': { linesAdded: added, linesRemoved: removed, commits, repository: repo, languages: langs }, + }); +} + +function makeSensor(published: Date, seed: number): Activity { + const tempC = parseFloat(randomBetween(18, 26, seed + 1).toFixed(1)); + const humidity = Math.round(randomBetween(30, 65, seed + 2)); + const co2 = Math.round(randomBetween(420, 900, seed + 3)); + return makeActivity(published, seed, { + content: `

Office: ${tempC}C, ${humidity}% humidity, CO2 ${co2}ppm.

`, + tag: [{ type: 'Hashtag', name: '#sensors' }], + 'tl:sensorReading': { + sensorId: 'office-env-01', + sensorType: 'environmental' as const, + measurements: [ + { name: 'Temperature', value: tempC, unit: 'C' }, + { name: 'Humidity', value: humidity, unit: '%' }, + { name: 'CO2', value: co2, unit: 'ppm' }, + ], + }, + }); +} + +function makeNote(published: Date, seed: number): Activity { + const note = pick(NOTES, seed); + return makeActivity(published, seed, { + content: `

${note}

`, + tag: [{ type: 'Hashtag', name: '#notes' }], + }); +} + +// Weighted distribution: notes 35%, birds 25%, code 20%, bike 12%, sensor 8% +type Generator = (published: Date, seed: number) => Activity; +const GENERATORS: [number, Generator][] = [ + [0.35, makeNote], + [0.60, makeBird], + [0.80, makeCode], + [0.92, makeBike], + [1.00, makeSensor], +]; + +function pickGenerator(seed: number): Generator { + const r = randomBetween(0, 1, seed); + for (const [threshold, gen] of GENERATORS) { + if (r < threshold) return gen; + } + return makeNote; +} + +async function main(): Promise { + const now = new Date(); + const activities: Activity[] = []; + const count = 75; + + for (let i = 0; i < count; i++) { + const daysAgo = (i / count) * 90; + const hoursOffset = randomBetween(-4, 4, i * 7); + const published = new Date(now.getTime() - (daysAgo * 24 + hoursOffset) * 60 * 60 * 1000); + const gen = pickGenerator(i * 13); + activities.push(gen(published, i * 17)); + } + + activities.sort((a, b) => new Date(b.published).getTime() - new Date(a.published).getTime()); + + const outbox = { + '@context': 'https://www.w3.org/ns/activitystreams', + id: `${ACTOR}/outbox`, + type: 'OrderedCollection', + totalItems: activities.length, + orderedItems: activities, + }; + + await writeFile(OUTPUT, JSON.stringify(outbox, null, 2)); + console.log(`Mock outbox: ${activities.length} activities -> ${OUTPUT}`); + + const kinds = { note: 0, bird: 0, code: 0, bike: 0, sensor: 0 }; + for (const a of activities) { + const obj = a.object as Record; + if (obj['tl:birdSighting']) kinds.bird++; + else if (obj['tl:bikeRide']) kinds.bike++; + else if (obj['tl:codeActivity']) kinds.code++; + else if (obj['tl:sensorReading']) kinds.sensor++; + else kinds.note++; + } + console.log(` Distribution: ${Object.entries(kinds).map(([k, v]) => `${k}=${v}`).join(', ')}`); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/src/lib/activitypub/config.ts b/src/lib/activitypub/config.ts new file mode 100644 index 0000000..a6aa3f8 --- /dev/null +++ b/src/lib/activitypub/config.ts @@ -0,0 +1,7 @@ +export const AP_CONFIG = { + actor: 'https://tinyland.dev/@jesssullivan', + outboxUrl: 'https://tinyland.dev/@jesssullivan/outbox', + staticPath: '/data/activity-outbox.json', + enableLiveFetch: false, + displayLimit: 50, +} as const; diff --git a/src/lib/activitypub/fetch.ts b/src/lib/activitypub/fetch.ts new file mode 100644 index 0000000..b61d4b3 --- /dev/null +++ b/src/lib/activitypub/fetch.ts @@ -0,0 +1,27 @@ +import type { AS2OrderedCollection, ResolvedActivity } from './types'; +import { resolveOutbox } from './resolve'; +import { AP_CONFIG } from './config'; + +export async function loadActivities(fetchFn: typeof fetch): Promise { + const res = await fetchFn(AP_CONFIG.staticPath); + if (!res.ok) return []; + const collection: AS2OrderedCollection = await res.json(); + return resolveOutbox(collection); +} + +export async function loadFreshActivities(): Promise { + if (!AP_CONFIG.enableLiveFetch) return []; + try { + const res = await fetch(AP_CONFIG.outboxUrl, { + headers: { Accept: 'application/activity+json' }, + signal: AbortSignal.timeout(5000), + }); + if (res.ok) { + const collection: AS2OrderedCollection = await res.json(); + return resolveOutbox(collection); + } + } catch { + // fall through to empty — caller uses static fallback + } + return []; +} diff --git a/src/lib/activitypub/resolve.ts b/src/lib/activitypub/resolve.ts new file mode 100644 index 0000000..5166229 --- /dev/null +++ b/src/lib/activitypub/resolve.ts @@ -0,0 +1,90 @@ +import type { + AS2Activity, + AS2OrderedCollection, + ActivityKind, + BirdSightingData, + BikeRideData, + CodeActivityData, + SensorReadingData, + ResolvedActivity, +} from './types'; + +function stripHtml(html: string): string { + return html.replace(/<[^>]*>/g, '').trim(); +} + +function formatBirdSummary(data: BirdSightingData): string { + const count = data.count && data.count > 1 ? `${data.count}x ` : ''; + const where = data.location?.name ? ` at ${data.location.name}` : ''; + return `${count}${data.species}${where}`; +} + +function formatBikeSummary(data: BikeRideData): string { + const route = data.route ? ` on ${data.route}` : ''; + return `${data.distanceMiles.toFixed(1)} mi${route}`; +} + +function formatCodeSummary(data: CodeActivityData): string { + const net = data.linesAdded - data.linesRemoved; + const sign = net >= 0 ? '+' : ''; + return `${sign}${net} lines across ${data.commits} commit${data.commits === 1 ? '' : 's'} in ${data.repository}`; +} + +function formatSensorSummary(data: SensorReadingData): string { + return data.measurements.map((m) => `${m.name}: ${m.value}${m.unit}`).join(', '); +} + +function detectKind(activity: AS2Activity): { + kind: ActivityKind; + bird?: BirdSightingData; + bike?: BikeRideData; + code?: CodeActivityData; + sensor?: SensorReadingData; +} { + const obj = activity.object; + if (obj['tl:birdSighting']) return { kind: 'bird', bird: obj['tl:birdSighting'] }; + if (obj['tl:bikeRide']) return { kind: 'bike', bike: obj['tl:bikeRide'] }; + if (obj['tl:codeActivity']) return { kind: 'code', code: obj['tl:codeActivity'] }; + if (obj['tl:sensorReading']) return { kind: 'sensor', sensor: obj['tl:sensorReading'] }; + return { kind: 'note' }; +} + +function summarize(kind: ActivityKind, resolved: ReturnType, content: string): string { + switch (kind) { + case 'bird': + return formatBirdSummary(resolved.bird!); + case 'bike': + return formatBikeSummary(resolved.bike!); + case 'code': + return formatCodeSummary(resolved.code!); + case 'sensor': + return formatSensorSummary(resolved.sensor!); + default: + return stripHtml(content).slice(0, 140); + } +} + +export function resolveActivity(activity: AS2Activity): ResolvedActivity { + const obj = activity.object; + const tags = (obj.tag ?? []).filter((t) => t.type === 'Hashtag').map((t) => t.name.replace(/^#/, '')); + const resolved = detectKind(activity); + const content = obj.content ?? ''; + + return { + id: activity.id, + kind: resolved.kind, + published: new Date(activity.published), + content, + summary: summarize(resolved.kind, resolved, content), + tags, + raw: activity, + bird: resolved.bird, + bike: resolved.bike, + code: resolved.code, + sensor: resolved.sensor, + }; +} + +export function resolveOutbox(collection: AS2OrderedCollection): ResolvedActivity[] { + return collection.orderedItems.map(resolveActivity); +} diff --git a/src/lib/activitypub/types.ts b/src/lib/activitypub/types.ts new file mode 100644 index 0000000..7bf1ebb --- /dev/null +++ b/src/lib/activitypub/types.ts @@ -0,0 +1,97 @@ +export type AS2Context = string | (string | Record)[]; + +export interface AS2Tag { + type: 'Hashtag' | 'Mention'; + name: string; + href?: string; +} + +export interface AS2Place { + type: 'Place'; + name: string; + latitude?: number; + longitude?: number; +} + +export interface BirdSightingData { + species: string; + scientificName?: string; + location?: AS2Place; + count?: number; +} + +export interface BikeRideData { + distanceMiles: number; + durationMinutes: number; + route?: string; + elevationGainFeet?: number; +} + +export interface CodeActivityData { + linesAdded: number; + linesRemoved: number; + commits: number; + repository: string; + languages?: string[]; +} + +export interface SensorMeasurement { + name: string; + value: number; + unit: string; +} + +export interface SensorReadingData { + sensorId: string; + sensorType: 'environmental' | 'hardware' | 'network'; + measurements: SensorMeasurement[]; +} + +export interface AS2Object { + '@context'?: AS2Context; + id: string; + type: string; + published?: string; + content?: string; + summary?: string; + attributedTo?: string; + tag?: AS2Tag[]; + url?: string; + 'tl:birdSighting'?: BirdSightingData; + 'tl:bikeRide'?: BikeRideData; + 'tl:codeActivity'?: CodeActivityData; + 'tl:sensorReading'?: SensorReadingData; +} + +export interface AS2Activity { + '@context'?: AS2Context; + id: string; + type: 'Create' | 'Update' | 'Announce'; + actor: string; + published: string; + object: AS2Object; +} + +export interface AS2OrderedCollection { + '@context': AS2Context; + id: string; + type: 'OrderedCollection'; + totalItems: number; + orderedItems: AS2Activity[]; +} + +export type ActivityKind = 'bird' | 'bike' | 'code' | 'sensor' | 'note'; + +export interface ResolvedActivity { + id: string; + kind: ActivityKind; + published: Date; + content: string; + summary: string; + tags: string[]; + raw: AS2Activity; + bird?: BirdSightingData; + bike?: BikeRideData; + code?: CodeActivityData; + sensor?: SensorReadingData; +} diff --git a/src/lib/components/ActivityCard.svelte b/src/lib/components/ActivityCard.svelte new file mode 100644 index 0000000..075a262 --- /dev/null +++ b/src/lib/components/ActivityCard.svelte @@ -0,0 +1,22 @@ + + +{#if activity.kind === 'bird'} + +{:else if activity.kind === 'bike'} + +{:else if activity.kind === 'code'} + +{:else if activity.kind === 'sensor'} + +{:else} + +{/if} diff --git a/src/lib/components/ActivityStream.svelte b/src/lib/components/ActivityStream.svelte new file mode 100644 index 0000000..a644102 --- /dev/null +++ b/src/lib/components/ActivityStream.svelte @@ -0,0 +1,85 @@ + + +
+ +
+ + {#each Object.entries(KIND_LABELS) as [kind, meta] (kind)} + {@const count = kindCounts[kind as ActivityKind] ?? 0} + {#if count > 0} + + {/if} + {/each} +
+ + +
+ {#each filtered as activity (activity.id)} + + {/each} +
+ + {#if filtered.length === 0} +

No activities to show.

+ {/if} +
diff --git a/src/lib/components/activity/BikeCard.svelte b/src/lib/components/activity/BikeCard.svelte new file mode 100644 index 0000000..24de77f --- /dev/null +++ b/src/lib/components/activity/BikeCard.svelte @@ -0,0 +1,42 @@ + + +
+
+ +
+
+ + cycling +
+ {#if activity.bike} +

+ {activity.bike.distanceMiles.toFixed(1)} mi +

+
+ {formatDuration(activity.bike.durationMinutes)} + {#if activity.bike.elevationGainFeet} + | + {activity.bike.elevationGainFeet} ft gain + {/if} +
+ {#if activity.bike.route} +

{activity.bike.route}

+ {/if} + {/if} +
+
+
diff --git a/src/lib/components/activity/BirdCard.svelte b/src/lib/components/activity/BirdCard.svelte new file mode 100644 index 0000000..5604e40 --- /dev/null +++ b/src/lib/components/activity/BirdCard.svelte @@ -0,0 +1,44 @@ + + +
+
+ +
+
+ + birding +
+ {#if activity.bird} +

+ {#if activity.bird.count && activity.bird.count > 1} + {activity.bird.count}x + {/if} + {activity.bird.species} +

+ {#if activity.bird.scientificName} +

{activity.bird.scientificName}

+ {/if} + {#if activity.bird.location} +

+ at {activity.bird.location.name} +

+ {/if} + {/if} +
+
+ {#if activity.tags.length > 0} +
+ {#each activity.tags as tag (tag)} + {tag} + {/each} +
+ {/if} +
diff --git a/src/lib/components/activity/CodeCard.svelte b/src/lib/components/activity/CodeCard.svelte new file mode 100644 index 0000000..1ebd524 --- /dev/null +++ b/src/lib/components/activity/CodeCard.svelte @@ -0,0 +1,41 @@ + + +
+
+ +
+
+ + code +
+ {#if activity.code} +

+ {activity.code.repository} +

+
+ +{activity.code.linesAdded} + -{activity.code.linesRemoved} + | + + {activity.code.commits} commit{activity.code.commits === 1 ? '' : 's'} + +
+ {#if activity.code.languages && activity.code.languages.length > 0} +
+ {#each activity.code.languages as lang (lang)} + {lang} + {/each} +
+ {/if} + {/if} +
+
+
diff --git a/src/lib/components/activity/NoteCard.svelte b/src/lib/components/activity/NoteCard.svelte new file mode 100644 index 0000000..826fce5 --- /dev/null +++ b/src/lib/components/activity/NoteCard.svelte @@ -0,0 +1,32 @@ + + +
+
+ +
+
+ + note +
+
+ + {@html activity.content} +
+ {#if activity.tags.length > 0} +
+ {#each activity.tags as tag (tag)} + {tag} + {/each} +
+ {/if} +
+
+
diff --git a/src/lib/components/activity/SensorCard.svelte b/src/lib/components/activity/SensorCard.svelte new file mode 100644 index 0000000..33b3e82 --- /dev/null +++ b/src/lib/components/activity/SensorCard.svelte @@ -0,0 +1,32 @@ + + +
+
+ +
+
+ + sensor +
+ {#if activity.sensor} +

{activity.sensor.sensorId}

+
+ {#each activity.sensor.measurements as m (m.name)} +
+
{m.value}{m.unit}
+
{m.name}
+
+ {/each} +
+ {/if} +
+
+
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 8e2873e..5d83b1c 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -44,6 +44,7 @@ const navLinks = [ { href: '/blog', label: 'Blog' }, + { href: '/pulse', label: 'Pulse' }, { href: '/photography', label: 'Photography' }, { href: '/music', label: 'Music' }, { href: '/making', label: 'Making' }, diff --git a/src/routes/pulse/+page.svelte b/src/routes/pulse/+page.svelte new file mode 100644 index 0000000..2edff7f --- /dev/null +++ b/src/routes/pulse/+page.svelte @@ -0,0 +1,22 @@ + + + + Pulse — jesssullivan.github.io + + + +
+
+

Pulse

+

+ A living stream of what I'm up to — birds spotted, miles biked, code shipped, and the occasional note. +

+
+ + +
diff --git a/src/routes/pulse/+page.ts b/src/routes/pulse/+page.ts new file mode 100644 index 0000000..15e6411 --- /dev/null +++ b/src/routes/pulse/+page.ts @@ -0,0 +1,9 @@ +import { loadActivities } from '$lib/activitypub/fetch'; +import type { PageLoad } from './$types'; + +export const prerender = true; + +export const load: PageLoad = async ({ fetch }) => { + const activities = await loadActivities(fetch); + return { activities }; +}; diff --git a/static/data/activity-outbox.json b/static/data/activity-outbox.json new file mode 100644 index 0000000..355f8b3 --- /dev/null +++ b/static/data/activity-outbox.json @@ -0,0 +1,2382 @@ +{ + "@context": "https://www.w3.org/ns/activitystreams", + "id": "https://tinyland.dev/@jesssullivan/outbox", + "type": "OrderedCollection", + "totalItems": 75, + "orderedItems": [ + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4211517840947f71079d2ce769508b60", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-26T06:38:25.923Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4211517840947f71079d2ce769508b60", + "published": "2026-04-26T06:38:25.923Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/171c83ff7da77e555ba84723b44f6e4d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T18:54:45.491Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/171c83ff7da77e555ba84723b44f6e4d", + "published": "2026-04-24T18:54:45.491Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+38/-18 lines across 4 commits in jesssullivan.github.io.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 38, + "linesRemoved": 18, + "commits": 4, + "repository": "jesssullivan.github.io", + "languages": [ + "Rust", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/844b19e6c404a031e441d959af729444", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T20:27:07.482Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/844b19e6c404a031e441d959af729444", + "published": "2026-04-23T20:27:07.482Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 White-breasted Nuthatch at Range Pond State Park.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5fc07342785656832462196def454c95", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T11:47:22.024Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5fc07342785656832462196def454c95", + "published": "2026-04-22T11:47:22.024Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 20.2C, 39% humidity, CO2 473ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 20.2, + "unit": "C" + }, + { + "name": "Humidity", + "value": 39, + "unit": "%" + }, + { + "name": "CO2", + "value": 473, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8baad0ce2f103e6155cfe753f1e713b2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T10:58:38.890Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8baad0ce2f103e6155cfe753f1e713b2", + "published": "2026-04-21T10:58:38.890Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/76663f8cd2b0c17410f6f7a488411ab9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T05:15:14.737Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/76663f8cd2b0c17410f6f7a488411ab9", + "published": "2026-04-20T05:15:14.737Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a3aa502a82274eff9a9f2b778c5d89f5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-18T19:33:51.722Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a3aa502a82274eff9a9f2b778c5d89f5", + "published": "2026-04-18T19:33:51.722Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+249/-116 lines across 6 commits in XoxdWM.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 249, + "linesRemoved": 116, + "commits": 6, + "repository": "XoxdWM", + "languages": [ + "Rust", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f168aced1900ff654ffbb047b0216012", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T17:15:09.917Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f168aced1900ff654ffbb047b0216012", + "published": "2026-04-17T17:15:09.917Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

7.6 mi ride along the Nezinscot River road. 29 minutes, 192 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 7.6, + "durationMinutes": 29, + "route": "Nezinscot River road", + "elevationGainFeet": 192 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6349659ddbd5aa54f291c2bd477102df", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T12:19:14.524Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6349659ddbd5aa54f291c2bd477102df", + "published": "2026-04-16T12:19:14.524Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+240/-69 lines across 7 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 240, + "linesRemoved": 69, + "commits": 7, + "repository": "scheduling-kit", + "languages": [ + "Nix", + "Zig" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/70dcf1eea677ecef7446ad7758a6f687", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T06:59:04.235Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/70dcf1eea677ecef7446ad7758a6f687", + "published": "2026-04-15T06:59:04.235Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4bf8deda84a2d446645bec1aef7cb37f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T23:23:09.634Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4bf8deda84a2d446645bec1aef7cb37f", + "published": "2026-04-13T23:23:09.634Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 25.3C, 51% humidity, CO2 849ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 25.3, + "unit": "C" + }, + { + "name": "Humidity", + "value": 51, + "unit": "%" + }, + { + "name": "CO2", + "value": 849, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/28c58570712d7439caebd0ab1020c539", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T00:13:40.251Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/28c58570712d7439caebd0ab1020c539", + "published": "2026-04-13T00:13:40.251Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Bradbury Mountain.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/528e338a58de1cbfe63dd1cf736be68b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-11T13:48:53.741Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/528e338a58de1cbfe63dd1cf736be68b", + "published": "2026-04-11T13:48:53.741Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/85fb67b23709f2fe936d527762070e81", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-10T09:14:22.538Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/85fb67b23709f2fe936d527762070e81", + "published": "2026-04-10T09:14:22.538Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/415fc624e8866df8c963d644e1f1be54", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-09T09:59:25.056Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/415fc624e8866df8c963d644e1f1be54", + "published": "2026-04-09T09:59:25.056Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7231a8ae524df3aad3a3f827f45aa5a4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-08T01:27:47.581Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7231a8ae524df3aad3a3f827f45aa5a4", + "published": "2026-04-08T01:27:47.581Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Black-capped Chickadees at Lost Valley trails- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Black-capped Chickadee", + "scientificName": "Poecile atricapillus", + "location": { + "type": "Place", + "name": "Lost Valley trails", + "latitude": 44.0889, + "longitude": -70.2456 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c5de567b7e605d368fd754a4e3236a47", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-07T01:29:19.980Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c5de567b7e605d368fd754a4e3236a47", + "published": "2026-04-07T01:29:19.980Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3/-2 lines across 2 commits in cmux.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 2, + "commits": 2, + "repository": "cmux", + "languages": [ + "Svelte", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/82a4da6c231d89280eb76e9c2ea5f7d9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-05T13:22:07.137Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/82a4da6c231d89280eb76e9c2ea5f7d9", + "published": "2026-04-05T13:22:07.137Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 White-breasted Nuthatch at Androscoggin Riverlands.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09bcca81620daea6b6a7cde10721062d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-04T08:58:28.128Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09bcca81620daea6b6a7cde10721062d", + "published": "2026-04-04T08:58:28.128Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7f9faaf116d3cb8ae69958428614b493", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-03T06:10:48.133Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7f9faaf116d3cb8ae69958428614b493", + "published": "2026-04-03T06:10:48.133Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9321d2a2df8137b7659ef519f2d14a64", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-02T03:28:04.004Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9321d2a2df8137b7659ef519f2d14a64", + "published": "2026-04-02T03:28:04.004Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Black-capped Chickadees at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Black-capped Chickadee", + "scientificName": "Poecile atricapillus", + "location": { + "type": "Place", + "name": "Thorncrag Bird Sanctuary", + "latitude": 44.1003, + "longitude": -70.2148 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/57d86b32385872e9ad6e19ac6e1deece", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-31T22:19:07.620Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/57d86b32385872e9ad6e19ac6e1deece", + "published": "2026-03-31T22:19:07.620Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-30T14:40:03.052Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "published": "2026-03-30T14:40:03.052Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

14.8 mi ride along the Nezinscot River road. 70 minutes, 670 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 14.8, + "durationMinutes": 70, + "route": "Nezinscot River road", + "elevationGainFeet": 670 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3a2bb2869191c279c66d67cc50dfe03e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-29T08:51:48.169Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3a2bb2869191c279c66d67cc50dfe03e", + "published": "2026-03-29T08:51:48.169Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2f9c17657955b38230c84c38e78dd1ab", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-28T09:18:13.089Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2f9c17657955b38230c84c38e78dd1ab", + "published": "2026-03-28T09:18:13.089Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/460c61259cf70605658e51f7c48ae64e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-27T01:24:29.334Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/460c61259cf70605658e51f7c48ae64e", + "published": "2026-03-27T01:24:29.334Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+154/-5 lines across 8 commits in acuity-middleware.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 154, + "linesRemoved": 5, + "commits": 8, + "repository": "acuity-middleware", + "languages": [ + "Nix", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ebd9c12ddc22968dae8b5b6d03057995", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-26T00:19:32.902Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ebd9c12ddc22968dae8b5b6d03057995", + "published": "2026-03-26T00:19:32.902Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/35763973bafd97f2953eb7eb7ba07f16", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-24T19:36:15.266Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/35763973bafd97f2953eb7eb7ba07f16", + "published": "2026-03-24T19:36:15.266Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0ca1b7bf3e1f82e334faab238ab47326", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-23T13:50:09.918Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0ca1b7bf3e1f82e334faab238ab47326", + "published": "2026-03-23T13:50:09.918Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Morning fog on the Androscoggin. Perfect conditions for great blue herons- counted six in a half-mile stretch.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c45e8e8a0a6121b97546acbd713e9c99", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T10:39:52.274Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c45e8e8a0a6121b97546acbd713e9c99", + "published": "2026-03-22T10:39:52.274Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

27.6 mi ride along the Lisbon Falls loop. 133 minutes, 497 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 27.6, + "durationMinutes": 133, + "route": "Lisbon Falls loop", + "elevationGainFeet": 497 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/31095068f27684456ef6430436f6213e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-21T05:09:32.640Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/31095068f27684456ef6430436f6213e", + "published": "2026-03-21T05:09:32.640Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ba4e64be4f9a4b870b1e862aac6a2785", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-20T00:22:09.434Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ba4e64be4f9a4b870b1e862aac6a2785", + "published": "2026-03-20T00:22:09.434Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+114/-50 lines across 2 commits in cmux.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 114, + "linesRemoved": 50, + "commits": 2, + "repository": "cmux", + "languages": [ + "Svelte", + "CSS" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5e8cb357b80d2ee47757a210c1cdeb46", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-18T14:43:13.164Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5e8cb357b80d2ee47757a210c1cdeb46", + "published": "2026-03-18T14:43:13.164Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ea7f6735a3d1213e0a36ae3c8e37cb61", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-17T14:58:32.573Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ea7f6735a3d1213e0a36ae3c8e37cb61", + "published": "2026-03-17T14:58:32.573Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Great Blue Heron at Bradbury Mountain.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Great Blue Heron", + "scientificName": "Ardea herodias", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/604b976b778db7fb303b649c8d185bff", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-16T09:31:46.518Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/604b976b778db7fb303b649c8d185bff", + "published": "2026-03-16T09:31:46.518Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T23:38:44.132Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "published": "2026-03-14T23:38:44.132Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Red-tailed Hawks at Sabattus Pond- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Red-tailed Hawk", + "scientificName": "Buteo jamaicensis", + "location": { + "type": "Place", + "name": "Sabattus Pond", + "latitude": 44.1209, + "longitude": -70.0874 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T00:51:49.153Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "published": "2026-03-14T00:51:49.153Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Androscoggin Riverlands.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b8dabfc5d830d6c944f2d36759caa9de", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-12T13:35:08.946Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b8dabfc5d830d6c944f2d36759caa9de", + "published": "2026-03-12T13:35:08.946Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

23.9 mi ride along the Turner Center hill climb. 112 minutes, 589 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 23.9, + "durationMinutes": 112, + "route": "Turner Center hill climb", + "elevationGainFeet": 589 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/faefef3d75ea4eebdf1f36240980d2b1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-11T11:55:06.301Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/faefef3d75ea4eebdf1f36240980d2b1", + "published": "2026-03-11T11:55:06.301Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 18.3C, 37% humidity, CO2 431ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 18.3, + "unit": "C" + }, + { + "name": "Humidity", + "value": 37, + "unit": "%" + }, + { + "name": "CO2", + "value": 431, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a8524fe901a5d67ded4b23dcdfbece29", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-10T11:25:41.320Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a8524fe901a5d67ded4b23dcdfbece29", + "published": "2026-03-10T11:25:41.320Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+240/-41 lines across 5 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 240, + "linesRemoved": 41, + "commits": 5, + "repository": "scheduling-kit", + "languages": [ + "TypeScript", + "CSS" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/351b03c80d6ba3cff5d558dca8e3e85b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-08T23:23:39.121Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/351b03c80d6ba3cff5d558dca8e3e85b", + "published": "2026-03-08T23:23:39.121Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/35c760846a909343967770d1f4ad98a5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-07T21:06:58.978Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/35c760846a909343967770d1f4ad98a5", + "published": "2026-03-07T21:06:58.978Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 4 Cedar Waxwings at Range Pond State Park- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Cedar Waxwing", + "scientificName": "Bombycilla cedrorum", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 4 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/58358cd78551db339950c6605e5fb5f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-06T13:50:22.830Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/58358cd78551db339950c6605e5fb5f7", + "published": "2026-03-06T13:50:22.830Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/63ada09c8d16f5fcdcd2692223647b71", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-05T13:21:52.204Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/63ada09c8d16f5fcdcd2692223647b71", + "published": "2026-03-05T13:21:52.204Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7d70740fa93a950f5b287195de9f0a7e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-04T11:11:51.554Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7d70740fa93a950f5b287195de9f0a7e", + "published": "2026-03-04T11:11:51.554Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/15fd9367271144503800f07aa40cd524", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-03T03:58:45.730Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/15fd9367271144503800f07aa40cd524", + "published": "2026-03-03T03:58:45.730Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

5.1 mi ride along the Turner Center hill climb. 20 minutes, 659 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 5.1, + "durationMinutes": 20, + "route": "Turner Center hill climb", + "elevationGainFeet": 659 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/396e4884df1b5e4879cb4a710917bfcd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-02T00:51:35.079Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/396e4884df1b5e4879cb4a710917bfcd", + "published": "2026-03-02T00:51:35.079Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5b4358f60023247c458522bc1ad2db4e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-28T17:55:28.562Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5b4358f60023247c458522bc1ad2db4e", + "published": "2026-02-28T17:55:28.562Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/23bda90c0ec9f761985cb789d83f2e1e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-27T12:26:53.071Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/23bda90c0ec9f761985cb789d83f2e1e", + "published": "2026-02-27T12:26:53.071Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Hermit Thrushs at Androscoggin Riverlands- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Hermit Thrush", + "scientificName": "Catharus guttatus", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09469d509adaada274f313ce7235a796", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T11:18:32.217Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09469d509adaada274f313ce7235a796", + "published": "2026-02-26T11:18:32.217Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d95cd6fc6e01f4a93d3796cd1b255042", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-25T01:15:59.534Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d95cd6fc6e01f4a93d3796cd1b255042", + "published": "2026-02-25T01:15:59.534Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 Barred Owls at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Thorncrag Bird Sanctuary", + "latitude": 44.1003, + "longitude": -70.2148 + }, + "count": 3 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6c8e700e47de6ef132a2eaef883f29be", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-24T00:37:51.920Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6c8e700e47de6ef132a2eaef883f29be", + "published": "2026-02-24T00:37:51.920Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+171/-102 lines across 6 commits in jesssullivan.github.io.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 171, + "linesRemoved": 102, + "commits": 6, + "repository": "jesssullivan.github.io", + "languages": [ + "Nix", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/40962a3677faaee44849f9a14064c3af", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-22T20:19:19.574Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/40962a3677faaee44849f9a14064c3af", + "published": "2026-02-22T20:19:19.574Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7/-1 lines across 2 commits in XoxdWM.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7, + "linesRemoved": 1, + "commits": 2, + "repository": "XoxdWM", + "languages": [ + "Nix", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9d4fcf18cb81e58bff9db7b39de2adf8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-21T13:39:56.769Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9d4fcf18cb81e58bff9db7b39de2adf8", + "published": "2026-02-21T13:39:56.769Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4a2e5fde14eb5128dc46175f685915f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-20T08:31:23.802Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4a2e5fde14eb5128dc46175f685915f7", + "published": "2026-02-20T08:31:23.802Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/629ac8cd3a8d5214bfbb44751ebedae5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-19T04:28:57.458Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/629ac8cd3a8d5214bfbb44751ebedae5", + "published": "2026-02-19T04:28:57.458Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 19.2C, 30% humidity, CO2 463ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 19.2, + "unit": "C" + }, + { + "name": "Humidity", + "value": 30, + "unit": "%" + }, + { + "name": "CO2", + "value": 463, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/49e6b025cd5031fc0fb3c85210ccfb18", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-18T00:38:08.598Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/49e6b025cd5031fc0fb3c85210ccfb18", + "published": "2026-02-18T00:38:08.598Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 4 Barred Owls at Sabattus Pond- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Sabattus Pond", + "latitude": 44.1209, + "longitude": -70.0874 + }, + "count": 4 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09ef926d9821dd072a0b61953f7c6c0b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-16T15:36:20.564Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09ef926d9821dd072a0b61953f7c6c0b", + "published": "2026-02-16T15:36:20.564Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e1e91535cb3c58a1f392b533c9ec9401", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-15T12:21:51.544Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e1e91535cb3c58a1f392b533c9ec9401", + "published": "2026-02-15T12:21:51.544Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+158/-22 lines across 3 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 158, + "linesRemoved": 22, + "commits": 3, + "repository": "scheduling-kit", + "languages": [ + "Chapel", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/82ca38bf01aa1160a27d882bfee72751", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-14T09:32:23.112Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/82ca38bf01aa1160a27d882bfee72751", + "published": "2026-02-14T09:32:23.112Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0d802d944fd7563893673fd0ca52612e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T23:34:42.523Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0d802d944fd7563893673fd0ca52612e", + "published": "2026-02-12T23:34:42.523Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b6b88cc1982ff25ecfc0a5b5f82f050c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T01:22:37.107Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b6b88cc1982ff25ecfc0a5b5f82f050c", + "published": "2026-02-12T01:22:37.107Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9/-5 lines across 5 commits in acuity-middleware.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 9, + "linesRemoved": 5, + "commits": 5, + "repository": "acuity-middleware", + "languages": [ + "Python", + "Chapel" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2194d64f3c07b7b52bd96af2ea49d983", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-10T17:51:58.955Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2194d64f3c07b7b52bd96af2ea49d983", + "published": "2026-02-10T17:51:58.955Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+155/-1 lines across 6 commits in jesssullivan.github.io.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 155, + "linesRemoved": 1, + "commits": 6, + "repository": "jesssullivan.github.io", + "languages": [ + "Svelte", + "CSS" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/909c5ae402cf42d38ee0c113f829a1f3", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T10:38:22.200Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/909c5ae402cf42d38ee0c113f829a1f3", + "published": "2026-02-09T10:38:22.200Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/286d32eb3623c658e9438650c0e754b8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-08T05:38:05.142Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/286d32eb3623c658e9438650c0e754b8", + "published": "2026-02-08T05:38:05.142Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+114/-42 lines across 7 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 114, + "linesRemoved": 42, + "commits": 7, + "repository": "scheduling-kit", + "languages": [ + "Rust", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/54ddbfd0256d796d45fd6650163cca19", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-07T03:28:07.634Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/54ddbfd0256d796d45fd6650163cca19", + "published": "2026-02-07T03:28:07.634Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/79c37666ab615886cb85257a12ac5920", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-05T18:45:00.405Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/79c37666ab615886cb85257a12ac5920", + "published": "2026-02-05T18:45:00.405Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0701a9911329b65d867d3dd544e1383a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-04T20:57:56.174Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0701a9911329b65d867d3dd544e1383a", + "published": "2026-02-04T20:57:56.174Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Lost Valley trails.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Lost Valley trails", + "latitude": 44.0889, + "longitude": -70.2456 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f51ae3f23de813eb98b98f99a7ea3f0b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-03T09:20:28.035Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f51ae3f23de813eb98b98f99a7ea3f0b", + "published": "2026-02-03T09:20:28.035Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/563c23dcc5c294aceb11de7456cdca25", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-02T04:47:11.026Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/563c23dcc5c294aceb11de7456cdca25", + "published": "2026-02-02T04:47:11.026Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/36ad79113eaf0b376f88e8073d5b92c4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-01T01:43:59.899Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/36ad79113eaf0b376f88e8073d5b92c4", + "published": "2026-02-01T01:43:59.899Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ed951163e16f73b496b764b5ea5c5375", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-31T00:17:20.456Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ed951163e16f73b496b764b5ea5c5375", + "published": "2026-01-31T00:17:20.456Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+114/-29 lines across 6 commits in scheduling-kit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 114, + "linesRemoved": 29, + "commits": 6, + "repository": "scheduling-kit", + "languages": [ + "Svelte", + "Chapel" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/60caf2a69c651c2320366d598767c00b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-29T16:36:32.975Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/60caf2a69c651c2320366d598767c00b", + "published": "2026-01-29T16:36:32.975Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cbe14caa0a0928be9b5554eb363d4cd2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-28T10:36:30.503Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cbe14caa0a0928be9b5554eb363d4cd2", + "published": "2026-01-28T10:36:30.503Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 Eastern Bluebirds at Bradbury Mountain- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Eastern Bluebird", + "scientificName": "Sialia sialis", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 3 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dfc22700861a5a4cdc0f66d34da859a8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-27T04:52:51.732Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dfc22700861a5a4cdc0f66d34da859a8", + "published": "2026-01-27T04:52:51.732Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 White-breasted Nuthatchs at Range Pond State Park- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 3 + } + } + } + ] +} \ No newline at end of file From dceee9a88fa1d3146668f2f926356aa04e1fa807 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sun, 26 Apr 2026 00:09:24 -0400 Subject: [PATCH 05/11] feat: add real git pulse data from 10 local repos generate-git-pulse.mts scans ~/git/ repos for commit history, aggregates by day per repo, and merges real code activities into the mock outbox. 410 code activities from 12,288 commits across 90 days spanning jesssullivan.github.io, XoxdWM, cmux, scheduling-kit, acuity-middleware, eGreg, GloriousFlywheel, rockies, linux-xr, and aperture-bootstrap. Non-code activity types remain mock for now. --- scripts/data/mock-outbox.json | 15838 +++++++++++++++++++++++++++-- scripts/generate-git-pulse.mts | 207 + static/data/activity-outbox.json | 2888 ++++-- 3 files changed, 17218 insertions(+), 1715 deletions(-) create mode 100644 scripts/generate-git-pulse.mts diff --git a/scripts/data/mock-outbox.json b/scripts/data/mock-outbox.json index 355f8b3..8201bec 100644 --- a/scripts/data/mock-outbox.json +++ b/scripts/data/mock-outbox.json @@ -2,7 +2,7 @@ "@context": "https://www.w3.org/ns/activitystreams", "id": "https://tinyland.dev/@jesssullivan/outbox", "type": "OrderedCollection", - "totalItems": 75, + "totalItems": 471, "orderedItems": [ { "@context": [ @@ -37,15 +37,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/171c83ff7da77e555ba84723b44f6e4d", + "id": "https://tinyland.dev/activities/2872a7b0ff0ae434432b44ae4e309096", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-24T18:54:45.491Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/171c83ff7da77e555ba84723b44f6e4d", - "published": "2026-04-24T18:54:45.491Z", + "id": "https://tinyland.dev/notes/2872a7b0ff0ae434432b44ae4e309096", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+38/-18 lines across 4 commits in jesssullivan.github.io.

", + "content": "

+7164 lines across 10 commits in jesssullivan.github.io. feat: add ActivityPub pulse pipeline with mock outbox and /pulse route.

", "tag": [ { "type": "Hashtag", @@ -53,13 +53,15 @@ } ], "tl:codeActivity": { - "linesAdded": 38, - "linesRemoved": 18, - "commits": 4, + "linesAdded": 7366, + "linesRemoved": 202, + "commits": 10, "repository": "jesssullivan.github.io", "languages": [ - "Rust", - "Nix" + "JSON", + "TypeScript", + "Svelte", + "Markdown" ] } } @@ -72,35 +74,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/844b19e6c404a031e441d959af729444", + "id": "https://tinyland.dev/activities/1c79a0a93319351d1bd3f9c521fa7ab2", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-23T20:27:07.482Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/844b19e6c404a031e441d959af729444", - "published": "2026-04-23T20:27:07.482Z", + "id": "https://tinyland.dev/notes/1c79a0a93319351d1bd3f9c521fa7ab2", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 White-breasted Nuthatch at Range Pond State Park.

", + "content": "

+1456 lines across 27 commits in XoxdWM. docs: add honey fresh boot check lane.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "White-breasted Nuthatch", - "scientificName": "Sitta carolinensis", - "location": { - "type": "Place", - "name": "Range Pond State Park", - "latitude": 44.0667, - "longitude": -70.35 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 1919, + "linesRemoved": 463, + "commits": 27, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "YAML", + "Emacs Lisp", + "Nix" + ] } } }, @@ -112,40 +111,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/5fc07342785656832462196def454c95", + "id": "https://tinyland.dev/activities/cb2d93b3b106b103694151f766bc0dfa", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-22T11:47:22.024Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/5fc07342785656832462196def454c95", - "published": "2026-04-22T11:47:22.024Z", + "id": "https://tinyland.dev/notes/cb2d93b3b106b103694151f766bc0dfa", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Office: 20.2C, 39% humidity, CO2 473ppm.

", + "content": "

-7278 lines across 77 commits in cmux. Skip Rocky RPM clean in short-circuit builds.

", "tag": [ { "type": "Hashtag", - "name": "#sensors" + "name": "#code" } ], - "tl:sensorReading": { - "sensorId": "office-env-01", - "sensorType": "environmental", - "measurements": [ - { - "name": "Temperature", - "value": 20.2, - "unit": "C" - }, - { - "name": "Humidity", - "value": 39, - "unit": "%" - }, - { - "name": "CO2", - "value": 473, - "unit": "ppm" - } + "tl:codeActivity": { + "linesAdded": 16664, + "linesRemoved": 23942, + "commits": 77, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "Shell", + "Nix" ] } } @@ -158,21 +148,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/8baad0ce2f103e6155cfe753f1e713b2", + "id": "https://tinyland.dev/activities/9aaa55ae3a8ab5eb14b091ed2dea4709", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-21T10:58:38.890Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/8baad0ce2f103e6155cfe753f1e713b2", - "published": "2026-04-21T10:58:38.890Z", + "id": "https://tinyland.dev/notes/9aaa55ae3a8ab5eb14b091ed2dea4709", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "content": "

+813 lines across 10 commits in scheduling-kit. ci: inherit Bazel fetch retry template (#80).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 928, + "linesRemoved": 115, + "commits": 10, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "Nix", + "JavaScript", + "Markdown" + ] + } } }, { @@ -183,21 +185,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/76663f8cd2b0c17410f6f7a488411ab9", + "id": "https://tinyland.dev/activities/0ae5597821749b0bd44cdc0792f21fac", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-20T05:15:14.737Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/76663f8cd2b0c17410f6f7a488411ab9", - "published": "2026-04-20T05:15:14.737Z", + "id": "https://tinyland.dev/notes/0ae5597821749b0bd44cdc0792f21fac", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+1345 lines across 16 commits in acuity-middleware. ci: inherit Bazel fetch retry template (#83).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 1604, + "linesRemoved": 259, + "commits": 16, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "JavaScript", + "Markdown", + "JSON" + ] + } } }, { @@ -208,15 +222,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/a3aa502a82274eff9a9f2b778c5d89f5", + "id": "https://tinyland.dev/activities/4d34868aaa38e88c3929b4e71b6ccf20", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-18T19:33:51.722Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/a3aa502a82274eff9a9f2b778c5d89f5", - "published": "2026-04-18T19:33:51.722Z", + "id": "https://tinyland.dev/notes/4d34868aaa38e88c3929b4e71b6ccf20", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+249/-116 lines across 6 commits in XoxdWM.

", + "content": "

+160 lines across 2 commits in eGreg. test: add language mode and package availability ERT tests.

", "tag": [ { "type": "Hashtag", @@ -224,13 +238,15 @@ } ], "tl:codeActivity": { - "linesAdded": 249, - "linesRemoved": 116, - "commits": 6, - "repository": "XoxdWM", + "linesAdded": 219, + "linesRemoved": 59, + "commits": 2, + "repository": "eGreg", "languages": [ - "Rust", - "Python" + "Emacs Lisp", + "YAML", + "Markdown", + "Nix" ] } } @@ -243,30 +259,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/f168aced1900ff654ffbb047b0216012", + "id": "https://tinyland.dev/activities/738e49aad46bdf6e1f1ae71cf17e6014", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-17T17:15:09.917Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/f168aced1900ff654ffbb047b0216012", - "published": "2026-04-17T17:15:09.917Z", + "id": "https://tinyland.dev/notes/738e49aad46bdf6e1f1ae71cf17e6014", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

7.6 mi ride along the Nezinscot River road. 29 minutes, 192 ft elevation.

", + "content": "

+10326 lines across 71 commits in GloriousFlywheel. fix(actions): use netrc for attic reads.

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 7.6, - "durationMinutes": 29, - "route": "Nezinscot River road", - "elevationGainFeet": 192 + "tl:codeActivity": { + "linesAdded": 13937, + "linesRemoved": 3611, + "commits": 71, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown", + "Shell", + "TypeScript" + ] } } }, @@ -278,15 +296,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/6349659ddbd5aa54f291c2bd477102df", + "id": "https://tinyland.dev/activities/497ef36ccb14112b901f17c232d31e57", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-16T12:19:14.524Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/6349659ddbd5aa54f291c2bd477102df", - "published": "2026-04-16T12:19:14.524Z", + "id": "https://tinyland.dev/notes/497ef36ccb14112b901f17c232d31e57", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+240/-69 lines across 7 commits in scheduling-kit.

", + "content": "

+293 lines across 3 commits in rockies. docs: record Bigscreen DisplayID parser proof route.

", "tag": [ { "type": "Hashtag", @@ -294,13 +312,13 @@ } ], "tl:codeActivity": { - "linesAdded": 240, - "linesRemoved": 69, - "commits": 7, - "repository": "scheduling-kit", + "linesAdded": 313, + "linesRemoved": 20, + "commits": 3, + "repository": "rockies", "languages": [ - "Nix", - "Zig" + "Markdown", + "Shell" ] } } @@ -313,21 +331,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/70dcf1eea677ecef7446ad7758a6f687", + "id": "https://tinyland.dev/activities/ed2853afa94521abd88cf15b6bf8a228", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-15T06:59:04.235Z", + "published": "2026-04-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/70dcf1eea677ecef7446ad7758a6f687", - "published": "2026-04-15T06:59:04.235Z", + "id": "https://tinyland.dev/notes/ed2853afa94521abd88cf15b6bf8a228", + "published": "2026-04-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+21269 lines across 51 commits in cmux. Add minimal mode regression coverage.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 28846, + "linesRemoved": 7577, + "commits": 51, + "repository": "cmux", + "languages": [ + "Python", + "YAML", + "Markdown", + "JSON" + ] + } } }, { @@ -338,40 +368,28 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/4bf8deda84a2d446645bec1aef7cb37f", + "id": "https://tinyland.dev/activities/a554946051c80977fe1756d98d6b22d4", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-13T23:23:09.634Z", + "published": "2026-04-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/4bf8deda84a2d446645bec1aef7cb37f", - "published": "2026-04-13T23:23:09.634Z", + "id": "https://tinyland.dev/notes/a554946051c80977fe1756d98d6b22d4", + "published": "2026-04-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Office: 25.3C, 51% humidity, CO2 849ppm.

", + "content": "

+4 lines across 2 commits in scheduling-kit. ci: adopt shared tinyland-nix runner contract.

", "tag": [ { "type": "Hashtag", - "name": "#sensors" + "name": "#code" } ], - "tl:sensorReading": { - "sensorId": "office-env-01", - "sensorType": "environmental", - "measurements": [ - { - "name": "Temperature", - "value": 25.3, - "unit": "C" - }, - { - "name": "Humidity", - "value": 51, - "unit": "%" - }, - { - "name": "CO2", - "value": 849, - "unit": "ppm" - } + "tl:codeActivity": { + "linesAdded": 10, + "linesRemoved": 6, + "commits": 2, + "repository": "scheduling-kit", + "languages": [ + "YAML" ] } } @@ -384,35 +402,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/28c58570712d7439caebd0ab1020c539", + "id": "https://tinyland.dev/activities/e8904999d681f5ffb074045b16901442", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-13T00:13:40.251Z", + "published": "2026-04-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/28c58570712d7439caebd0ab1020c539", - "published": "2026-04-13T00:13:40.251Z", + "id": "https://tinyland.dev/notes/e8904999d681f5ffb074045b16901442", + "published": "2026-04-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Barred Owl at Bradbury Mountain.

", + "content": "

+68 lines across 2 commits in acuity-middleware. fix(adapter): normalize custom header collisions.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Bradbury Mountain", - "latitude": 43.9017, - "longitude": -70.1678 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 108, + "linesRemoved": 40, + "commits": 2, + "repository": "acuity-middleware", + "languages": [ + "TypeScript", + "Markdown" + ] } } }, @@ -424,21 +437,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/528e338a58de1cbfe63dd1cf736be68b", + "id": "https://tinyland.dev/activities/46e8737ec929389907edd4c30419955c", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-11T13:48:53.741Z", + "published": "2026-04-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/528e338a58de1cbfe63dd1cf736be68b", - "published": "2026-04-11T13:48:53.741Z", + "id": "https://tinyland.dev/notes/46e8737ec929389907edd4c30419955c", + "published": "2026-04-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+1472 lines across 6 commits in eGreg. test: add ERT tests for feature flags and new module inventory.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 1516, + "linesRemoved": 44, + "commits": 6, + "repository": "eGreg", + "languages": [ + "Emacs Lisp", + "Nix", + "Markdown", + "YAML" + ] + } } }, { @@ -449,21 +474,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/85fb67b23709f2fe936d527762070e81", + "id": "https://tinyland.dev/activities/846353906d71819d918c092848ad344e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-10T09:14:22.538Z", + "published": "2026-04-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/85fb67b23709f2fe936d527762070e81", - "published": "2026-04-10T09:14:22.538Z", + "id": "https://tinyland.dev/notes/846353906d71819d918c092848ad344e", + "published": "2026-04-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "content": "

+1043 lines across 46 commits in GloriousFlywheel. Retry transient heavy Nix proof signal-9 failures.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 5514, + "linesRemoved": 4471, + "commits": 46, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown", + "JavaScript", + "Shell" + ] + } } }, { @@ -474,21 +511,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/415fc624e8866df8c963d644e1f1be54", + "id": "https://tinyland.dev/activities/ba64db600c09e950da33608b60faceac", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-09T09:59:25.056Z", + "published": "2026-04-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/415fc624e8866df8c963d644e1f1be54", - "published": "2026-04-09T09:59:25.056Z", + "id": "https://tinyland.dev/notes/ba64db600c09e950da33608b60faceac", + "published": "2026-04-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+62 lines across 1 commit in rockies. docs: add 2026-04-23 program state check-in.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 68, + "linesRemoved": 6, + "commits": 1, + "repository": "rockies", + "languages": [ + "Markdown" + ] + } } }, { @@ -499,35 +545,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/7231a8ae524df3aad3a3f827f45aa5a4", + "id": "https://tinyland.dev/activities/3d60931e6e83585da9d9159ac09d8c6a", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-08T01:27:47.581Z", + "published": "2026-04-23T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/7231a8ae524df3aad3a3f827f45aa5a4", - "published": "2026-04-08T01:27:47.581Z", + "id": "https://tinyland.dev/notes/3d60931e6e83585da9d9159ac09d8c6a", + "published": "2026-04-23T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Black-capped Chickadees at Lost Valley trails- feeding together in the canopy.

", + "content": "

+18 lines across 4 commits in XoxdWM. docs: narrow honey RT support claims.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Black-capped Chickadee", - "scientificName": "Poecile atricapillus", - "location": { - "type": "Place", - "name": "Lost Valley trails", - "latitude": 44.0889, - "longitude": -70.2456 - }, - "count": 2 + "tl:codeActivity": { + "linesAdded": 23, + "linesRemoved": 5, + "commits": 4, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "Emacs Lisp" + ] } } }, @@ -539,15 +580,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/c5de567b7e605d368fd754a4e3236a47", + "id": "https://tinyland.dev/activities/e841fdc68f3e1621074c9b89be87879c", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-07T01:29:19.980Z", + "published": "2026-04-23T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/c5de567b7e605d368fd754a4e3236a47", - "published": "2026-04-07T01:29:19.980Z", + "id": "https://tinyland.dev/notes/e841fdc68f3e1621074c9b89be87879c", + "published": "2026-04-23T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+3/-2 lines across 2 commits in cmux.

", + "content": "

+9738 lines across 20 commits in cmux. Fix cloud VM websocket attach compatibility.

", "tag": [ { "type": "Hashtag", @@ -555,13 +596,15 @@ } ], "tl:codeActivity": { - "linesAdded": 3, - "linesRemoved": 2, - "commits": 2, + "linesAdded": 11918, + "linesRemoved": 2180, + "commits": 20, "repository": "cmux", "languages": [ - "Svelte", - "TypeScript" + "TypeScript", + "Markdown", + "Go", + "JSON" ] } } @@ -574,35 +617,63 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/82a4da6c231d89280eb76e9c2ea5f7d9", + "id": "https://tinyland.dev/activities/64beb327928c6884487f9989f6290c4f", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-05T13:22:07.137Z", + "published": "2026-04-23T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/82a4da6c231d89280eb76e9c2ea5f7d9", - "published": "2026-04-05T13:22:07.137Z", + "id": "https://tinyland.dev/notes/64beb327928c6884487f9989f6290c4f", + "published": "2026-04-23T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 White-breasted Nuthatch at Androscoggin Riverlands.

", + "content": "

+44 lines across 1 commit in scheduling-kit. Document runner authority truth (#71).

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 66, + "linesRemoved": 22, + "commits": 1, + "repository": "scheduling-kit", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/89876a94420b3adfa04aae95fc3fd1fd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/89876a94420b3adfa04aae95fc3fd1fd", + "published": "2026-04-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+27 lines across 1 commit in acuity-middleware. Document runner authority truth (#72).

", + "tag": [ { "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "White-breasted Nuthatch", - "scientificName": "Sitta carolinensis", - "location": { - "type": "Place", - "name": "Androscoggin Riverlands", - "latitude": 44.0412, - "longitude": -70.1823 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 28, + "linesRemoved": 1, + "commits": 1, + "repository": "acuity-middleware", + "languages": [ + "Markdown" + ] } } }, @@ -614,21 +685,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/09bcca81620daea6b6a7cde10721062d", + "id": "https://tinyland.dev/activities/30c1b5471f443dce3e7cc26a68388d97", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-04T08:58:28.128Z", + "published": "2026-04-23T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/09bcca81620daea6b6a7cde10721062d", - "published": "2026-04-04T08:58:28.128Z", + "id": "https://tinyland.dev/notes/30c1b5471f443dce3e7cc26a68388d97", + "published": "2026-04-23T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "content": "

+6287 lines across 23 commits in GloriousFlywheel. docs: reset pooled substrate dogfood contract.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 7755, + "linesRemoved": 1468, + "commits": 23, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "JSON", + "YAML", + "Shell" + ] + } } }, { @@ -639,21 +722,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/7f9faaf116d3cb8ae69958428614b493", + "id": "https://tinyland.dev/activities/ea874963bd012915cd1425d396e2c450", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-03T06:10:48.133Z", + "published": "2026-04-23T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/7f9faaf116d3cb8ae69958428614b493", - "published": "2026-04-03T06:10:48.133Z", + "id": "https://tinyland.dev/notes/ea874963bd012915cd1425d396e2c450", + "published": "2026-04-23T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+59 lines across 2 commits in rockies. Refresh graphical gate and wlroots proof contracts.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 175, + "linesRemoved": 116, + "commits": 2, + "repository": "rockies", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] + } } }, { @@ -664,15 +758,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/9321d2a2df8137b7659ef519f2d14a64", + "id": "https://tinyland.dev/activities/844b19e6c404a031e441d959af729444", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-02T03:28:04.004Z", + "published": "2026-04-23T20:27:07.482Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/9321d2a2df8137b7659ef519f2d14a64", - "published": "2026-04-02T03:28:04.004Z", + "id": "https://tinyland.dev/notes/844b19e6c404a031e441d959af729444", + "published": "2026-04-23T20:27:07.482Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Black-capped Chickadees at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "content": "

Spotted 1 White-breasted Nuthatch at Range Pond State Park.

", "tag": [ { "type": "Hashtag", @@ -684,15 +778,15 @@ } ], "tl:birdSighting": { - "species": "Black-capped Chickadee", - "scientificName": "Poecile atricapillus", + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", "location": { "type": "Place", - "name": "Thorncrag Bird Sanctuary", - "latitude": 44.1003, - "longitude": -70.2148 + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 }, - "count": 2 + "count": 1 } } }, @@ -704,21 +798,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/57d86b32385872e9ad6e19ac6e1deece", + "id": "https://tinyland.dev/activities/5ecc79c107d945628e55aa9637ab071e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-31T22:19:07.620Z", + "published": "2026-04-22T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/57d86b32385872e9ad6e19ac6e1deece", - "published": "2026-03-31T22:19:07.620Z", + "id": "https://tinyland.dev/notes/5ecc79c107d945628e55aa9637ab071e", + "published": "2026-04-22T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "content": "

+3477 lines across 43 commits in XoxdWM. packaging: fix wlroots rpm payload manifest.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 4437, + "linesRemoved": 960, + "commits": 43, + "repository": "XoxdWM", + "languages": [ + "Emacs Lisp", + "YAML", + "Markdown", + "Dhall" + ] + } } }, { @@ -729,30 +835,66 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "id": "https://tinyland.dev/activities/921c94e42873f2f66b34256a6a964bf9", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-30T14:40:03.052Z", + "published": "2026-04-22T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/a98ec2de40dacf6a0d0ef5b0f3ab5020", - "published": "2026-03-30T14:40:03.052Z", + "id": "https://tinyland.dev/notes/921c94e42873f2f66b34256a6a964bf9", + "published": "2026-04-22T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

14.8 mi ride along the Nezinscot River road. 70 minutes, 670 ft elevation.

", + "content": "

+28254 lines across 169 commits in cmux. fix: ignore empty React Grab links.

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 43017, + "linesRemoved": 14763, + "commits": 169, + "repository": "cmux", + "languages": [ + "TypeScript", + "Go", + "Markdown", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e41cacaa6227a599e6fd0e9ba7befc8e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e41cacaa6227a599e6fd0e9ba7befc8e", + "published": "2026-04-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 2 commits in scheduling-kit. align mirror package validation.

", + "tag": [ { "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 14.8, - "durationMinutes": 70, - "route": "Nezinscot River road", - "elevationGainFeet": 670 + "tl:codeActivity": { + "linesAdded": 4, + "linesRemoved": 4, + "commits": 2, + "repository": "scheduling-kit", + "languages": [ + "YAML" + ] } } }, @@ -764,21 +906,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/3a2bb2869191c279c66d67cc50dfe03e", + "id": "https://tinyland.dev/activities/3a824d16bdaee3c03d1d1c78d77afa0d", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-29T08:51:48.169Z", + "published": "2026-04-22T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/3a2bb2869191c279c66d67cc50dfe03e", - "published": "2026-03-29T08:51:48.169Z", + "id": "https://tinyland.dev/notes/3a824d16bdaee3c03d1d1c78d77afa0d", + "published": "2026-04-22T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "content": "

+3544 lines across 44 commits in GloriousFlywheel. docs: reconcile current state and roadmap.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 4470, + "linesRemoved": 926, + "commits": 44, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "Python", + "JSON", + "YAML" + ] + } } }, { @@ -789,21 +943,13843 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/2f9c17657955b38230c84c38e78dd1ab", + "id": "https://tinyland.dev/activities/96523c2834d4abce9d65527a53bc3f97", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-28T09:18:13.089Z", + "published": "2026-04-22T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/2f9c17657955b38230c84c38e78dd1ab", - "published": "2026-03-28T09:18:13.089Z", + "id": "https://tinyland.dev/notes/96523c2834d4abce9d65527a53bc3f97", + "published": "2026-04-22T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+7801 lines across 27 commits in rockies. Prepare Budgie downstream reboot-persistence consumer lane.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 8699, + "linesRemoved": 898, + "commits": 27, + "repository": "rockies", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5fc07342785656832462196def454c95", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T11:47:22.024Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5fc07342785656832462196def454c95", + "published": "2026-04-22T11:47:22.024Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 20.2C, 39% humidity, CO2 473ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 20.2, + "unit": "C" + }, + { + "name": "Humidity", + "value": 39, + "unit": "%" + }, + { + "name": "CO2", + "value": 473, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/28f759bf46ae21f7d11b1a13fc1460c3", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/28f759bf46ae21f7d11b1a13fc1460c3", + "published": "2026-04-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+131 lines across 5 commits in XoxdWM. Use shared Nix bootstrap in self-hosted fast CI.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 167, + "linesRemoved": 36, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/35bc34de1a2bc0c9d31adbd2fa83748d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/35bc34de1a2bc0c9d31adbd2fa83748d", + "published": "2026-04-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+15935 lines across 128 commits in cmux. Fix CLI SIGPIPE child inheritance and pipe writes.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 19722, + "linesRemoved": 3787, + "commits": 128, + "repository": "cmux", + "languages": [ + "Shell", + "JSON", + "Python", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f89f09e1e7c2d7dd8e9e97319ae7d1b7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f89f09e1e7c2d7dd8e9e97319ae7d1b7", + "published": "2026-04-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1479 lines across 25 commits in GloriousFlywheel. arc-runners: move shared tinyland-nix off honey (#316).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1963, + "linesRemoved": 484, + "commits": 25, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "YAML", + "Shell", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/abed96ec5418efa41c4041e2f705996f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/abed96ec5418efa41c4041e2f705996f", + "published": "2026-04-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9553 lines across 22 commits in rockies. [codex] Define Budgie graphical VM execution gate (#106).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 9964, + "linesRemoved": 411, + "commits": 22, + "repository": "rockies", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8baad0ce2f103e6155cfe753f1e713b2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T10:58:38.890Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8baad0ce2f103e6155cfe753f1e713b2", + "published": "2026-04-21T10:58:38.890Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b0dbaa11a63781599479ef5d53b01aae", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b0dbaa11a63781599479ef5d53b01aae", + "published": "2026-04-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+84 lines across 5 commits in XoxdWM. ci: bound runner health smoke and update checkout.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 96, + "linesRemoved": 12, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1dac50c7af83613855504464d43b9216", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1dac50c7af83613855504464d43b9216", + "published": "2026-04-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+13407 lines across 83 commits in cmux. vm(freestyle): bump snapshot to sc-doh8fm44ttlhq1ji675h.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 15536, + "linesRemoved": 2129, + "commits": 83, + "repository": "cmux", + "languages": [ + "TypeScript", + "Markdown", + "JavaScript", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1e2c37143bfaf31387cbad8db13d0614", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1e2c37143bfaf31387cbad8db13d0614", + "published": "2026-04-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2960 lines across 30 commits in GloriousFlywheel. Add run-driven honey checkout triage.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3981, + "linesRemoved": 1021, + "commits": 30, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "Python", + "JSON", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/afc2dab373b3ceb6097b75df2d518ef6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/afc2dab373b3ceb6097b75df2d518ef6", + "published": "2026-04-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+15993 lines across 36 commits in rockies. [codex] Add Budgie platform-gate next-phase proof (#85).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 16325, + "linesRemoved": 332, + "commits": 36, + "repository": "rockies", + "languages": [ + "YAML", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/76663f8cd2b0c17410f6f7a488411ab9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T05:15:14.737Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/76663f8cd2b0c17410f6f7a488411ab9", + "published": "2026-04-20T05:15:14.737Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/742e54435ca7d3144114da1444edee38", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/742e54435ca7d3144114da1444edee38", + "published": "2026-04-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+14 lines across 3 commits in XoxdWM. ci: gate Honey hardware lanes explicitly.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 68, + "linesRemoved": 54, + "commits": 3, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5875d34319c508f18541a7627855523c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5875d34319c508f18541a7627855523c", + "published": "2026-04-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+16296 lines across 44 commits in cmux. Fix config settings editor focus.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 18239, + "linesRemoved": 1943, + "commits": 44, + "repository": "cmux", + "languages": [ + "Markdown", + "TypeScript", + "JSON", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2727a71262607c89609a954cdef208ae", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2727a71262607c89609a954cdef208ae", + "published": "2026-04-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1344 lines across 7 commits in acuity-middleware. feat(paper): phase 1 scaffold — LaTeX, bibtex, figure generators (T23/M8).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2045, + "linesRemoved": 701, + "commits": 7, + "repository": "acuity-middleware", + "languages": [ + "Markdown", + "Python", + "JavaScript", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/88dc4fac6db018535d3787d5b4f83fde", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/88dc4fac6db018535d3787d5b4f83fde", + "published": "2026-04-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+12577 lines across 44 commits in GloriousFlywheel. fix(ci): skip nix bootstrap on preprovisioned runners.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 18604, + "linesRemoved": 6027, + "commits": 44, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Nix", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/bcdf25362cdadf8e7e2ba2b880bea080", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/bcdf25362cdadf8e7e2ba2b880bea080", + "published": "2026-04-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2630 lines across 24 commits in rockies. add wlroots podman validation helper (#41).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2842, + "linesRemoved": 212, + "commits": 24, + "repository": "rockies", + "languages": [ + "Markdown", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a8b34da7f75b4b1d36d265cf656ebdbb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a8b34da7f75b4b1d36d265cf656ebdbb", + "published": "2026-04-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 3 commits in XoxdWM. ci: target repo scoped xoxdwm nix lane.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2, + "linesRemoved": 2, + "commits": 3, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e9a48b973bc0d8228e34bfe549be3398", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e9a48b973bc0d8228e34bfe549be3398", + "published": "2026-04-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-2964781 lines across 83 commits in cmux. Address paste PR review feedback.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11365, + "linesRemoved": 2976146, + "commits": 83, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "Zig", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7d1b86f9d43962c947578cc5c8d60ee8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7d1b86f9d43962c947578cc5c8d60ee8", + "published": "2026-04-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+757 lines across 22 commits in scheduling-kit. test(adapter): multi-step booking lifecycle tests (#70).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 829, + "linesRemoved": 72, + "commits": 22, + "repository": "scheduling-kit", + "languages": [ + "TypeScript", + "Nix", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5260be534ffdf1e3106b2fcd4540461a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5260be534ffdf1e3106b2fcd4540461a", + "published": "2026-04-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3566 lines across 25 commits in acuity-middleware. ci(deploy): K8s CD workflow via Kustomize overlay (#65).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4464, + "linesRemoved": 898, + "commits": 25, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "Shell", + "TypeScript", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/bba98e6dc87ccafb81501e4527a6503f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/bba98e6dc87ccafb81501e4527a6503f", + "published": "2026-04-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6635 lines across 22 commits in GloriousFlywheel. infra: raise heavy nix runner headroom.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6913, + "linesRemoved": 278, + "commits": 22, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1932980934cf5439bee8f523871193b4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1932980934cf5439bee8f523871193b4", + "published": "2026-04-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+156 lines across 1 commit in jesssullivan.github.io. feat: add blog linear authoring metadata contract (#70).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 160, + "linesRemoved": 4, + "commits": 1, + "repository": "jesssullivan.github.io", + "languages": [ + "Markdown", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4ed05fdce5d372bb47b8fe27004847c8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4ed05fdce5d372bb47b8fe27004847c8", + "published": "2026-04-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 1 commit in XoxdWM. ci: remove fork gate from shared self hosted paths.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 16, + "linesRemoved": 16, + "commits": 1, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/403b33a3f5678b618aa006898d94f459", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/403b33a3f5678b618aa006898d94f459", + "published": "2026-04-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+14572 lines across 49 commits in cmux. Harden GhosttyKit prebuilt fetch and build locking.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 17542, + "linesRemoved": 2970, + "commits": 49, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Markdown", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cc31f103be206d4d4f71747e163c2ca9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cc31f103be206d4d4f71747e163c2ca9", + "published": "2026-04-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+75 lines across 2 commits in scheduling-kit. [codex] Make package lane repo-owned and isolated (#64).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 132, + "linesRemoved": 57, + "commits": 2, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "Svelte", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/564801074d80b73fc2ca8a09cc34531d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/564801074d80b73fc2ca8a09cc34531d", + "published": "2026-04-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3592 lines across 13 commits in acuity-middleware. fix(paper): align cache_hit_ratio with actual rollup schema.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4360, + "linesRemoved": 768, + "commits": 13, + "repository": "acuity-middleware", + "languages": [ + "Python", + "JavaScript", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/96c509895c3707a747c826dc492d25ca", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/96c509895c3707a747c826dc492d25ca", + "published": "2026-04-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+125 lines across 13 commits in GloriousFlywheel. ci: upgrade workflow actions for node24 runtime.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 536, + "linesRemoved": 411, + "commits": 13, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f168aced1900ff654ffbb047b0216012", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-17T17:15:09.917Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f168aced1900ff654ffbb047b0216012", + "published": "2026-04-17T17:15:09.917Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

7.6 mi ride along the Nezinscot River road. 29 minutes, 192 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 7.6, + "durationMinutes": 29, + "route": "Nezinscot River road", + "elevationGainFeet": 192 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7839743d2786029a280cdb9cce7969df", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7839743d2786029a280cdb9cce7969df", + "published": "2026-04-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+5199 lines across 10 commits in jesssullivan.github.io. [codex] harden blog week 1 surface (#69).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 36893, + "linesRemoved": 31694, + "commits": 10, + "repository": "jesssullivan.github.io", + "languages": [ + "YAML", + "JSON", + "Markdown", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ff3bff657be6012bb4938c3eb6ab919a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ff3bff657be6012bb4938c3eb6ab919a", + "published": "2026-04-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+11 lines across 1 commit in XoxdWM. ci: align shared runner contract.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 29, + "linesRemoved": 18, + "commits": 1, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b26e0b5cb1b977d0998cc3d3916fe4a4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b26e0b5cb1b977d0998cc3d3916fe4a4", + "published": "2026-04-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6077 lines across 46 commits in cmux. test: cover retained browser and markdown hosts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10938, + "linesRemoved": 4861, + "commits": 46, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9776689930d8ba674703489eea4a1178", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9776689930d8ba674703489eea4a1178", + "published": "2026-04-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+334 lines across 18 commits in scheduling-kit. chore: adopt shared bazel package workflow (#11).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1678, + "linesRemoved": 1344, + "commits": 18, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "Markdown", + "JavaScript", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9175fb4c668279ed9307bfe09d080483", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9175fb4c668279ed9307bfe09d080483", + "published": "2026-04-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+750 lines across 18 commits in acuity-middleware. [codex] adopt shared Bazel package workflow (#42).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1310, + "linesRemoved": 560, + "commits": 18, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "Markdown", + "TypeScript", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/70d7d1859438bec67c9ccc4e6f0341a6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/70d7d1859438bec67c9ccc4e6f0341a6", + "published": "2026-04-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+18317 lines across 17 commits in GloriousFlywheel. ops: tighten runtime integrity audits and runbooks.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 21057, + "linesRemoved": 2740, + "commits": 17, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "Shell", + "TypeScript", + "Svelte" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6c1cd316e7208dd2c31ffed0b8eb8681", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6c1cd316e7208dd2c31ffed0b8eb8681", + "published": "2026-04-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+59 lines across 2 commits in XoxdWM. test(greptile): canary PR to verify review check integration.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 59, + "linesRemoved": 0, + "commits": 2, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/abfba96059a2b6faf136ecd40756d45a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/abfba96059a2b6faf136ecd40756d45a", + "published": "2026-04-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2006 lines across 56 commits in cmux. Move pane file-drop ownership into Workspace.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8032, + "linesRemoved": 6026, + "commits": 56, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "Python", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ad5be114dc3515a8f0940447fcc95740", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ad5be114dc3515a8f0940447fcc95740", + "published": "2026-04-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+64 lines across 5 commits in scheduling-kit. build(bazel): publish scheduling-kit from bazel artifact.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 126, + "linesRemoved": 62, + "commits": 5, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "JSON", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0a2b5fa9e383a5251781476c85f4086d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0a2b5fa9e383a5251781476c85f4086d", + "published": "2026-04-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+62 lines across 2 commits in acuity-middleware. build(bazel): publish bridge from bazel artifact.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 108, + "linesRemoved": 46, + "commits": 2, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "JSON", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dabba56a657ad59935feade094656a1c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dabba56a657ad59935feade094656a1c", + "published": "2026-04-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2105 lines across 7 commits in GloriousFlywheel. feat(ci): FlakeHub publishing workflow (#198).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2743, + "linesRemoved": 638, + "commits": 7, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Nix", + "TypeScript", + "Svelte" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/70dcf1eea677ecef7446ad7758a6f687", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-15T06:59:04.235Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/70dcf1eea677ecef7446ad7758a6f687", + "published": "2026-04-15T06:59:04.235Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d9481a631f6894df5c8fb3516d120609", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d9481a631f6894df5c8fb3516d120609", + "published": "2026-04-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10789 lines across 62 commits in cmux. daemon: add workspace.open_pane RPC.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 13084, + "linesRemoved": 2295, + "commits": 62, + "repository": "cmux", + "languages": [ + "Zig", + "JSON", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e4bdb5ac5fa742f55d4c1cce973fced4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e4bdb5ac5fa742f55d4c1cce973fced4", + "published": "2026-04-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1718 lines across 13 commits in scheduling-kit. feat(payments)!: converge PaymentCapabilities contract from tinyland-inc (#45).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2052, + "linesRemoved": 334, + "commits": 13, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "JSON", + "Svelte", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/99a22a60a64e099e70e75a2f6b217e2b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/99a22a60a64e099e70e75a2f6b217e2b", + "published": "2026-04-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+181 lines across 1 commit in acuity-middleware. feat: extractCapabilities for PaymentCapabilities contract (#25).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 183, + "linesRemoved": 2, + "commits": 1, + "repository": "acuity-middleware", + "languages": [ + "JSON", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4bf8deda84a2d446645bec1aef7cb37f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T23:23:09.634Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4bf8deda84a2d446645bec1aef7cb37f", + "published": "2026-04-13T23:23:09.634Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 25.3C, 51% humidity, CO2 849ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 25.3, + "unit": "C" + }, + { + "name": "Humidity", + "value": 51, + "unit": "%" + }, + { + "name": "CO2", + "value": 849, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c1f7623dd90ea4c65dcbefce77b485c3", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c1f7623dd90ea4c65dcbefce77b485c3", + "published": "2026-04-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+212 lines across 13 commits in XoxdWM. Stamp release version into build inputs.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 303, + "linesRemoved": 91, + "commits": 13, + "repository": "XoxdWM", + "languages": [ + "YAML", + "TOML", + "Nix", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/51cdea13d199f63c1bd7e9118079e67f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/51cdea13d199f63c1bd7e9118079e67f", + "published": "2026-04-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-2905864 lines across 107 commits in cmux. fix: prune old nightly release assets (#2882).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 72788, + "linesRemoved": 2978652, + "commits": 107, + "repository": "cmux", + "languages": [ + "YAML", + "Python", + "JSON", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3d6d70b30da7572f0002f6e9645ed5b0", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3d6d70b30da7572f0002f6e9645ed5b0", + "published": "2026-04-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+246 lines across 1 commit in scheduling-kit. docs: add agent and llm operating brief (#42).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 246, + "linesRemoved": 0, + "commits": 1, + "repository": "scheduling-kit", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/671a569bc0167ed311adaa6e4d328f16", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/671a569bc0167ed311adaa6e4d328f16", + "published": "2026-04-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+372 lines across 4 commits in acuity-middleware. docs: add agent and llm operating brief (#22).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 423, + "linesRemoved": 51, + "commits": 4, + "repository": "acuity-middleware", + "languages": [ + "Markdown", + "TypeScript", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/997e9cba484bcf43a4a1d2a9918bf95a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/997e9cba484bcf43a4a1d2a9918bf95a", + "published": "2026-04-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+181 lines across 1 commit in linux-xr. Add thin Nix and Determinate CI surface.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 181, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "YAML", + "Markdown", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/28c58570712d7439caebd0ab1020c539", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-13T00:13:40.251Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/28c58570712d7439caebd0ab1020c539", + "published": "2026-04-13T00:13:40.251Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Bradbury Mountain.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/665e8b5cb83148358c0d7bac44d8ba9b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/665e8b5cb83148358c0d7bac44d8ba9b", + "published": "2026-04-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+97 lines across 19 commits in XoxdWM. Align Rocky RPM naming in docs.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 202, + "linesRemoved": 105, + "commits": 19, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "YAML", + "Rust", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/65da9a36311edee73ef33bc61f88bb0b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/65da9a36311edee73ef33bc61f88bb0b", + "published": "2026-04-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7277 lines across 37 commits in cmux. hello: advertise terminal.subscribe/workspace.subscribe/notifications.push.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7934, + "linesRemoved": 657, + "commits": 37, + "repository": "cmux", + "languages": [ + "Zig", + "Markdown", + "Shell", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ed770ed03f4659fbb16052576bdc8487", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ed770ed03f4659fbb16052576bdc8487", + "published": "2026-04-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+192 lines across 5 commits in scheduling-kit. ci: enforce Bazel release metadata truth (#40).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 331, + "linesRemoved": 139, + "commits": 5, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "Markdown", + "JSON", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6447d358f9d12e5daef4f436c81172f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6447d358f9d12e5daef4f436c81172f7", + "published": "2026-04-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+349 lines across 2 commits in acuity-middleware. perf: warm browser runtime and cache services (#17).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 717, + "linesRemoved": 368, + "commits": 2, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "Markdown", + "TypeScript", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b7f892a67de1639ceef77acde4b4576a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b7f892a67de1639ceef77acde4b4576a", + "published": "2026-04-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+52 lines across 8 commits in linux-xr. Document validated honey and yoga rollout state.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 74, + "linesRemoved": 22, + "commits": 8, + "repository": "linux-xr", + "languages": [ + "Markdown", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/df15c934f975808235b13a6d0684423b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/df15c934f975808235b13a6d0684423b", + "published": "2026-04-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+906 lines across 5 commits in XoxdWM. Scope self-hosted CI to available runner infra (#14).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 980, + "linesRemoved": 74, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Markdown", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dd8db92d573732a385aaccd9210d0e42", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dd8db92d573732a385aaccd9210d0e42", + "published": "2026-04-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2192 lines across 50 commits in cmux. Extract OSC title/directory from PTY output in daemon.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3927, + "linesRemoved": 1735, + "commits": 50, + "repository": "cmux", + "languages": [ + "Zig", + "YAML", + "Nix", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b4eb95cd5b6e12d6e7944e53cd9f94d4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b4eb95cd5b6e12d6e7944e53cd9f94d4", + "published": "2026-04-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2924 lines across 16 commits in scheduling-kit. chore: bump to 0.6.1 (status helpers) (#34).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2932, + "linesRemoved": 8, + "commits": 16, + "repository": "scheduling-kit", + "languages": [ + "JSON", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4dd597c7c66be56444a9e0936e39cbc6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4dd597c7c66be56444a9e0936e39cbc6", + "published": "2026-04-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1413 lines across 8 commits in linux-xr. Move CI ccache out of the checkout workspace.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1529, + "linesRemoved": 116, + "commits": 8, + "repository": "linux-xr", + "languages": [ + "YAML", + "Markdown", + "Shell", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/528e338a58de1cbfe63dd1cf736be68b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-11T13:48:53.741Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/528e338a58de1cbfe63dd1cf736be68b", + "published": "2026-04-11T13:48:53.741Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1cfd5f6a50e507762d4f5e4920af05e5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1cfd5f6a50e507762d4f5e4920af05e5", + "published": "2026-04-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2160 lines across 43 commits in cmux. fix: use subshells for bash async cmux jobs.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3020, + "linesRemoved": 860, + "commits": 43, + "repository": "cmux", + "languages": [ + "Shell", + "Python", + "Markdown", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8bb59af611e0bff04b08122d18f9bb63", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8bb59af611e0bff04b08122d18f9bb63", + "published": "2026-04-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+18 lines across 6 commits in scheduling-kit. chore: bump to 0.5.2 (PayPal return URLs) (#20).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 21, + "linesRemoved": 3, + "commits": 6, + "repository": "scheduling-kit", + "languages": [ + "JSON", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/85fb67b23709f2fe936d527762070e81", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-10T09:14:22.538Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/85fb67b23709f2fe936d527762070e81", + "published": "2026-04-10T09:14:22.538Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3e5c16028ed2862d425178122daf73bb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3e5c16028ed2862d425178122daf73bb", + "published": "2026-04-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-24206 lines across 35 commits in cmux. Fix terminal latency and attachment leak in daemon bridge.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4936, + "linesRemoved": 29142, + "commits": 35, + "repository": "cmux", + "languages": [ + "Zig", + "YAML", + "Shell", + "Go" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/415fc624e8866df8c963d644e1f1be54", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-09T09:59:25.056Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/415fc624e8866df8c963d644e1f1be54", + "published": "2026-04-09T09:59:25.056Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/77e30775457786b8fd07ef4513d0a5f6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/77e30775457786b8fd07ef4513d0a5f6", + "published": "2026-04-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3551 lines across 72 commits in cmux. Restore unsafeBitCast shim for clipboard callback cross-importer compatibility.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5873, + "linesRemoved": 2322, + "commits": 72, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Python", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/20341d4c52883dcac06b66ef547a407f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/20341d4c52883dcac06b66ef547a407f", + "published": "2026-04-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+30 lines across 7 commits in scheduling-kit. fix(ci): use @jesssullivan scope for GitHub Packages mirror (#18).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 38, + "linesRemoved": 8, + "commits": 7, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "JSON", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7231a8ae524df3aad3a3f827f45aa5a4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-08T01:27:47.581Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7231a8ae524df3aad3a3f827f45aa5a4", + "published": "2026-04-08T01:27:47.581Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Black-capped Chickadees at Lost Valley trails- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Black-capped Chickadee", + "scientificName": "Poecile atricapillus", + "location": { + "type": "Place", + "name": "Lost Valley trails", + "latitude": 44.0889, + "longitude": -70.2456 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/eba22b3aa5b4dd7aca4eb0e1292aaaed", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/eba22b3aa5b4dd7aca4eb0e1292aaaed", + "published": "2026-04-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9482 lines across 41 commits in cmux. iOS: enable Metal renderer colors via synchronous rendering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 15806, + "linesRemoved": 6324, + "commits": 41, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Go", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8899fe566a1085ff4edc021fcdd0175b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8899fe566a1085ff4edc021fcdd0175b", + "published": "2026-04-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+277 lines across 3 commits in scheduling-kit. feat: v0.5.0 - remove acuity-scraper, add Bazel 8 config (#11).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1132, + "linesRemoved": 855, + "commits": 3, + "repository": "scheduling-kit", + "languages": [ + "Markdown", + "JSON", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b7d64fb473f68e9a7291430d874495a4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b7d64fb473f68e9a7291430d874495a4", + "published": "2026-04-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+866 lines across 8 commits in acuity-middleware. docs(paper): update for scheduling-bridge architecture and FOSS offramp thesis (#11).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1210, + "linesRemoved": 344, + "commits": 8, + "repository": "acuity-middleware", + "languages": [ + "Markdown", + "JSON", + "YAML", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e09cf2e3f43ad6c1a0894cf24dd5011d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e09cf2e3f43ad6c1a0894cf24dd5011d", + "published": "2026-04-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+20689 lines across 112 commits in cmux. Make global hotkey safer to bind and toggle.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 24170, + "linesRemoved": 3481, + "commits": 112, + "repository": "cmux", + "languages": [ + "TypeScript", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f4b696d304ab8de5aa88bc47d0f066ed", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f4b696d304ab8de5aa88bc47d0f066ed", + "published": "2026-04-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1587 lines across 6 commits in scheduling-kit. refactor!: remove acuity-scraper adapter.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5, + "linesRemoved": 1592, + "commits": 6, + "repository": "scheduling-kit", + "languages": [ + "Markdown", + "TypeScript", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c78cc96b81cc99dd0bebed8eec4ddcf6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c78cc96b81cc99dd0bebed8eec4ddcf6", + "published": "2026-04-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+577 lines across 12 commits in acuity-middleware. fix: update stale fp-ts references in source comments (#7).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 724, + "linesRemoved": 147, + "commits": 12, + "repository": "acuity-middleware", + "languages": [ + "TypeScript", + "JSON", + "Markdown", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/aa8b400ae06531964a11869578993f2c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/aa8b400ae06531964a11869578993f2c", + "published": "2026-04-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+21718 lines across 63 commits in cmux. Fix double-title in settings window toolbar.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 25366, + "linesRemoved": 3648, + "commits": 63, + "repository": "cmux", + "languages": [ + "Markdown", + "TypeScript", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f7607d45564acd683401c76417398996", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f7607d45564acd683401c76417398996", + "published": "2026-04-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-22428 lines across 4 commits in scheduling-kit. refactor!: remove middleware code (belongs in acuity-middleware) (#10).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 130, + "linesRemoved": 22558, + "commits": 4, + "repository": "scheduling-kit", + "languages": [ + "Python", + "JSON", + "YAML", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1762d75fe4ad819196bddc010471a975", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1762d75fe4ad819196bddc010471a975", + "published": "2026-04-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3630 lines across 7 commits in acuity-middleware. fix(wizard): increase payment page navigation timeout to 30s.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4519, + "linesRemoved": 889, + "commits": 7, + "repository": "acuity-middleware", + "languages": [ + "TypeScript", + "JSON", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/82a4da6c231d89280eb76e9c2ea5f7d9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-05T13:22:07.137Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/82a4da6c231d89280eb76e9c2ea5f7d9", + "published": "2026-04-05T13:22:07.137Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 White-breasted Nuthatch at Androscoggin Riverlands.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/027988f248f31801e6b3194207d9b81f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/027988f248f31801e6b3194207d9b81f", + "published": "2026-04-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1285 lines across 21 commits in cmux. Revert unintended xcstrings change in accessibility.workspacePosition.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1785, + "linesRemoved": 500, + "commits": 21, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "Zig", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09bcca81620daea6b6a7cde10721062d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-04T08:58:28.128Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09bcca81620daea6b6a7cde10721062d", + "published": "2026-04-04T08:58:28.128Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1e8def1533b833f3c9f94ee6fe5a4fef", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1e8def1533b833f3c9f94ee6fe5a4fef", + "published": "2026-04-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+31738 lines across 73 commits in cmux. Fix workspace color picker menu redraw.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 35374, + "linesRemoved": 3636, + "commits": 73, + "repository": "cmux", + "languages": [ + "Markdown", + "Python", + "Shell", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d98c0d978d6118650aeb9bd0b0a64998", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d98c0d978d6118650aeb9bd0b0a64998", + "published": "2026-04-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 1 commit in GloriousFlywheel. docs(runners): remove stale bates-*/rocky8/rocky9 references (#165).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 22, + "linesRemoved": 22, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7f9faaf116d3cb8ae69958428614b493", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-03T06:10:48.133Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7f9faaf116d3cb8ae69958428614b493", + "published": "2026-04-03T06:10:48.133Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/466a5b7a454ee8ae41d0423aebbd5693", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-02T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/466a5b7a454ee8ae41d0423aebbd5693", + "published": "2026-04-02T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7910 lines across 51 commits in cmux. Add managed settings.json defaults and schema docs.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 9489, + "linesRemoved": 1579, + "commits": 51, + "repository": "cmux", + "languages": [ + "TypeScript", + "JSON", + "Zig", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9321d2a2df8137b7659ef519f2d14a64", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-02T03:28:04.004Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9321d2a2df8137b7659ef519f2d14a64", + "published": "2026-04-02T03:28:04.004Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Black-capped Chickadees at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Black-capped Chickadee", + "scientificName": "Poecile atricapillus", + "location": { + "type": "Place", + "name": "Thorncrag Bird Sanctuary", + "latitude": 44.1003, + "longitude": -70.2148 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/54c545a5f5bfb22b0a39ba202902bbcc", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/54c545a5f5bfb22b0a39ba202902bbcc", + "published": "2026-04-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6737 lines across 96 commits in cmux. Preserve explicit wheel state on duplicate scrollbar packets.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8810, + "linesRemoved": 2073, + "commits": 96, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "Go", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/57d86b32385872e9ad6e19ac6e1deece", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-31T22:19:07.620Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/57d86b32385872e9ad6e19ac6e1deece", + "published": "2026-03-31T22:19:07.620Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/183e0fdf9fa2703bb19c007cdd65d0f9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-31T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/183e0fdf9fa2703bb19c007cdd65d0f9", + "published": "2026-03-31T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4726 lines across 38 commits in cmux. Fix zsh EPOCHSECONDS fallback.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5418, + "linesRemoved": 692, + "commits": 38, + "repository": "cmux", + "languages": [ + "Shell", + "Python", + "Markdown", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/081a56cc735df32332dc774648aeb53e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-31T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/081a56cc735df32332dc774648aeb53e", + "published": "2026-03-31T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+25 lines across 1 commit in GloriousFlywheel. feat(tofu): migrate state backend from GitLab HTTP to RustFS S3 (#164).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 84, + "linesRemoved": 59, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/eea7fe3ff12a7677dab8f6c62e1e8aff", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-30T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/eea7fe3ff12a7677dab8f6c62e1e8aff", + "published": "2026-03-30T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+17218 lines across 194 commits in cmux. Fix Speakly escape leak on text insertion.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 36088, + "linesRemoved": 18870, + "commits": 194, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Zig", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-30T14:40:03.052Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "published": "2026-03-30T14:40:03.052Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

14.8 mi ride along the Nezinscot River road. 70 minutes, 670 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 14.8, + "durationMinutes": 70, + "route": "Nezinscot River road", + "elevationGainFeet": 670 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/18e6cdbeeda8108127c694d7aa204cfc", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-29T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/18e6cdbeeda8108127c694d7aa204cfc", + "published": "2026-03-29T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3466 lines across 20 commits in cmux. Restore browser theme mode without CSS injection.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3993, + "linesRemoved": 527, + "commits": 20, + "repository": "cmux", + "languages": [ + "YAML", + "Zig", + "Markdown", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/892df46b3ab226c3ca1485ffd1b55445", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-29T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/892df46b3ab226c3ca1485ffd1b55445", + "published": "2026-03-29T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7255 lines across 3 commits in scheduling-kit. fix: repository URL must match publish provenance (Jesssullivan not tinyland-inc) (#8).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7897, + "linesRemoved": 642, + "commits": 3, + "repository": "scheduling-kit", + "languages": [ + "JSON", + "YAML", + "Python", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/76286056ad29b7029259f5dff1b37907", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-29T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/76286056ad29b7029259f5dff1b37907", + "published": "2026-03-29T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+56 lines across 4 commits in acuity-middleware. fix: build full ISO datetime for slot responses, not just time string.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 146, + "linesRemoved": 90, + "commits": 4, + "repository": "acuity-middleware", + "languages": [ + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3a2bb2869191c279c66d67cc50dfe03e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-29T08:51:48.169Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3a2bb2869191c279c66d67cc50dfe03e", + "published": "2026-03-29T08:51:48.169Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09b48df3b1685f23994049d39bde12fe", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09b48df3b1685f23994049d39bde12fe", + "published": "2026-03-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10868 lines across 76 commits in cmux. Add Nix flake Linux dev environment + VM testing + CI matrix (#103).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 12077, + "linesRemoved": 1209, + "commits": 76, + "repository": "cmux", + "languages": [ + "YAML", + "Nix", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b1e13d68ff58e45c264d63826f48be55", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b1e13d68ff58e45c264d63826f48be55", + "published": "2026-03-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-3 lines across 2 commits in scheduling-kit. chore: bump version to 0.2.1.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 86, + "linesRemoved": 89, + "commits": 2, + "repository": "scheduling-kit", + "languages": [ + "JSON", + "TypeScript", + "Svelte" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5ff2e90a15de7434d5369f12fb38d240", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5ff2e90a15de7434d5369f12fb38d240", + "published": "2026-03-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1494 lines across 6 commits in acuity-middleware. refactor: extract inline readDatesViaUrl/readSlotsViaUrl into step file.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3458, + "linesRemoved": 1964, + "commits": 6, + "repository": "acuity-middleware", + "languages": [ + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1180ad09ce5e94ac713819065f7f3603", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1180ad09ce5e94ac713819065f7f3603", + "published": "2026-03-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-61 lines across 1 commit in GloriousFlywheel. chore: remove dead OutBot and HuskyCat configs (#163).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 0, + "linesRemoved": 61, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2f9c17657955b38230c84c38e78dd1ab", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-28T09:18:13.089Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2f9c17657955b38230c84c38e78dd1ab", + "published": "2026-03-28T09:18:13.089Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8ef57aa51af465f9c2d27ed5d50b34f3", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8ef57aa51af465f9c2d27ed5d50b34f3", + "published": "2026-03-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+11087 lines across 57 commits in cmux. fix: honor CJK-capable font-family before fallback injection (#2241).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11784, + "linesRemoved": 697, + "commits": 57, + "repository": "cmux", + "languages": [ + "Go", + "Markdown", + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4c69a5c63b9d1a3334e6cc03c4f44818", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4c69a5c63b9d1a3334e6cc03c4f44818", + "published": "2026-03-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-716 lines across 9 commits in scheduling-kit. chore: remove fp-ts dependency, bump to 0.2.0.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 903, + "linesRemoved": 1619, + "commits": 9, + "repository": "scheduling-kit", + "languages": [ + "JSON", + "YAML", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/58add09980116d83c123d6e62a85ca95", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/58add09980116d83c123d6e62a85ca95", + "published": "2026-03-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+13 lines across 8 commits in acuity-middleware. fix(availability): use URL-param navigation instead of click-through.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1284, + "linesRemoved": 1271, + "commits": 8, + "repository": "acuity-middleware", + "languages": [ + "JSON", + "YAML", + "TypeScript", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/da3f7c75301f453d3e2ff6dc2b5b670f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/da3f7c75301f453d3e2ff6dc2b5b670f", + "published": "2026-03-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+32 lines across 1 commit in jesssullivan.github.io. feat: add WebFinger endpoint for ActivityPub federation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 32, + "linesRemoved": 0, + "commits": 1, + "repository": "jesssullivan.github.io", + "languages": [ + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/701e5971e4fdb7c30b88e4d64531521d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/701e5971e4fdb7c30b88e4d64531521d", + "published": "2026-03-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+13120 lines across 98 commits in cmux. fix: honor CJK-capable font-family before fallback injection.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 15588, + "linesRemoved": 2468, + "commits": 98, + "repository": "cmux", + "languages": [ + "Markdown", + "Go", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b695d2f761b05fa077539d2553ac35e2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b695d2f761b05fa077539d2553ac35e2", + "published": "2026-03-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-491 lines across 6 commits in GloriousFlywheel. fix(ci): pin actions to SHA, add concurrency groups, fix action paths.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 130, + "linesRemoved": 621, + "commits": 6, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "TypeScript", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ebd9c12ddc22968dae8b5b6d03057995", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-26T00:19:32.902Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ebd9c12ddc22968dae8b5b6d03057995", + "published": "2026-03-26T00:19:32.902Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d485b42bd9f161ce56b88217cdd1c64c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d485b42bd9f161ce56b88217cdd1c64c", + "published": "2026-03-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+16616 lines across 114 commits in cmux. Use Chrome runtime with child window overlay.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 18380, + "linesRemoved": 1764, + "commits": 114, + "repository": "cmux", + "languages": [ + "C++", + "Shell", + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/86047ea884b392cb3bf740723a2e74d8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/86047ea884b392cb3bf740723a2e74d8", + "published": "2026-03-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+8160 lines across 100 commits in cmux. feat: add arrow keys, shift+tab, home/end/delete/pageup/pagedown to sendNamedKey (#1920).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11733, + "linesRemoved": 3573, + "commits": 100, + "repository": "cmux", + "languages": [ + "C++", + "C", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5af84fe281277fcb1b772c9962a25ab4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5af84fe281277fcb1b772c9962a25ab4", + "published": "2026-03-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10692 lines across 6 commits in acuity-middleware. feat: add technical depth to IEEE paper with code listings, TikZ diagrams, and factual corrections.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10734, + "linesRemoved": 42, + "commits": 6, + "repository": "acuity-middleware", + "languages": [ + "JavaScript", + "JSON", + "YAML", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/bb1066840b483f3dc3c88dd46aa01112", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/bb1066840b483f3dc3c88dd46aa01112", + "published": "2026-03-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-200 lines across 7 commits in GloriousFlywheel. fix(ci): auto-deploy ARC runners on push to main.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1097, + "linesRemoved": 1297, + "commits": 7, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/35763973bafd97f2953eb7eb7ba07f16", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-24T19:36:15.266Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/35763973bafd97f2953eb7eb7ba07f16", + "published": "2026-03-24T19:36:15.266Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1743b76d3a45c577870401a81a0c9c80", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1743b76d3a45c577870401a81a0c9c80", + "published": "2026-03-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3521 lines across 53 commits in cmux. Localize move-failure alert strings.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 35925, + "linesRemoved": 32404, + "commits": 53, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1075d4d5be72510cc93ab214a83a40c7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1075d4d5be72510cc93ab214a83a40c7", + "published": "2026-03-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+27 lines across 2 commits in scheduling-kit. chore: standardize publish workflow and fix publishConfig.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 70, + "linesRemoved": 43, + "commits": 2, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "JSON", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/56dd2d9b9ab5b51da5ee70797b2feea2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/56dd2d9b9ab5b51da5ee70797b2feea2", + "published": "2026-03-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+224 lines across 6 commits in GloriousFlywheel. feat(app): add @tummycrypt/scheduling-kit dependency (#153).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 246, + "linesRemoved": 22, + "commits": 6, + "repository": "GloriousFlywheel", + "languages": [ + "JSON", + "YAML", + "Markdown", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0ca1b7bf3e1f82e334faab238ab47326", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-23T13:50:09.918Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0ca1b7bf3e1f82e334faab238ab47326", + "published": "2026-03-23T13:50:09.918Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Morning fog on the Androscoggin. Perfect conditions for great blue herons- counted six in a half-mile stretch.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d16e9884c32376411cf6c6f4cc2afb02", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d16e9884c32376411cf6c6f4cc2afb02", + "published": "2026-03-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3 lines across 1 commit in jesssullivan.github.io. chore(post): update links and supportability notes.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5, + "linesRemoved": 2, + "commits": 1, + "repository": "jesssullivan.github.io", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/25421d514c94ff7949044bb12ef3e2d4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/25421d514c94ff7949044bb12ef3e2d4", + "published": "2026-03-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+5063 lines across 72 commits in cmux. CLI: add test coverage for --no-focus flag parsing.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7956, + "linesRemoved": 2893, + "commits": 72, + "repository": "cmux", + "languages": [ + "Shell", + "Zig", + "Go", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/29d2ed1035cd21ad9d99ad1e5f093bd5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/29d2ed1035cd21ad9d99ad1e5f093bd5", + "published": "2026-03-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+36594 lines across 6 commits in scheduling-kit. fix: resolve 4 critical type errors (scraper config, vitest imports, venmo config).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 36605, + "linesRemoved": 11, + "commits": 6, + "repository": "scheduling-kit", + "languages": [ + "TypeScript", + "YAML", + "JSON", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/19bbb1c2b99eb7ef33522d234b14b75e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/19bbb1c2b99eb7ef33522d234b14b75e", + "published": "2026-03-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6638 lines across 1 commit in acuity-middleware. feat: extract Acuity middleware into standalone repo.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6638, + "linesRemoved": 0, + "commits": 1, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "Markdown", + "Nix", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6f502b61d814a788ab03e36cf7d659ef", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6f502b61d814a788ab03e36cf7d659ef", + "published": "2026-03-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6951 lines across 16 commits in GloriousFlywheel. feat: add @tummycrypt/tinyland-auth-pg and tinyland-auth-redis to app deps.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7815, + "linesRemoved": 864, + "commits": 16, + "repository": "GloriousFlywheel", + "languages": [ + "JSON", + "YAML", + "Markdown", + "TOML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c45e8e8a0a6121b97546acbd713e9c99", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-22T10:39:52.274Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c45e8e8a0a6121b97546acbd713e9c99", + "published": "2026-03-22T10:39:52.274Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

27.6 mi ride along the Lisbon Falls loop. 133 minutes, 497 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 27.6, + "durationMinutes": 133, + "route": "Lisbon Falls loop", + "elevationGainFeet": 497 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/68ce9246d7fa9fbe1faf3c73c60d2c81", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/68ce9246d7fa9fbe1faf3c73c60d2c81", + "published": "2026-03-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+113 lines across 5 commits in jesssullivan.github.io. chore: minor link updates.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 132, + "linesRemoved": 19, + "commits": 5, + "repository": "jesssullivan.github.io", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/da563fdcb2baf7df561b162e61353ff0", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/da563fdcb2baf7df561b162e61353ff0", + "published": "2026-03-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9208 lines across 84 commits in cmux. fix: narrow sidebar overlap and resync terminal width.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10677, + "linesRemoved": 1469, + "commits": 84, + "repository": "cmux", + "languages": [ + "YAML", + "TypeScript", + "Python", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/31095068f27684456ef6430436f6213e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-21T05:09:32.640Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/31095068f27684456ef6430436f6213e", + "published": "2026-03-21T05:09:32.640Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/00f42d5ccc58fb8a612cbc9eadc852d4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/00f42d5ccc58fb8a612cbc9eadc852d4", + "published": "2026-03-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+11228 lines across 100 commits in cmux. fix: skip Korean from CJK font-codepoint-map auto-injection (#1700).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 13265, + "linesRemoved": 2037, + "commits": 100, + "repository": "cmux", + "languages": [ + "Shell", + "TypeScript", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a3c1cdcd61135a466507a115513a3b33", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a3c1cdcd61135a466507a115513a3b33", + "published": "2026-03-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3606 lines across 35 commits in cmux. feat: add set-color/clear-color to workspace-action CLI (#1833).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3826, + "linesRemoved": 220, + "commits": 35, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a78ff6381b95a986d2ad1f7b1282862b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a78ff6381b95a986d2ad1f7b1282862b", + "published": "2026-03-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+195 lines across 3 commits in XoxdWM. feat(vr): integrate DRM non_desktop detection into connector scan.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 195, + "linesRemoved": 0, + "commits": 3, + "repository": "XoxdWM", + "languages": [ + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/aaf4f555b49dc4fffa5d400422c832f8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/aaf4f555b49dc4fffa5d400422c832f8", + "published": "2026-03-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7712 lines across 105 commits in cmux. ios: copy local config into dogfood builds.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 43392, + "linesRemoved": 35680, + "commits": 105, + "repository": "cmux", + "languages": [ + "Shell", + "Markdown", + "TypeScript", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f3ddbb6802e08d81aec2eccb9aa52ebf", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f3ddbb6802e08d81aec2eccb9aa52ebf", + "published": "2026-03-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10 lines across 1 commit in linux-xr. fix(ci): pin dl.rockylinux.org as fallback for mirrorlist outages (#4).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 12, + "linesRemoved": 2, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5e8cb357b80d2ee47757a210c1cdeb46", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-18T14:43:13.164Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5e8cb357b80d2ee47757a210c1cdeb46", + "published": "2026-03-18T14:43:13.164Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b94936d68bd3b2489cb9703e6fdf770a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b94936d68bd3b2489cb9703e6fdf770a", + "published": "2026-03-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+30754 lines across 165 commits in cmux. docs: record ios dogfood execution status.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 35934, + "linesRemoved": 5180, + "commits": 165, + "repository": "cmux", + "languages": [ + "Markdown", + "YAML", + "Shell", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d55bee75d1288b6e26b45575a7086f2a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d55bee75d1288b6e26b45575a7086f2a", + "published": "2026-03-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+318 lines across 3 commits in GloriousFlywheel. fix(arc-runners): add ephemeral-storage to tinyland-dind runner (#95).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 338, + "linesRemoved": 20, + "commits": 3, + "repository": "GloriousFlywheel", + "languages": [] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d075c60f50b6c8618904d0c61a08b3fc", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d075c60f50b6c8618904d0c61a08b3fc", + "published": "2026-03-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+14 lines across 1 commit in linux-xr. fix(ci): make caches durable across cancellations (#3).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 20, + "linesRemoved": 6, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ea7f6735a3d1213e0a36ae3c8e37cb61", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-17T14:58:32.573Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ea7f6735a3d1213e0a36ae3c8e37cb61", + "published": "2026-03-17T14:58:32.573Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Great Blue Heron at Bradbury Mountain.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Great Blue Heron", + "scientificName": "Ardea herodias", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cf6afba7203798beaf2b9bb11024a7ac", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cf6afba7203798beaf2b9bb11024a7ac", + "published": "2026-03-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2310 lines across 13 commits in XoxdWM. docs: update v0.6.0-plan.md honey state table (2026-03-16).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2573, + "linesRemoved": 263, + "commits": 13, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "Nix", + "Dhall", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5756651b04d07dadb03ed5ebc38cc43d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5756651b04d07dadb03ed5ebc38cc43d", + "published": "2026-03-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+27925 lines across 66 commits in cmux. test: cover ios terminal input fixture.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 34370, + "linesRemoved": 6445, + "commits": 66, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "Go", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a2ab1154313d36427d8c8225a5beb130", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a2ab1154313d36427d8c8225a5beb130", + "published": "2026-03-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+232 lines across 8 commits in GloriousFlywheel. fix(arc-runner): remove manual DinD sidecar, let ARC chart manage it (#92).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 319, + "linesRemoved": 87, + "commits": 8, + "repository": "GloriousFlywheel", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dabe42aab0d6984cf04e8c2bbe9649c5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dabe42aab0d6984cf04e8c2bbe9649c5", + "published": "2026-03-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+141 lines across 9 commits in linux-xr. fix(ci): enable EPEL + CRB repos for ccache on Rocky 10 (#2).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 147, + "linesRemoved": 6, + "commits": 9, + "repository": "linux-xr", + "languages": [ + "YAML", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/604b976b778db7fb303b649c8d185bff", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-16T09:31:46.518Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/604b976b778db7fb303b649c8d185bff", + "published": "2026-03-16T09:31:46.518Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dd093b1593d4ee3015cb2d461e8e0abf", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dd093b1593d4ee3015cb2d461e8e0abf", + "published": "2026-03-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+547 lines across 13 commits in jesssullivan.github.io. Fix CSP for Giscus, inline code double-styling, mobile nav title, code wrap (#66).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4713, + "linesRemoved": 4166, + "commits": 13, + "repository": "jesssullivan.github.io", + "languages": [ + "CSS", + "HTML", + "Svelte", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6ddad2ee07443d7f6fa089e419c65c54", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6ddad2ee07443d7f6fa089e419c65c54", + "published": "2026-03-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1955 lines across 11 commits in XoxdWM. feat(tuned): add rcu_nocb_poll, kthread_cpus, numa_balancing to xr-bci.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1997, + "linesRemoved": 42, + "commits": 11, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "Dhall", + "Nix", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dae378f350f9fb9b82085d7dd0a3f0d1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dae378f350f9fb9b82085d7dd0a3f0d1", + "published": "2026-03-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6053 lines across 62 commits in cmux. Sync ghostty fork with upstream main.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7061, + "linesRemoved": 1008, + "commits": 62, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "YAML", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/aca81a4ba0424ad9eb0ee52c12f452cf", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/aca81a4ba0424ad9eb0ee52c12f452cf", + "published": "2026-03-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7 lines across 1 commit in GloriousFlywheel. fix(arc-runner): set containerMode.type for kubernetes mode (#84).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10, + "linesRemoved": 3, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/52a77f425e54bd5ebf0e82988f0e65ce", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/52a77f425e54bd5ebf0e82988f0e65ce", + "published": "2026-03-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+203 lines across 13 commits in linux-xr. fix(spec): disable debuginfo subpackage (kernel handles debug internally).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 263, + "linesRemoved": 60, + "commits": 13, + "repository": "linux-xr", + "languages": [ + "YAML", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T23:38:44.132Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "published": "2026-03-14T23:38:44.132Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Red-tailed Hawks at Sabattus Pond- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Red-tailed Hawk", + "scientificName": "Buteo jamaicensis", + "location": { + "type": "Place", + "name": "Sabattus Pond", + "latitude": 44.1209, + "longitude": -70.0874 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/da3b1fbb003db08a488542a432905086", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/da3b1fbb003db08a488542a432905086", + "published": "2026-03-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+653 lines across 5 commits in cmux. Bundle Ghostty theme picker helper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 674, + "linesRemoved": 21, + "commits": 5, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1453678bd71c21adb84b3d3133ebddc4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1453678bd71c21adb84b3d3133ebddc4", + "published": "2026-03-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+192 lines across 2 commits in linux-xr. docs: comprehensive RT boot debug plan, BIOS update path, deployment checklist.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 212, + "linesRemoved": 20, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-14T00:51:49.153Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "published": "2026-03-14T00:51:49.153Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Androscoggin Riverlands.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3d73783ed3ad4e6f078a8da03583aeae", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3d73783ed3ad4e6f078a8da03583aeae", + "published": "2026-03-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+449 lines across 8 commits in jesssullivan.github.io. Update 2026-03-13-the-winrm-forkbomb-how-ansible-molecule-locks-you-out-of-active-directory.md.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 611, + "linesRemoved": 162, + "commits": 8, + "repository": "jesssullivan.github.io", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3f58c858a972fe2e2f2effda15edb7d6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3f58c858a972fe2e2f2effda15edb7d6", + "published": "2026-03-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4 lines across 2 commits in XoxdWM. upstream: handle undefined background face color in xsettings.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8, + "linesRemoved": 4, + "commits": 2, + "repository": "XoxdWM", + "languages": [ + "Emacs Lisp", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e39ea66618a98e982bce3ea2cdc33b57", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e39ea66618a98e982bce3ea2cdc33b57", + "published": "2026-03-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+40730 lines across 256 commits in cmux. fix: preserve terminal scroll anchor.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 45675, + "linesRemoved": 4945, + "commits": 256, + "repository": "cmux", + "languages": [ + "Python", + "YAML", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7e1d5dc61e4c74eca31e1698f102366e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7e1d5dc61e4c74eca31e1698f102366e", + "published": "2026-03-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 1 commit in GloriousFlywheel. fix: correct Attic service DNS name (attic, not attic-api) (#83).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2, + "linesRemoved": 2, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/110461db92cf263c2609f3c8621686c4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/110461db92cf263c2609f3c8621686c4", + "published": "2026-03-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+60 lines across 5 commits in linux-xr. fix(ci): use explicit ccache path so GHA cache save succeeds.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 63, + "linesRemoved": 3, + "commits": 5, + "repository": "linux-xr", + "languages": [ + "YAML", + "C", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/17df0ceded2f2d4d758dfa6115d9ade9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/17df0ceded2f2d4d758dfa6115d9ade9", + "published": "2026-03-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-652 lines across 6 commits in jesssullivan.github.io. Polish /making page: remove duplicate SketchUp card, add more thumbnails, trim prose (#52).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2069, + "linesRemoved": 2721, + "commits": 6, + "repository": "jesssullivan.github.io", + "languages": [ + "Svelte", + "Markdown", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9245e456c26b0a0f2b835235a4ae82be", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9245e456c26b0a0f2b835235a4ae82be", + "published": "2026-03-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+18858 lines across 70 commits in cmux. Don't restore status entries across app restarts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 41960, + "linesRemoved": 23102, + "commits": 70, + "repository": "cmux", + "languages": [ + "Python", + "Markdown", + "YAML", + "Go" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c0a3e9825920d3e1bea5c0298fb72d01", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c0a3e9825920d3e1bea5c0298fb72d01", + "published": "2026-03-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+14 lines across 6 commits in linux-xr. lib/bootconfig: fix snprintf truncation check in xbc_node_compose_key_after().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 27, + "linesRemoved": 13, + "commits": 6, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b8dabfc5d830d6c944f2d36759caa9de", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-12T13:35:08.946Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b8dabfc5d830d6c944f2d36759caa9de", + "published": "2026-03-12T13:35:08.946Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

23.9 mi ride along the Turner Center hill climb. 112 minutes, 589 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 23.9, + "durationMinutes": 112, + "route": "Turner Center hill climb", + "elevationGainFeet": 589 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4d042b5e2d0ba6a511f5f8caf265e4da", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4d042b5e2d0ba6a511f5f8caf265e4da", + "published": "2026-03-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+22338 lines across 106 commits in cmux. Add regression tests for command-aware terminal find shortcuts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 28740, + "linesRemoved": 6402, + "commits": 106, + "repository": "cmux", + "languages": [ + "Shell", + "Python", + "Markdown", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c466616e61428a68141af44a46d68918", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c466616e61428a68141af44a46d68918", + "published": "2026-03-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+31 lines across 1 commit in GloriousFlywheel. feat(arc-runners): add tfvars example with linux-xr kernel builder (#82).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 31, + "linesRemoved": 0, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/07b549ab5b028245fb4cba17af415364", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/07b549ab5b028245fb4cba17af415364", + "published": "2026-03-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+73 lines across 11 commits in linux-xr. rust: cpufreq: suppress clippy::double_parens in Policy doctest.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 290, + "linesRemoved": 217, + "commits": 11, + "repository": "linux-xr", + "languages": [ + "Rust", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/faefef3d75ea4eebdf1f36240980d2b1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-11T11:55:06.301Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/faefef3d75ea4eebdf1f36240980d2b1", + "published": "2026-03-11T11:55:06.301Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 18.3C, 37% humidity, CO2 431ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 18.3, + "unit": "C" + }, + { + "name": "Humidity", + "value": 37, + "unit": "%" + }, + { + "name": "CO2", + "value": 431, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/495e9d1a16ec13ab2244e2c1ebdfa248", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/495e9d1a16ec13ab2244e2c1ebdfa248", + "published": "2026-03-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3364 lines across 31 commits in XoxdWM. ci: skip lisp/core byte-compile (needs xelb/xcb).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3792, + "linesRemoved": 428, + "commits": 31, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Markdown", + "Nix", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e219467c9b49d325b3e7dbba71497a89", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e219467c9b49d325b3e7dbba71497a89", + "published": "2026-03-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+12056 lines across 62 commits in cmux. Prevent off-window hosts from stealing devtools webviews.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 13374, + "linesRemoved": 1318, + "commits": 62, + "repository": "cmux", + "languages": [ + "Python", + "YAML", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/195a420e3b7af170e59baa6e7fe707a1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/195a420e3b7af170e59baa6e7fe707a1", + "published": "2026-03-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+37 lines across 1 commit in GloriousFlywheel. fix(arc-runner): wire runner_type_images + fix Attic DNS + Nix PATH (#81).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 44, + "linesRemoved": 7, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c70e3ccc6ff209ffa4a4729ca06840a8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c70e3ccc6ff209ffa4a4729ca06840a8", + "published": "2026-03-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+184 lines across 48 commits in linux-xr. powerpc/iommu: fix lockdep warning during PCI enumeration.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 406, + "linesRemoved": 222, + "commits": 48, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/91661e5cac074e99d6133d71d503425d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/91661e5cac074e99d6133d71d503425d", + "published": "2026-03-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+157 lines across 1 commit in XoxdWM. fix(vr): correct Beyond HID power-on command byte position.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 209, + "linesRemoved": 52, + "commits": 1, + "repository": "XoxdWM", + "languages": [ + "Rust", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/42a1cbe236bda5ab07935856aa2d34b1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/42a1cbe236bda5ab07935856aa2d34b1", + "published": "2026-03-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3899 lines across 71 commits in cmux. Update ghostty to v1.3.0 (#1142).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8467, + "linesRemoved": 4568, + "commits": 71, + "repository": "cmux", + "languages": [ + "Markdown", + "C", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e43e64f6afcb4ac2166d31516642a9c1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e43e64f6afcb4ac2166d31516642a9c1", + "published": "2026-03-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+12271 lines across 38 commits in linux-xr. powerpc, perf: Check that current->mm is alive before getting user callchain.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 12838, + "linesRemoved": 567, + "commits": 38, + "repository": "linux-xr", + "languages": [ + "C", + "Rust", + "YAML", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/351b03c80d6ba3cff5d558dca8e3e85b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-08T23:23:39.121Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/351b03c80d6ba3cff5d558dca8e3e85b", + "published": "2026-03-08T23:23:39.121Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9187ac1a3cfeeeeed5ec5a2870aeaa51", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9187ac1a3cfeeeeed5ec5a2870aeaa51", + "published": "2026-03-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+18961 lines across 54 commits in cmux. Honor requested focus in workspace.create.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 22171, + "linesRemoved": 3210, + "commits": 54, + "repository": "cmux", + "languages": [ + "Python", + "YAML", + "Go", + "Zig" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e4308f6d5bab8b2da700bcfc66c5aea4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e4308f6d5bab8b2da700bcfc66c5aea4", + "published": "2026-03-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+19 lines across 9 commits in linux-xr. nvme-pci: Fix slab-out-of-bounds in nvme_dbbuf_set.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 41, + "linesRemoved": 22, + "commits": 9, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6a56e07eb19bd314f3f386b6113e82c7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6a56e07eb19bd314f3f386b6113e82c7", + "published": "2026-03-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1112 lines across 5 commits in XoxdWM. fix(vr): remove duplicate UvcFrameFormat discriminant.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1249, + "linesRemoved": 137, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "Rust", + "Emacs Lisp", + "Nix", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/65bbc8a6315b8bcf1fda5d4ca45d623a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/65bbc8a6315b8bcf1fda5d4ca45d623a", + "published": "2026-03-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1736 lines across 28 commits in cmux. Tighten help popover sizing.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4540, + "linesRemoved": 6276, + "commits": 28, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "JavaScript", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/75e309c4ccf28a0223d5a734df711dbd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/75e309c4ccf28a0223d5a734df711dbd", + "published": "2026-03-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+208 lines across 21 commits in linux-xr. bpf: bpf_out_neigh_v6: Fix nd_tbl NULL dereference when IPv6 is disabled.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 322, + "linesRemoved": 114, + "commits": 21, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/35c760846a909343967770d1f4ad98a5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-07T21:06:58.978Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/35c760846a909343967770d1f4ad98a5", + "published": "2026-03-07T21:06:58.978Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 4 Cedar Waxwings at Range Pond State Park- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Cedar Waxwing", + "scientificName": "Bombycilla cedrorum", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 4 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1d62afd259df96b401b0e45e119592da", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1d62afd259df96b401b0e45e119592da", + "published": "2026-03-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10309 lines across 81 commits in cmux. Fix page shortcut and page API follow-ups.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 12434, + "linesRemoved": 2125, + "commits": 81, + "repository": "cmux", + "languages": [ + "Markdown", + "Python", + "JSON", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/55f720d317eef887c9d496bfaea57959", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/55f720d317eef887c9d496bfaea57959", + "published": "2026-03-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+65 lines across 3 commits in GloriousFlywheel. fix(dashboard): remove card class from popover to prevent bg overlap (#80).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 141, + "linesRemoved": 76, + "commits": 3, + "repository": "GloriousFlywheel", + "languages": [ + "Svelte", + "TypeScript", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/29e626147d27f40d6d13f099edb903fb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/29e626147d27f40d6d13f099edb903fb", + "published": "2026-03-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+370 lines across 53 commits in linux-xr. i3c: mipi-i3c-hci: Fallback to software reset when bus disable fails.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 759, + "linesRemoved": 389, + "commits": 53, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/58358cd78551db339950c6605e5fb5f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-06T13:50:22.830Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/58358cd78551db339950c6605e5fb5f7", + "published": "2026-03-06T13:50:22.830Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0dc224dddbe480fa99e9193de95a5fa0", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0dc224dddbe480fa99e9193de95a5fa0", + "published": "2026-03-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4 lines across 1 commit in jesssullivan.github.io. fix: upgrade tinyvectors to 0.2.3, re-enable scroll physics.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11, + "linesRemoved": 7, + "commits": 1, + "repository": "jesssullivan.github.io", + "languages": [ + "JSON", + "Svelte" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e16334341f1540b1d98e40ee70bc3cce", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e16334341f1540b1d98e40ee70bc3cce", + "published": "2026-03-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+33887 lines across 143 commits in cmux. Cache Swift packages across CI runs (#998).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 37858, + "linesRemoved": 3971, + "commits": 143, + "repository": "cmux", + "languages": [ + "YAML", + "Python", + "TypeScript", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f0c5fc8723ab84b1e94a43e73fd55bfa", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f0c5fc8723ab84b1e94a43e73fd55bfa", + "published": "2026-03-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1 lines across 1 commit in GloriousFlywheel. fix(attic): pass cert_manager_issuer to bazel-cache module (#76).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 2, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dbd0b8dba1eb87579095043563028937", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dbd0b8dba1eb87579095043563028937", + "published": "2026-03-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+287 lines across 74 commits in linux-xr. gpib: lpvo_usb: fix unintended binding of FTDI 8U232AM devices.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1158, + "linesRemoved": 871, + "commits": 74, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/63ada09c8d16f5fcdcd2692223647b71", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-05T13:21:52.204Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/63ada09c8d16f5fcdcd2692223647b71", + "published": "2026-03-05T13:21:52.204Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2fe5fa8a36e9a04022112ae3ea09e155", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2fe5fa8a36e9a04022112ae3ea09e155", + "published": "2026-03-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+25691 lines across 33 commits in jesssullivan.github.io. fix(layout): disable TinyVectors scroll physics to unblock page scroll.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 37733, + "linesRemoved": 12042, + "commits": 33, + "repository": "jesssullivan.github.io", + "languages": [ + "Svelte", + "Markdown", + "YAML", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f06325d643b275c264698d5b38b895f1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f06325d643b275c264698d5b38b895f1", + "published": "2026-03-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6173 lines across 16 commits in XoxdWM. fix(packaging): sway 1.10 build fixes — libevdev dep, xterm fallback, Rocky 10 compat.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6413, + "linesRemoved": 240, + "commits": 16, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "Nix", + "Rust", + "Emacs Lisp" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/46209cbd30e688e6598f49a40830ab23", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/46209cbd30e688e6598f49a40830ab23", + "published": "2026-03-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+85990 lines across 84 commits in cmux. Add split CWD inheritance demo GIF.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 95848, + "linesRemoved": 9858, + "commits": 84, + "repository": "cmux", + "languages": [ + "Python", + "Shell", + "Markdown", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1fc86b1081c35765d3d192df8049a842", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1fc86b1081c35765d3d192df8049a842", + "published": "2026-03-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+390 lines across 59 commits in linux-xr. powerpc/selftests/copyloops: extend selftest to exercise __copy_tofrom_user_power7_vmx.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 726, + "linesRemoved": 336, + "commits": 59, + "repository": "linux-xr", + "languages": [ + "C", + "JSON", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7d70740fa93a950f5b287195de9f0a7e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-04T11:11:51.554Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7d70740fa93a950f5b287195de9f0a7e", + "published": "2026-03-04T11:11:51.554Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e6b5325b9d3b0f285574c34979d463c6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e6b5325b9d3b0f285574c34979d463c6", + "published": "2026-03-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10077 lines across 16 commits in XoxdWM. feat(ci): GloriousFlywheel self-hosted runner workflows + compilation fix.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10840, + "linesRemoved": 763, + "commits": 16, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Rust", + "Emacs Lisp", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/67e087a646cc3c47764e03ddb786ede6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/67e087a646cc3c47764e03ddb786ede6", + "published": "2026-03-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10894 lines across 65 commits in cmux. Shorten tmux socket path for CI compatibility.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 12041, + "linesRemoved": 1147, + "commits": 65, + "repository": "cmux", + "languages": [ + "YAML", + "Python", + "TypeScript", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f490661e402c0b4bbc6ff919035ca146", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f490661e402c0b4bbc6ff919035ca146", + "published": "2026-03-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+645 lines across 94 commits in linux-xr. spi: atcspi200: Handle invalid buswidth and fix compiler warning.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1242, + "linesRemoved": 597, + "commits": 94, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/15fd9367271144503800f07aa40cd524", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-03T03:58:45.730Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/15fd9367271144503800f07aa40cd524", + "published": "2026-03-03T03:58:45.730Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

5.1 mi ride along the Turner Center hill climb. 20 minutes, 659 ft elevation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:bikeRide": { + "distanceMiles": 5.1, + "durationMinutes": 20, + "route": "Turner Center hill climb", + "elevationGainFeet": 659 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ca8cd884d8a51b0fae0bf0712e10f2cd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-02T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ca8cd884d8a51b0fae0bf0712e10f2cd", + "published": "2026-03-02T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4963 lines across 37 commits in cmux. Fix TCC dialog, trim black frames, add macos-26 runner option (#784).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5651, + "linesRemoved": 688, + "commits": 37, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Markdown", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/69343a4f79c32f680e57e298cbe0aa00", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-02T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/69343a4f79c32f680e57e298cbe0aa00", + "published": "2026-03-02T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+495 lines across 50 commits in linux-xr. i3c: master: dw-i3c: Fix missing of_node for virtual I2C adapter.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 931, + "linesRemoved": 436, + "commits": 50, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/396e4884df1b5e4879cb4a710917bfcd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-02T00:51:35.079Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/396e4884df1b5e4879cb4a710917bfcd", + "published": "2026-03-02T00:51:35.079Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d4178bc3402eaf8cb43bc7a97d4d56c2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d4178bc3402eaf8cb43bc7a97d4d56c2", + "published": "2026-03-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3227 lines across 25 commits in cmux. Fix Ghostty split action manager routing.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3648, + "linesRemoved": 421, + "commits": 25, + "repository": "cmux", + "languages": [ + "CSS", + "Python", + "Shell", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/26d5edd3a5d470fd3308f3b234b4e137", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-03-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/26d5edd3a5d470fd3308f3b234b4e137", + "published": "2026-03-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+125 lines across 15 commits in linux-xr. powerpc/mem: Move CMA reservations to arch_mm_preinit.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 284, + "linesRemoved": 159, + "commits": 15, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2f9e6daf61d0c1ef8020a0f4e69ab0d6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2f9e6daf61d0c1ef8020a0f4e69ab0d6", + "published": "2026-02-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+8706 lines across 32 commits in cmux. wip.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 9765, + "linesRemoved": 1059, + "commits": 32, + "repository": "cmux", + "languages": [ + "YAML", + "Python", + "Shell", + "Go" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/395b6a85cc57af06ad9db219010bd5a4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/395b6a85cc57af06ad9db219010bd5a4", + "published": "2026-02-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+54 lines across 8 commits in linux-xr. usb: gadget: f_mass_storage: Fix potential integer overflow in check_command_size_in_blocks().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 86, + "linesRemoved": 32, + "commits": 8, + "repository": "linux-xr", + "languages": [ + "C", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5b4358f60023247c458522bc1ad2db4e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-28T17:55:28.562Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5b4358f60023247c458522bc1ad2db4e", + "published": "2026-02-28T17:55:28.562Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7af1908268a80105fe85d06d3c9d4e9c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7af1908268a80105fe85d06d3c9d4e9c", + "published": "2026-02-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4485 lines across 50 commits in cmux. Fix switcher cache refresh and add rename regression tests.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5615, + "linesRemoved": 1130, + "commits": 50, + "repository": "cmux", + "languages": [ + "Python", + "TypeScript", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3297713f594b8c506865a16c635a80ad", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3297713f594b8c506865a16c635a80ad", + "published": "2026-02-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1069 lines across 46 commits in linux-xr. usb: gadget: f_hid: fix SuperSpeed descriptors.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1273, + "linesRemoved": 204, + "commits": 46, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/23bda90c0ec9f761985cb789d83f2e1e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-27T12:26:53.071Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/23bda90c0ec9f761985cb789d83f2e1e", + "published": "2026-02-27T12:26:53.071Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 2 Hermit Thrushs at Androscoggin Riverlands- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Hermit Thrush", + "scientificName": "Catharus guttatus", + "location": { + "type": "Place", + "name": "Androscoggin Riverlands", + "latitude": 44.0412, + "longitude": -70.1823 + }, + "count": 2 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6fb5aef6d21475b6af9b994384041e5b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6fb5aef6d21475b6af9b994384041e5b", + "published": "2026-02-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1151 lines across 10 commits in jesssullivan.github.io. feat: simplify dispatch auth, add secret propagation script.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3264, + "linesRemoved": 2113, + "commits": 10, + "repository": "jesssullivan.github.io", + "languages": [ + "YAML", + "Shell", + "Markdown", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/00f1da9a1f60155cc83c07151550b152", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/00f1da9a1f60155cc83c07151550b152", + "published": "2026-02-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4787 lines across 42 commits in cmux. Disable Sentry sendDefaultPii to match anonymous telemetry label (#623).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5245, + "linesRemoved": 458, + "commits": 42, + "repository": "cmux", + "languages": [ + "TypeScript", + "Python", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/fcdda1253217e281c5a6a891d6e9702a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/fcdda1253217e281c5a6a891d6e9702a", + "published": "2026-02-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1244 lines across 1 commit in aperture-bootstrap. feat: aperture-bootstrap — tsnet tool, Dhall config, blog posts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1244, + "linesRemoved": 0, + "commits": 1, + "repository": "aperture-bootstrap", + "languages": [ + "Markdown", + "Dhall", + "Nix", + "Go" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3e7aa526294a103dc889c38df7b51db7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3e7aa526294a103dc889c38df7b51db7", + "published": "2026-02-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2775 lines across 5 commits in GloriousFlywheel. fix(nix-job): install xz-utils on self-hosted ARC runners (#74).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3096, + "linesRemoved": 321, + "commits": 5, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown", + "TOML", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2f2f8a4be449e69c9eef807b0fe09f8a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2f2f8a4be449e69c9eef807b0fe09f8a", + "published": "2026-02-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+477 lines across 73 commits in linux-xr. libceph: Use u32 for non-negative values in ceph_monmap_decode().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 995, + "linesRemoved": 518, + "commits": 73, + "repository": "linux-xr", + "languages": [ + "C", + "Python", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09469d509adaada274f313ce7235a796", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-26T11:18:32.217Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09469d509adaada274f313ce7235a796", + "published": "2026-02-26T11:18:32.217Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7855b3fde1afcaeab91124485918844c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7855b3fde1afcaeab91124485918844c", + "published": "2026-02-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7409 lines across 74 commits in cmux. Add throttled breadcrumbs for drag-handle hit-test anomalies.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8153, + "linesRemoved": 744, + "commits": 74, + "repository": "cmux", + "languages": [ + "Python", + "TypeScript", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/890de387fa79f0ba00a54948e5ad8401", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/890de387fa79f0ba00a54948e5ad8401", + "published": "2026-02-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+643 lines across 57 commits in linux-xr. drm/amd/display: Check for S0i3 to be done before DCCG init on DCN21.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 886, + "linesRemoved": 243, + "commits": 57, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "JSON", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d95cd6fc6e01f4a93d3796cd1b255042", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-25T01:15:59.534Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d95cd6fc6e01f4a93d3796cd1b255042", + "published": "2026-02-25T01:15:59.534Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 Barred Owls at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Thorncrag Bird Sanctuary", + "latitude": 44.1003, + "longitude": -70.2148 + }, + "count": 3 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e8fad10bce94c3677c090b0de6962bbe", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e8fad10bce94c3677c090b0de6962bbe", + "published": "2026-02-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9766 lines across 61 commits in cmux. Fix UI test hang: bypass launch guard for XCUITest apps.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10955, + "linesRemoved": 1189, + "commits": 61, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "Go", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a57138f8db75c461d1fa8aa73671986d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a57138f8db75c461d1fa8aa73671986d", + "published": "2026-02-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+743 lines across 70 commits in linux-xr. drm/amd/display: Add missing DCCG register entries for DCN20-DCN316.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1059, + "linesRemoved": 316, + "commits": 70, + "repository": "linux-xr", + "languages": [ + "C", + "Rust", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8aab2de4758f1f09e100aba6165ceb33", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8aab2de4758f1f09e100aba6165ceb33", + "published": "2026-02-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+118466 lines across 141 commits in cmux. ios: add toy libghostty sidebar terminal shell.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 120108, + "linesRemoved": 1642, + "commits": 141, + "repository": "cmux", + "languages": [ + "Markdown", + "C", + "YAML", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f4eee18f92cdf17024540f3f1dffc647", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f4eee18f92cdf17024540f3f1dffc647", + "published": "2026-02-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+544 lines across 9 commits in GloriousFlywheel. fix(runner): move job resources before nested TOML tables.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 639, + "linesRemoved": 95, + "commits": 9, + "repository": "GloriousFlywheel", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d2cf3a6eb1dc2ad3fc51620ad0af2d4e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d2cf3a6eb1dc2ad3fc51620ad0af2d4e", + "published": "2026-02-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+355 lines across 93 commits in linux-xr. usb: misc: uss720: properly clean up reference in uss720_probe().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1485, + "linesRemoved": 1130, + "commits": 93, + "repository": "linux-xr", + "languages": [ + "C", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0e345b965c69a1671aa3ea9d190bf1ea", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0e345b965c69a1671aa3ea9d190bf1ea", + "published": "2026-02-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10763 lines across 52 commits in cmux. Match bonsplit chrome to Ghostty theme.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11763, + "linesRemoved": 1000, + "commits": 52, + "repository": "cmux", + "languages": [ + "Python", + "Shell", + "CSS", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d1481879322c4980ef6a9b2887a13ead", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d1481879322c4980ef6a9b2887a13ead", + "published": "2026-02-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+80 lines across 15 commits in linux-xr. drm/gud: fix NULL crtc dereference on display disable.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 132, + "linesRemoved": 52, + "commits": 15, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f72a39e248635498b4236d37a7e9214a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f72a39e248635498b4236d37a7e9214a", + "published": "2026-02-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+21830 lines across 116 commits in cmux. Force modern create-dmg in release packaging paths.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 23754, + "linesRemoved": 1924, + "commits": 116, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Python", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cf3a8830f5110d19dd86a848fbe1c582", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cf3a8830f5110d19dd86a848fbe1c582", + "published": "2026-02-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1226 lines across 36 commits in linux-xr. arm64: make runtime const not usable by modules.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 15705, + "linesRemoved": 16931, + "commits": 36, + "repository": "linux-xr", + "languages": [ + "C", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9d4fcf18cb81e58bff9db7b39de2adf8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-21T13:39:56.769Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9d4fcf18cb81e58bff9db7b39de2adf8", + "published": "2026-02-21T13:39:56.769Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3891e69067991a7a9e3ecdfb04eaf324", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3891e69067991a7a9e3ecdfb04eaf324", + "published": "2026-02-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4527 lines across 21 commits in jesssullivan.github.io. feat: recover 7 images from truncated Wayback Machine JPEGs.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7406, + "linesRemoved": 2879, + "commits": 21, + "repository": "jesssullivan.github.io", + "languages": [ + "Markdown", + "JSON", + "TypeScript", + "CSS" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/813724920af0e3cce12fdef7f0e16d18", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/813724920af0e3cce12fdef7f0e16d18", + "published": "2026-02-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+21445 lines across 205 commits in cmux. Avoid main-thread hops for explicit socket scope.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 25066, + "linesRemoved": 3621, + "commits": 205, + "repository": "cmux", + "languages": [ + "Go", + "Python", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ffa1edc982c9ccd185cf24a512eba7a2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ffa1edc982c9ccd185cf24a512eba7a2", + "published": "2026-02-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-655 lines across 33 commits in linux-xr. KVM: VMX: Fix a wrong MSR update in add_atomic_switch_msr().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 20372, + "linesRemoved": 21027, + "commits": 33, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4a2e5fde14eb5128dc46175f685915f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-20T08:31:23.802Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4a2e5fde14eb5128dc46175f685915f7", + "published": "2026-02-20T08:31:23.802Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f0d893b630c37260d26ca7dd1efe238d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f0d893b630c37260d26ca7dd1efe238d", + "published": "2026-02-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7425 lines across 61 commits in cmux. Avoid O(N) re-renders by passing derived Bool instead of ObservableObject.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8864, + "linesRemoved": 1439, + "commits": 61, + "repository": "cmux", + "languages": [ + "Markdown", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5715cb7530bcdb0caf9d496c59c3ea85", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5715cb7530bcdb0caf9d496c59c3ea85", + "published": "2026-02-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+217 lines across 41 commits in linux-xr. KVM: x86: hyper-v: Validate all GVAs during PV TLB flush.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 365, + "linesRemoved": 148, + "commits": 41, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/629ac8cd3a8d5214bfbb44751ebedae5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-19T04:28:57.458Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/629ac8cd3a8d5214bfbb44751ebedae5", + "published": "2026-02-19T04:28:57.458Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Office: 19.2C, 30% humidity, CO2 463ppm.

", + "tag": [ + { + "type": "Hashtag", + "name": "#sensors" + } + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 19.2, + "unit": "C" + }, + { + "name": "Humidity", + "value": 30, + "unit": "%" + }, + { + "name": "CO2", + "value": 463, + "unit": "ppm" + } + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/652158973e162074493c6482511264d8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/652158973e162074493c6482511264d8", + "published": "2026-02-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-21480 lines across 74 commits in cmux. Update homebrew-cmux submodule to latest.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5524, + "linesRemoved": 27004, + "commits": 74, + "repository": "cmux", + "languages": [ + "Markdown", + "Python", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/49de44517ddaecd477915a54c2e4d669", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/49de44517ddaecd477915a54c2e4d669", + "published": "2026-02-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+71 lines across 5 commits in GloriousFlywheel. fix: align HPA/PDB/ServiceMonitor with Helm deployment name (#57).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 110, + "linesRemoved": 39, + "commits": 5, + "repository": "GloriousFlywheel", + "languages": [] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c4b4e338662d35de3a5218a2a10798f1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c4b4e338662d35de3a5218a2a10798f1", + "published": "2026-02-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+533 lines across 76 commits in linux-xr. usb: core: don't power off roothub PHYs if phy_set_mode() fails.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1106, + "linesRemoved": 573, + "commits": 76, + "repository": "linux-xr", + "languages": [ + "C", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/49e6b025cd5031fc0fb3c85210ccfb18", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-18T00:38:08.598Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/49e6b025cd5031fc0fb3c85210ccfb18", + "published": "2026-02-18T00:38:08.598Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 4 Barred Owls at Sabattus Pond- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Sabattus Pond", + "latitude": 44.1209, + "longitude": -70.0874 + }, + "count": 4 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e0c3a19c98218f4b96f2b315d67d9961", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e0c3a19c98218f4b96f2b315d67d9961", + "published": "2026-02-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2395 lines across 47 commits in cmux. Free stale surfaces and wire occlusion for background terminals.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2871, + "linesRemoved": 476, + "commits": 47, + "repository": "cmux", + "languages": [ + "Markdown", + "TypeScript", + "Python", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e7a18fb47906d6d6ad573d6eeb31c564", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e7a18fb47906d6d6ad573d6eeb31c564", + "published": "2026-02-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+278 lines across 56 commits in linux-xr. USB: core: Limit the length of unkillable synchronous timeouts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 514, + "linesRemoved": 236, + "commits": 56, + "repository": "linux-xr", + "languages": [ + "C", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0d87ba80d8c18f0e40de98b0cda0c7cf", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0d87ba80d8c18f0e40de98b0cda0c7cf", + "published": "2026-02-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7881 lines across 11 commits in cmux. Fix terminal keys (arrows, Ctrl+N/P) swallowed after opening browser.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8028, + "linesRemoved": 147, + "commits": 11, + "repository": "cmux", + "languages": [ + "JSON", + "Markdown", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/bfa87382877131196022b5aee28755a9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/bfa87382877131196022b5aee28755a9", + "published": "2026-02-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+781 lines across 65 commits in linux-xr. scsi: target: Fix recursive locking in __configfs_open_file().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1881, + "linesRemoved": 1100, + "commits": 65, + "repository": "linux-xr", + "languages": [ + "C", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09ef926d9821dd072a0b61953f7c6c0b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-16T15:36:20.564Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09ef926d9821dd072a0b61953f7c6c0b", + "published": "2026-02-16T15:36:20.564Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/896860b05082aae05e32f9a069cf3ee4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/896860b05082aae05e32f9a069cf3ee4", + "published": "2026-02-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3731 lines across 20 commits in cmux. Release v1.31.0 (#39).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4632, + "linesRemoved": 901, + "commits": 20, + "repository": "cmux", + "languages": [ + "Markdown", + "Python", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/43e6740a40537cf9a5fe07b16f32c510", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/43e6740a40537cf9a5fe07b16f32c510", + "published": "2026-02-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+34 lines across 13 commits in linux-xr. rust: pin-init: replace clippy `expect` with `allow`.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 74, + "linesRemoved": 40, + "commits": 13, + "repository": "linux-xr", + "languages": [ + "Rust", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/caee8669cd27539e742772cab050a051", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/caee8669cd27539e742772cab050a051", + "published": "2026-02-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+5698 lines across 23 commits in cmux. Translate disclaimer lines to each target language.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6201, + "linesRemoved": 503, + "commits": 23, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "YAML", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/afb2a0248f2f6f5b1935eed4d263b342", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/afb2a0248f2f6f5b1935eed4d263b342", + "published": "2026-02-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+11 lines across 30 commits in linux-xr. mm/damon/core: disallow non-power of two min_region_sz.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 394, + "linesRemoved": 383, + "commits": 30, + "repository": "linux-xr", + "languages": [ + "C", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/82ca38bf01aa1160a27d882bfee72751", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-14T09:32:23.112Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/82ca38bf01aa1160a27d882bfee72751", + "published": "2026-02-14T09:32:23.112Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d5ee067a8df7a95587089cbfcc73ac72", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d5ee067a8df7a95587089cbfcc73ac72", + "published": "2026-02-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1191 lines across 1 commit in XoxdWM. feat(nix): Rocky 10 first-class deployment — VM tests, home-manager systemd, SELinux (v0.5.0) (#7).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1354, + "linesRemoved": 163, + "commits": 1, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Markdown", + "Nix", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3824ea75f3e628c6f0db8a572f77f989", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3824ea75f3e628c6f0db8a572f77f989", + "published": "2026-02-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+41780 lines across 1 commit in cmux. Fix frozen terminals after split churn (#12).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 46316, + "linesRemoved": 4536, + "commits": 1, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "JSON", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/006246bdf68c6a519b902fccaa967b7e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/006246bdf68c6a519b902fccaa967b7e", + "published": "2026-02-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+674 lines across 7 commits in GloriousFlywheel. chore: remove .githooks from tracking (#52).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1498, + "linesRemoved": 824, + "commits": 7, + "repository": "GloriousFlywheel", + "languages": [ + "Shell", + "YAML", + "Markdown", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ac031d4b4e355ccf72cdb0aa2db90b82", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ac031d4b4e355ccf72cdb0aa2db90b82", + "published": "2026-02-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+274 lines across 44 commits in linux-xr. i3c: dw-i3c-master: Set SIR_REJECT in DAT on device attach and reattach.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 435, + "linesRemoved": 161, + "commits": 44, + "repository": "linux-xr", + "languages": [ + "C", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0d802d944fd7563893673fd0ca52612e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T23:34:42.523Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0d802d944fd7563893673fd0ca52612e", + "published": "2026-02-12T23:34:42.523Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3be7cd5413f83116803d8c2246365029", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3be7cd5413f83116803d8c2246365029", + "published": "2026-02-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+52 lines across 13 commits in jesssullivan.github.io. chore: rebuild CV PDFs.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 249, + "linesRemoved": 197, + "commits": 13, + "repository": "jesssullivan.github.io", + "languages": [ + "TypeScript", + "Svelte", + "HTML", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/497d13063bc42df0e82719efe5fc42fb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/497d13063bc42df0e82719efe5fc42fb", + "published": "2026-02-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4016 lines across 5 commits in XoxdWM. feat(vr): real GL renderer, OpenXR session lifecycle, texture management.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4450, + "linesRemoved": 434, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "TOML", + "Rust", + "Emacs Lisp", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6e8da45bd00e51b27be8bd7f9137a0e5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6e8da45bd00e51b27be8bd7f9137a0e5", + "published": "2026-02-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+19798 lines across 19 commits in cmux. Update bonsplit submodule: keep raster favicons in color when inactive.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 20868, + "linesRemoved": 1070, + "commits": 19, + "repository": "cmux", + "languages": [ + "Markdown", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/28d88e10a1289c52f69066747b55f7d5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/28d88e10a1289c52f69066747b55f7d5", + "published": "2026-02-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-169 lines across 50 commits in linux-xr. dt-bindings: net: can: nxp,sja1000: add reference to mc-peripheral-props.yaml.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 639, + "linesRemoved": 808, + "commits": 50, + "repository": "linux-xr", + "languages": [ + "YAML", + "C", + "Python", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/31446712c8e16e6d86f2fef331e93819", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/31446712c8e16e6d86f2fef331e93819", + "published": "2026-02-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9490 lines across 49 commits in jesssullivan.github.io. fix: separate identity, tech/FOSS, and sponsoring badge categories (#34).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 12848, + "linesRemoved": 3358, + "commits": 49, + "repository": "jesssullivan.github.io", + "languages": [ + "TypeScript", + "Svelte", + "CSS", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9456d13c613758d1fbb5824cbe056105", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9456d13c613758d1fbb5824cbe056105", + "published": "2026-02-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+35689 lines across 10 commits in XoxdWM. fix(ci): update tests for lib.rs refactor and Rocky Linux 9.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 37766, + "linesRemoved": 2077, + "commits": 10, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Emacs Lisp", + "TOML", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e1adec36798e7e8c77d27116ceb5de81", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e1adec36798e7e8c77d27116ceb5de81", + "published": "2026-02-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4696 lines across 9 commits in cmux. Stabilize split-close regression capture and sidebar resize assertions.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5272, + "linesRemoved": 576, + "commits": 9, + "repository": "cmux", + "languages": [ + "Markdown", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cbedbd6b6b600e85d5109e7c42dec8bc", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cbedbd6b6b600e85d5109e7c42dec8bc", + "published": "2026-02-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+67 lines across 63 commits in linux-xr. iavf: fix incorrect reset handling in callbacks.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 608, + "linesRemoved": 541, + "commits": 63, + "repository": "linux-xr", + "languages": [ + "C", + "Python", + "Shell", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ade756e6da7b2f8c973e087b06dfd929", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ade756e6da7b2f8c973e087b06dfd929", + "published": "2026-02-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1996 lines across 6 commits in jesssullivan.github.io. feat: WP redirects, UI enhancements, enhanced-img, CC0 license (#11).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2182, + "linesRemoved": 186, + "commits": 6, + "repository": "jesssullivan.github.io", + "languages": [ + "YAML", + "Markdown", + "JSON", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/77772424b93789fec764a4468b9f709a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/77772424b93789fec764a4468b9f709a", + "published": "2026-02-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1894 lines across 2 commits in XoxdWM. chore: this is the plan, but its not the end.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 0, + "linesRemoved": 1894, + "commits": 2, + "repository": "XoxdWM", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0986c3babe0ceae1cdd7e5f859fd6a95", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0986c3babe0ceae1cdd7e5f859fd6a95", + "published": "2026-02-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+16123 lines across 31 commits in cmux. Fix split close/focus regressions and stabilize UI tests.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 17980, + "linesRemoved": 1857, + "commits": 31, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "Python", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/886734237cf38902b3ae17db0eb167ea", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/886734237cf38902b3ae17db0eb167ea", + "published": "2026-02-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+68 lines across 5 commits in GloriousFlywheel. fix(auth): use dynamic imports for @simplewebauthn/browser to fix SSR (#43).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 92, + "linesRemoved": 24, + "commits": 5, + "repository": "GloriousFlywheel", + "languages": [ + "Svelte", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5d938ac40d23a8bc3c788222636d955e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5d938ac40d23a8bc3c788222636d955e", + "published": "2026-02-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+983 lines across 99 commits in linux-xr. scsi: qla2xxx: Completely fix fcport double free.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1420, + "linesRemoved": 437, + "commits": 99, + "repository": "linux-xr", + "languages": [ + "C", + "Rust", + "Python", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b73036fe5d62c7a9b91e1f4d40c984c2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b73036fe5d62c7a9b91e1f4d40c984c2", + "published": "2026-02-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+15641 lines across 6 commits in jesssullivan.github.io. feat: add search, mermaid, dark mode, LaTeX CI, fix prerender (#5).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 15728, + "linesRemoved": 87, + "commits": 6, + "repository": "jesssullivan.github.io", + "languages": [ + "YAML", + "JSON", + "HTML", + "Svelte" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4938f06f9d17ccdfe0825f0262b9382c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4938f06f9d17ccdfe0825f0262b9382c", + "published": "2026-02-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+45003 lines across 14 commits in XoxdWM. feat(secrets): add KeePassXC & secrets integration (Week 14).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 45215, + "linesRemoved": 212, + "commits": 14, + "repository": "XoxdWM", + "languages": [ + "Rust", + "Emacs Lisp", + "Markdown", + "TOML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cdbc3f1ea8d06f9f3eaf7dfddf8c5ea2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cdbc3f1ea8d06f9f3eaf7dfddf8c5ea2", + "published": "2026-02-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4459 lines across 39 commits in cmux. Add download badge with Apple icon to README.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 15042, + "linesRemoved": 10583, + "commits": 39, + "repository": "cmux", + "languages": [ + "Markdown", + "TypeScript", + "CSS", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9376579df6edaba75d83d02ce66542f8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9376579df6edaba75d83d02ce66542f8", + "published": "2026-02-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3120 lines across 16 commits in GloriousFlywheel. feat(auth): WebAuthn/FIDO2 passkey authentication (#38).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3189, + "linesRemoved": 69, + "commits": 16, + "repository": "GloriousFlywheel", + "languages": [ + "JSON", + "Svelte", + "TypeScript", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5ec523bda4eb18770149fdeefecfba23", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5ec523bda4eb18770149fdeefecfba23", + "published": "2026-02-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+681 lines across 78 commits in linux-xr. KVM: x86: synthesize CPUID bits only if CPU capability is set.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1193, + "linesRemoved": 512, + "commits": 78, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "YAML", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/909c5ae402cf42d38ee0c113f829a1f3", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-09T10:38:22.200Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/909c5ae402cf42d38ee0c113f829a1f3", + "published": "2026-02-09T10:38:22.200Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7715f0342b00a75b12ffdf167badab00", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7715f0342b00a75b12ffdf167badab00", + "published": "2026-02-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9433 lines across 5 commits in XoxdWM. docs: Week 3 research — VR texture pipeline, wxrd, Space evaluation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 9671, + "linesRemoved": 238, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "TOML", + "Rust", + "Emacs Lisp" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/077d810f7288b5dc35368172faf9cc4b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/077d810f7288b5dc35368172faf9cc4b", + "published": "2026-02-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2302 lines across 30 commits in cmux. Ignore generated test reports.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2881, + "linesRemoved": 579, + "commits": 30, + "repository": "cmux", + "languages": [ + "Markdown", + "Python", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/84ba18f03d6c3888ee049b2a0dd6a4ab", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/84ba18f03d6c3888ee049b2a0dd6a4ab", + "published": "2026-02-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1024 lines across 30 commits in GloriousFlywheel. feat(dashboard): live data, config persistence, and link fixes (#19).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 13157, + "linesRemoved": 12133, + "commits": 30, + "repository": "GloriousFlywheel", + "languages": [ + "JSON", + "TypeScript", + "Svelte", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/db93324d6766f0e24dddc1b9f3d0c5c1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/db93324d6766f0e24dddc1b9f3d0c5c1", + "published": "2026-02-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+19373 lines across 28 commits in linux-xr. remoteproc: imx_rproc: Fix unreachable platform prepare_ops.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 19801, + "linesRemoved": 428, + "commits": 28, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c1ef3431517837027f03f08ea46c5f35", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c1ef3431517837027f03f08ea46c5f35", + "published": "2026-02-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2651 lines across 9 commits in cmux. Fix frozen new terminal tabs after splits.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3037, + "linesRemoved": 386, + "commits": 9, + "repository": "cmux", + "languages": [ + "Python", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c055e7ba2fdd4ea7f8697227e3fd347c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c055e7ba2fdd4ea7f8697227e3fd347c", + "published": "2026-02-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4484 lines across 31 commits in GloriousFlywheel. feat(abstraction): add organization config abstraction layer.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5173, + "linesRemoved": 689, + "commits": 31, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Shell", + "Markdown", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d55940955de2037566e30d6b418ba231", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d55940955de2037566e30d6b418ba231", + "published": "2026-02-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1845 lines across 38 commits in linux-xr. i40e: Fix preempt count leak in napi poll tracepoint.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2814, + "linesRemoved": 969, + "commits": 38, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/54ddbfd0256d796d45fd6650163cca19", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-07T03:28:07.634Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/54ddbfd0256d796d45fd6650163cca19", + "published": "2026-02-07T03:28:07.634Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/753e0a40c7283ee241aab086bf551b4b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/753e0a40c7283ee241aab086bf551b4b", + "published": "2026-02-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6406 lines across 11 commits in cmux. Test CI concurrency serialization.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7808, + "linesRemoved": 1402, + "commits": 11, + "repository": "cmux", + "languages": [ + "YAML", + "Python", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2e2e7ca9f89a0c667926e3b7b90f7cd9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2e2e7ca9f89a0c667926e3b7b90f7cd9", + "published": "2026-02-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+14052 lines across 4 commits in eGreg. fix: resolve yamllint and ansible-lint CI failures.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 14786, + "linesRemoved": 734, + "commits": 4, + "repository": "eGreg", + "languages": [ + "YAML", + "Nix", + "Markdown", + "Emacs Lisp" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/64b2f5ce6a6a62f3de77ee12be50cd14", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/64b2f5ce6a6a62f3de77ee12be50cd14", + "published": "2026-02-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+79 lines across 2 commits in GloriousFlywheel. style(runners): apply formatter to drift endpoint.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 129, + "linesRemoved": 50, + "commits": 2, + "repository": "GloriousFlywheel", + "languages": [ + "TypeScript", + "YAML", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2343f749deb348587ef901b04e78336e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2343f749deb348587ef901b04e78336e", + "published": "2026-02-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2004 lines across 127 commits in linux-xr. remoteproc: mediatek: Unprepare SCP clock during system suspend.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3157, + "linesRemoved": 1153, + "commits": 127, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/48d37201788deb9a50587a545246b6aa", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/48d37201788deb9a50587a545246b6aa", + "published": "2026-02-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2105 lines across 12 commits in cmux. Document --tag flag for parallel builds in CLAUDE.md.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3957, + "linesRemoved": 1852, + "commits": 12, + "repository": "cmux", + "languages": [ + "Markdown", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/df4067717977327d658c7252b0398e00", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/df4067717977327d658c7252b0398e00", + "published": "2026-02-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+21750 lines across 26 commits in GloriousFlywheel. style(runner-dashboard): normalize formatting to 2-space indent and double quotes.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 25484, + "linesRemoved": 3734, + "commits": 26, + "repository": "GloriousFlywheel", + "languages": [ + "CSS", + "TypeScript", + "HTML", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e9fc3f4e8c7ba6b072231d241c5587be", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e9fc3f4e8c7ba6b072231d241c5587be", + "published": "2026-02-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3285 lines across 156 commits in linux-xr. KVM: x86: Introduce KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5823, + "linesRemoved": 2538, + "commits": 156, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/79c37666ab615886cb85257a12ac5920", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-05T18:45:00.405Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/79c37666ab615886cb85257a12ac5920", + "published": "2026-02-05T18:45:00.405Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/301f6b7463d9d9c5c3227f0775e14bf6", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/301f6b7463d9d9c5c3227f0775e14bf6", + "published": "2026-02-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1452 lines across 2 commits in cmux. Bump version to 1.16.0 (#11).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1568, + "linesRemoved": 116, + "commits": 2, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a3c42bfabf9159098d2e49af824aaeeb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a3c42bfabf9159098d2e49af824aaeeb", + "published": "2026-02-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1 lines across 148 commits in linux-xr. KVM: x86: Fix SRCU list traversal in kvm_fire_mask_notifiers().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8718, + "linesRemoved": 8717, + "commits": 148, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0701a9911329b65d867d3dd544e1383a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-04T20:57:56.174Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0701a9911329b65d867d3dd544e1383a", + "published": "2026-02-04T20:57:56.174Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 Barred Owl at Lost Valley trails.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Barred Owl", + "scientificName": "Strix varia", + "location": { + "type": "Place", + "name": "Lost Valley trails", + "latitude": 44.0889, + "longitude": -70.2456 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/bb8e57ea278f8a77e40720fb83841ba5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/bb8e57ea278f8a77e40720fb83841ba5", + "published": "2026-02-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7810 lines across 12 commits in cmux. Add --panel flag to new-split command (#10).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8197, + "linesRemoved": 387, + "commits": 12, + "repository": "cmux", + "languages": [ + "Shell", + "Markdown", + "Zig", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/11857749cb520af2671fc13292c000f4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/11857749cb520af2671fc13292c000f4", + "published": "2026-02-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1453 lines across 31 commits in GloriousFlywheel. style: Fix markdown table formatting (prettier).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8040, + "linesRemoved": 9493, + "commits": 31, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "YAML", + "JSON", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/73c36732eff3f725f25c19d9bd5d15df", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/73c36732eff3f725f25c19d9bd5d15df", + "published": "2026-02-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3460 lines across 178 commits in linux-xr. KVM: SVM: Set/clear CR8 write interception when AVIC is (de)activated.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6290, + "linesRemoved": 2830, + "commits": 178, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f51ae3f23de813eb98b98f99a7ea3f0b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-03T09:20:28.035Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f51ae3f23de813eb98b98f99a7ea3f0b", + "published": "2026-02-03T09:20:28.035Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4baba383f610294dd1b8253e188dbbb4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-02T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4baba383f610294dd1b8253e188dbbb4", + "published": "2026-02-02T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-825 lines across 178 commits in linux-xr. RISC-V: KVM: Fix use-after-free in kvm_riscv_gstage_get_leaf().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4769, + "linesRemoved": 5594, + "commits": 178, + "repository": "linux-xr", + "languages": [ + "C", + "Python", + "Rust", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/563c23dcc5c294aceb11de7456cdca25", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-02T04:47:11.026Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/563c23dcc5c294aceb11de7456cdca25", + "published": "2026-02-02T04:47:11.026Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8f58a0e9a8f17d83b23f6c8541304bab", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8f58a0e9a8f17d83b23f6c8541304bab", + "published": "2026-02-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+21 lines across 1 commit in cmux. claude.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 22, + "linesRemoved": 1, + "commits": 1, + "repository": "cmux", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f62f302556c0e171427d6f81bd53ed0a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f62f302556c0e171427d6f81bd53ed0a", + "published": "2026-02-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+761 lines across 51 commits in linux-xr. powerpc/pseries: plpks: export plpks_wrapping_is_supported.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1278, + "linesRemoved": 517, + "commits": 51, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/36ad79113eaf0b376f88e8073d5b92c4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-02-01T01:43:59.899Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/36ad79113eaf0b376f88e8073d5b92c4", + "published": "2026-02-01T01:43:59.899Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/347fc0ff50073ecda5932d9ee2f1063d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-31T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/347fc0ff50073ecda5932d9ee2f1063d", + "published": "2026-01-31T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3411 lines across 73 commits in linux-xr. selftests: hid: tests: test_wacom_generic: add tests for display devices and opaque devices.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4391, + "linesRemoved": 980, + "commits": 73, + "repository": "linux-xr", + "languages": [ + "Python", + "C", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2c7966d7875eb6d63316d1d4feb2d919", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-30T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2c7966d7875eb6d63316d1d4feb2d919", + "published": "2026-01-30T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+361 lines across 7 commits in cmux. Bump version to 1.15.0 (#6).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 555, + "linesRemoved": 194, + "commits": 7, + "repository": "cmux", + "languages": [ + "Markdown", + "Python", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4a099854e6144fc5850a4c7c143421de", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-30T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4a099854e6144fc5850a4c7c143421de", + "published": "2026-01-30T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3981 lines across 176 commits in linux-xr. drm/msm/dpu: Fix smatch warnings about variable dereferenced before check.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6875, + "linesRemoved": 2894, + "commits": 176, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/37c5556d4ef60141dc0110105da5fbb7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-29T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/37c5556d4ef60141dc0110105da5fbb7", + "published": "2026-01-29T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2986114 lines across 32 commits in cmux. Bump version to 1.13.0 (#3).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2986510, + "linesRemoved": 396, + "commits": 32, + "repository": "cmux", + "languages": [ + "Markdown", + "JSON", + "YAML", + "JavaScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/7bc5af27c8e6ef864773165cc7176355", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-29T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/7bc5af27c8e6ef864773165cc7176355", + "published": "2026-01-29T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3157 lines across 132 commits in linux-xr. iavf: fix PTP use-after-free during reset.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5909, + "linesRemoved": 2752, + "commits": 132, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/60caf2a69c651c2320366d598767c00b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-29T16:36:32.975Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/60caf2a69c651c2320366d598767c00b", + "published": "2026-01-29T16:36:32.975Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e3cfbf0d46eb95b3161c29aca750d692", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e3cfbf0d46eb95b3161c29aca750d692", + "published": "2026-01-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4716 lines across 32 commits in cmux. Handle Sparkle updater cache and bump version.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5505, + "linesRemoved": 789, + "commits": 32, + "repository": "cmux", + "languages": [ + "Markdown", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6fc0f8196551101b59ae2c209614a3a9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6fc0f8196551101b59ae2c209614a3a9", + "published": "2026-01-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2257 lines across 174 commits in linux-xr. powerpc: dts: fsl: Drop unused .dtsi files.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4247, + "linesRemoved": 1990, + "commits": 174, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Python", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cbe14caa0a0928be9b5554eb363d4cd2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-28T10:36:30.503Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cbe14caa0a0928be9b5554eb363d4cd2", + "published": "2026-01-28T10:36:30.503Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 Eastern Bluebirds at Bradbury Mountain- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "Eastern Bluebird", + "scientificName": "Sialia sialis", + "location": { + "type": "Place", + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 + }, + "count": 3 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d919eebb8ca3a84a95a4dae35b9905bd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d919eebb8ca3a84a95a4dae35b9905bd", + "published": "2026-01-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6468 lines across 229 commits in linux-xr. powerpc64/ftrace: workaround clang recording GEP in __patchable_function_entries.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8273, + "linesRemoved": 1805, + "commits": 229, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dfc22700861a5a4cdc0f66d34da859a8", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-27T04:52:51.732Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dfc22700861a5a4cdc0f66d34da859a8", + "published": "2026-01-27T04:52:51.732Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 3 White-breasted Nuthatchs at Range Pond State Park- feeding together in the canopy.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 3 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/92b9c16195aaae5b986c0eebc9818db4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/92b9c16195aaae5b986c0eebc9818db4", + "published": "2026-01-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1977 lines across 10 commits in cmux. Add Sparkle auto-update flow and titlebar update UI.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2422, + "linesRemoved": 445, + "commits": 10, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "Shell", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/57e119295507c6a57aa93829d00ce389", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/57e119295507c6a57aa93829d00ce389", + "published": "2026-01-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+19182 lines across 1 commit in GloriousFlywheel. feat: Attic IaC - GitLab infrastructure patterns.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 19182, + "linesRemoved": 0, + "commits": 1, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Shell", + "Nix", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/363ad5b414a94572b3647a1908ef9e88", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/363ad5b414a94572b3647a1908ef9e88", + "published": "2026-01-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2293 lines across 150 commits in linux-xr. can: dummy_can: dummy_can_init(): fix packet statistics.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3522, + "linesRemoved": 1229, + "commits": 150, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d8b71ba0b6e90359aad964fd994a4024", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d8b71ba0b6e90359aad964fd994a4024", + "published": "2026-01-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-7251 lines across 81 commits in linux-xr. ceph: assert loop invariants in ceph_writepages_start().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3971, + "linesRemoved": 11222, + "commits": 81, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/79f4225e8d4e19b1c3a0e0e51fed502e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/79f4225e8d4e19b1c3a0e0e51fed502e", + "published": "2026-01-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1469 lines across 52 commits in linux-xr. drm/msm/adreno: Add GPU to MODULE_DEVICE_TABLE.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1790, + "linesRemoved": 321, + "commits": 52, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2c57c07d1eb48806f76c0b78cf69b964", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2c57c07d1eb48806f76c0b78cf69b964", + "published": "2026-01-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2585 lines across 154 commits in linux-xr. idpf: nullify pointers after they are freed.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6094, + "linesRemoved": 3509, + "commits": 154, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f84740ff42aebd99dfd5c98dc7465af3", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f84740ff42aebd99dfd5c98dc7465af3", + "published": "2026-01-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6218 lines across 183 commits in linux-xr. igb: Fix trigger of incorrect irq in igb_xsk_wakeup.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11372, + "linesRemoved": 5154, + "commits": 183, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3b1c3d62152041b9044907896258758f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3b1c3d62152041b9044907896258758f", + "published": "2026-01-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2956 lines across 96 commits in linux-xr. drm/amd/display: Skip eDP detection when no sink.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4075, + "linesRemoved": 1119, + "commits": 96, + "repository": "linux-xr", + "languages": [ + "C", + "Shell", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/66228db82b2e5f98b9499b2c60bb909a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/66228db82b2e5f98b9499b2c60bb909a", + "published": "2026-01-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1724 lines across 125 commits in linux-xr. apparmor: fix memory leak in verify_header.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3287, + "linesRemoved": 1563, + "commits": 125, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/fc4d9163e0c6ecfbc0eec7dc5003f44f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/fc4d9163e0c6ecfbc0eec7dc5003f44f", + "published": "2026-01-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1463 lines across 62 commits in linux-xr. smb: client: add multichannel async work for CONFIG_CIFS_DFS_UPCALL=n.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2763, + "linesRemoved": 1300, + "commits": 62, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3487c9510e73e2bfc564865a945fc94f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3487c9510e73e2bfc564865a945fc94f", + "published": "2026-01-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+587 lines across 35 commits in linux-xr. drm/amd/display: Reject cursor plane on DCE when scaled differently than primary.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 993, + "linesRemoved": 406, + "commits": 35, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b70fa7c99c78c68986ff40ab9503c43c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b70fa7c99c78c68986ff40ab9503c43c", + "published": "2026-01-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+407 lines across 31 commits in linux-xr. ipc: Add SPDX license id to mqueue.c.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 828, + "linesRemoved": 421, + "commits": 31, + "repository": "linux-xr", + "languages": [ + "C", + "Rust", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/fea80142a5b2dff95768903ac2bc1222", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/fea80142a5b2dff95768903ac2bc1222", + "published": "2026-01-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+139 lines across 93 commits in linux-xr. KVM: riscv: Fix Spectre-v1 in APLIC interrupt handling.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1003, + "linesRemoved": 864, + "commits": 93, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Python", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3b2f32d129c0b1a35a9ccacd58d3010e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3b2f32d129c0b1a35a9ccacd58d3010e", + "published": "2026-01-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2414 lines across 47 commits in linux-xr. apparmor: validate DFA start states are in bounds in unpack_pdb.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3059, + "linesRemoved": 645, + "commits": 47, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/77ca880e21735c90eed10ed649fed702", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/77ca880e21735c90eed10ed649fed702", + "published": "2026-01-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+160 lines across 50 commits in linux-xr. drm/xe: Do not preempt fence signaling CS instructions.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 639, + "linesRemoved": 479, + "commits": 50, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d0d253ecbb52b3892049d6236e6f4b1a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d0d253ecbb52b3892049d6236e6f4b1a", + "published": "2026-01-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+975 lines across 74 commits in linux-xr. apparmor: replace recursive profile removal with iterative approach.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1509, + "linesRemoved": 534, + "commits": 74, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/fa1075c195b102955c4ecdbc97096208", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/fa1075c195b102955c4ecdbc97096208", + "published": "2026-01-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-45 lines across 56 commits in linux-xr. idpf: skip deallocating txq group's txqs if it is NULL.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1316, + "linesRemoved": 1361, + "commits": 56, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b7f8031ee5f3976c3943ab0619d37c04", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b7f8031ee5f3976c3943ab0619d37c04", + "published": "2026-01-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+453 lines across 52 commits in linux-xr. lib/tests: add KUnit test for bitops.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1218, + "linesRemoved": 765, + "commits": 52, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a3283e30d36611d6bc641226c0cae7a2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a3283e30d36611d6bc641226c0cae7a2", + "published": "2026-01-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+66 lines across 9 commits in linux-xr. x86/bug: Handle __WARN_printf() trap in early_fixup_exception().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 120, + "linesRemoved": 54, + "commits": 9, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/256b34ac0dfdf057a8d814e9ca191cab", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/256b34ac0dfdf057a8d814e9ca191cab", + "published": "2026-01-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1800 lines across 88 commits in linux-xr. drm/amdgpu: Drop unsupported function.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2598, + "linesRemoved": 798, + "commits": 88, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8611f90a607c55d8af6345cee289bda9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8611f90a607c55d8af6345cee289bda9", + "published": "2026-01-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1170 lines across 29 commits in linux-xr. HID: multitouch: Keep latency normal on deactivate for reactivation gesture.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 926, + "linesRemoved": 2096, + "commits": 29, + "repository": "linux-xr", + "languages": [ + "C", + "Rust", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6b76e828344247cc838e8512be7b42fe", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6b76e828344247cc838e8512be7b42fe", + "published": "2026-01-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2659 lines across 47 commits in linux-xr. module: Remove duplicate freeing of lockdep classes.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3156, + "linesRemoved": 497, + "commits": 47, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f2de359dd17901d43241bd23d38130ca", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-06T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f2de359dd17901d43241bd23d38130ca", + "published": "2026-01-06T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+353 lines across 39 commits in linux-xr. powerpc/e500: Always use 64 bits PTE.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 864, + "linesRemoved": 511, + "commits": 39, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/78ab874582ceff784f57adb344a4c3c5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/78ab874582ceff784f57adb344a4c3c5", + "published": "2026-01-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+35 lines across 24 commits in linux-xr. idpf: increment completion queue next_to_clean in sw marker wait routine.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 708, + "linesRemoved": 673, + "commits": 24, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3ff2445c9267aceb5afffbdea62c8cdc", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3ff2445c9267aceb5afffbdea62c8cdc", + "published": "2026-01-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+34 lines across 6 commits in linux-xr. irqchip/riscv-imsic: Adjust the number of available guest irq files.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 37, + "linesRemoved": 3, + "commits": 6, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/66bcc991607898156a94106b91bf18d1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/66bcc991607898156a94106b91bf18d1", + "published": "2026-01-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2 lines across 2 commits in linux-xr. drivers: android: binder: Update ARef imports from sync::aref.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6, + "linesRemoved": 4, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "Rust", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b2b3de0719b8995cf0ccb0b1fc58735d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-02T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b2b3de0719b8995cf0ccb0b1fc58735d", + "published": "2026-01-02T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-25 lines across 7 commits in linux-xr. PCI: Disable ACS SV for IDT 0x8090 switch.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 46, + "linesRemoved": 71, + "commits": 7, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/272d105e6bf2e5bc3d38faf66bbb1064", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-01-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/272d105e6bf2e5bc3d38faf66bbb1064", + "published": "2026-01-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9 lines across 3 commits in linux-xr. dt-bindings: leds: Allow differently named multicolor LEDs.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 15, + "linesRemoved": 6, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "YAML", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/85f92a379fb8ab6d3ce890a3d984ce24", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-31T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/85f92a379fb8ab6d3ce890a3d984ce24", + "published": "2025-12-31T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+13 lines across 4 commits in linux-xr. iio: imu: inv-mpu9150: fix irq ack preventing irq storms.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 23, + "linesRemoved": 10, + "commits": 4, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/38c28a3762daa9dc4fb168f7d58239ed", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-30T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/38c28a3762daa9dc4fb168f7d58239ed", + "published": "2025-12-30T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+617 lines across 20 commits in linux-xr. module: Fix kernel panic when a symbol st_shndx is out of bounds.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 733, + "linesRemoved": 116, + "commits": 20, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/485718eab583f71b886a05b3a55e5ec5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-29T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/485718eab583f71b886a05b3a55e5ec5", + "published": "2025-12-29T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+31 lines across 6 commits in linux-xr. RISC-V: KVM: Remove unnecessary 'ret' assignment.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 138, + "linesRemoved": 107, + "commits": 6, + "repository": "linux-xr", + "languages": [ + "C", + "Rust" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b93f902d7cb4e08ccf57f266cf59ee0a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b93f902d7cb4e08ccf57f266cf59ee0a", + "published": "2025-12-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2 lines across 5 commits in linux-xr. fbdev: smscufx: properly copy ioctl memory to kernelspace.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11, + "linesRemoved": 9, + "commits": 5, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cfc1c35208e51917e099c47a9ce15e1f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cfc1c35208e51917e099c47a9ce15e1f", + "published": "2025-12-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2 lines across 3 commits in linux-xr. fs/nfs: Fix readdir slow-start regression.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8, + "linesRemoved": 6, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b87a9f50616d81e1bc5ce56233a232df", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b87a9f50616d81e1bc5ce56233a232df", + "published": "2025-12-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-912 lines across 13 commits in linux-xr. drm/hyperv: Remove reference to hyperv_fb driver.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 580, + "linesRemoved": 1492, + "commits": 13, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4b9f2a8640faa8aa1d0891295cc3e2eb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4b9f2a8640faa8aa1d0891295cc3e2eb", + "published": "2025-12-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 10 commits in linux-xr. apparmor: split xxx_in_ns into its two separate semantic use cases.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 173, + "linesRemoved": 173, + "commits": 10, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/13246f8b6e563a700be4be835483a6d7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/13246f8b6e563a700be4be835483a6d7", + "published": "2025-12-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1093 lines across 15 commits in linux-xr. powerpc/kexec/core: use big-endian types for crash variables.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1141, + "linesRemoved": 48, + "commits": 15, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/71411e1c9bfbedc7e70fffc5902688eb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/71411e1c9bfbedc7e70fffc5902688eb", + "published": "2025-12-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-2110 lines across 16 commits in linux-xr. perf build: Allow passing extra Clang flags via EXTRA_BPF_FLAGS.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2149, + "linesRemoved": 4259, + "commits": 16, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/dc56bdd6412ea52d186f46e04374deef", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/dc56bdd6412ea52d186f46e04374deef", + "published": "2025-12-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+408 lines across 23 commits in linux-xr. PM: runtime: Change pm_runtime_put() return type to void.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 645, + "linesRemoved": 237, + "commits": 23, + "repository": "linux-xr", + "languages": [ + "C", + "Rust", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/20763be06900c318e11e50c21038bdc1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/20763be06900c318e11e50c21038bdc1", + "published": "2025-12-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+196 lines across 3 commits in linux-xr. fbdev: Use device_create_with_groups() to fix sysfs groups registration race.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 336, + "linesRemoved": 140, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/11c98530d2f5c62dffb374641bf95286", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/11c98530d2f5c62dffb374641bf95286", + "published": "2025-12-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+105 lines across 24 commits in linux-xr. btrfs: add mount time auto fix for orphan fst entries.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1206, + "linesRemoved": 1101, + "commits": 24, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/bef08c33532af0a0362ca0acc48843cb", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/bef08c33532af0a0362ca0acc48843cb", + "published": "2025-12-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+663 lines across 48 commits in linux-xr. parisc: kernel: replace kfree() with put_device() in create_tree_node().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1471, + "linesRemoved": 808, + "commits": 48, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/2ddf14f0a94f981ee1553e8aa104dcea", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/2ddf14f0a94f981ee1553e8aa104dcea", + "published": "2025-12-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1491 lines across 10 commits in linux-xr. x86/headers: Replace __ASSEMBLY__ stragglers with __ASSEMBLER__.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1518, + "linesRemoved": 27, + "commits": 10, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/087c629b00ba4566f7f4153041ce7b63", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/087c629b00ba4566f7f4153041ce7b63", + "published": "2025-12-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+861 lines across 33 commits in linux-xr. fbcon: check return value of con2fb_acquire_newinfo().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6101, + "linesRemoved": 5240, + "commits": 33, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f3bb4bcc0c725cb57ecd8918bd3a4195", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-16T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f3bb4bcc0c725cb57ecd8918bd3a4195", + "published": "2025-12-16T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+89 lines across 16 commits in linux-xr. dt-bindings: power: syscon-poweroff: Allow \"reg\" property.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 144, + "linesRemoved": 55, + "commits": 16, + "repository": "linux-xr", + "languages": [ + "YAML", + "C", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/09db5a13a775b0268d5b3104d1f6dbb0", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-15T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/09db5a13a775b0268d5b3104d1f6dbb0", + "published": "2025-12-15T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+126 lines across 18 commits in linux-xr. drm/amd/display: Add static keyword for sharpness tables.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 311, + "linesRemoved": 185, + "commits": 18, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5776cf7d3f9c2043c67dc479998c4d5e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5776cf7d3f9c2043c67dc479998c4d5e", + "published": "2025-12-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1 lines across 1 commit in linux-xr. gfs2: Fix slab-use-after-free in qd_put.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6691c2a17528c2ecb353fe49025a0eba", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6691c2a17528c2ecb353fe49025a0eba", + "published": "2025-12-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+31 lines across 8 commits in linux-xr. cifs: update internal module version number.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 65, + "linesRemoved": 34, + "commits": 8, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/81e7762b639fa385fbdc25f574530938", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-12T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/81e7762b639fa385fbdc25f574530938", + "published": "2025-12-12T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1425 lines across 9 commits in linux-xr. drm/amdkfd: Check for NULL return values.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 64, + "linesRemoved": 1489, + "commits": 9, + "repository": "linux-xr", + "languages": [ + "C", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ce1b13a8ae74768765af14a3528e2bff", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ce1b13a8ae74768765af14a3528e2bff", + "published": "2025-12-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-45 lines across 27 commits in linux-xr. cifs: Scripted clean up fs/smb/client/ntlmssp.h.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 900, + "linesRemoved": 945, + "commits": 27, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c6cca7ffa7c912c00f87b8732c21f754", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c6cca7ffa7c912c00f87b8732c21f754", + "published": "2025-12-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+50 lines across 14 commits in linux-xr. ixgbevf: fix link setup issue.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 138, + "linesRemoved": 88, + "commits": 14, + "repository": "linux-xr", + "languages": [ + "C", + "YAML", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/fd0709bc579b7cbffae17a6c06870298", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/fd0709bc579b7cbffae17a6c06870298", + "published": "2025-12-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2 lines across 22 commits in linux-xr. drm/amdkfd: Unreserve bo if queue update failed.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 268, + "linesRemoved": 266, + "commits": 22, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f6f8344b00e52450ffa88038153a2b48", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f6f8344b00e52450ffa88038153a2b48", + "published": "2025-12-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+71 lines across 11 commits in linux-xr. tools/power turbostat: Use strtoul() for iteration parsing.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 210, + "linesRemoved": 139, + "commits": 11, + "repository": "linux-xr", + "languages": [ + "C", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4887d4f1a88ba40699fbc01e460092c2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4887d4f1a88ba40699fbc01e460092c2", + "published": "2025-12-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3 lines across 1 commit in linux-xr. fbdev: rivafb: fix divide error in nv3_arb().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/059b2d5e41f56ec2939d870bbe857b05", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/059b2d5e41f56ec2939d870bbe857b05", + "published": "2025-12-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+27 lines across 5 commits in linux-xr. exfat: improve error code handling in exfat_find_empty_entry().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 40, + "linesRemoved": 13, + "commits": 5, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/f0e03daf8ffd1b9d57fac5cc26e071f4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-04T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/f0e03daf8ffd1b9d57fac5cc26e071f4", + "published": "2025-12-04T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-292 lines across 5 commits in linux-xr. nvmet-fcloop: Check remoteport port_state before calling done callback.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 197, + "linesRemoved": 489, + "commits": 5, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0a7d1502cabfa79367cc954b8ca8efb7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0a7d1502cabfa79367cc954b8ca8efb7", + "published": "2025-12-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+157 lines across 9 commits in linux-xr. ice: fix adding AQ LLDP filter for VF.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 196, + "linesRemoved": 39, + "commits": 9, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/40942a7f1b27f33c47b821bf212d6748", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-02T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/40942a7f1b27f33c47b821bf212d6748", + "published": "2025-12-02T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+112 lines across 3 commits in linux-xr. arm64: dts: socfpga: agilex5: add support for modular board.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 113, + "linesRemoved": 1, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "YAML", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/99548875c0d51debd64342b4ca70506c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-12-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/99548875c0d51debd64342b4ca70506c", + "published": "2025-12-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+60 lines across 5 commits in linux-xr. minix: Correct errno in minix_new_inode.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 78, + "linesRemoved": 18, + "commits": 5, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5299d85bab6f6a304ceaaff12019ff16", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-28T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5299d85bab6f6a304ceaaff12019ff16", + "published": "2025-11-28T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+16 lines across 3 commits in linux-xr. perf test: Fix test case Leader sampling on s390.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 27, + "linesRemoved": 11, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "Shell", + "Rust", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ebfa128b8244ae2e3dd42871a767b9b5", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-27T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ebfa128b8244ae2e3dd42871a767b9b5", + "published": "2025-11-27T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+934 lines across 6 commits in linux-xr. landlock: Document LANDLOCK_RESTRICT_SELF_TSYNC.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 969, + "linesRemoved": 35, + "commits": 6, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/07af1f0f677b96217fdd73a99f435914", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/07af1f0f677b96217fdd73a99f435914", + "published": "2025-11-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1 lines across 1 commit in linux-xr. btrfs: introduce BTRFS_PATH_AUTO_RELEASE() helper.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 23, + "linesRemoved": 22, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0cd237927e9b9655d0908db7c4e72b57", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0cd237927e9b9655d0908db7c4e72b57", + "published": "2025-11-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 1 commit in linux-xr. rtc: interface: Alarm race handling should not discard preceding error.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/c426f39c9454440d7e88416eb5af716f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/c426f39c9454440d7e88416eb5af716f", + "published": "2025-11-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3 lines across 2 commits in linux-xr. drm/amdgpu: Load TA ucode for PSP 15_0_0.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4, + "linesRemoved": 1, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d420c9b4df9db0fcf344eeb914361c97", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d420c9b4df9db0fcf344eeb914361c97", + "published": "2025-11-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4 lines across 1 commit in linux-xr. modpost: Amend ppc64 save/restfpr symnames for -Os build.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8e19406a85b107db5937417b4ceeb3f7", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8e19406a85b107db5937417b4ceeb3f7", + "published": "2025-11-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-12 lines across 4 commits in linux-xr. btrfs: simplify boolean argument for btrfs_inc_ref()/btrfs_dec_ref().

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 49, + "linesRemoved": 61, + "commits": 4, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9c56b60e1ad5960e1d4bcd3b8e71c40e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-21T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9c56b60e1ad5960e1d4bcd3b8e71c40e", + "published": "2025-11-21T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+43 lines across 3 commits in linux-xr. x86/hyperv: Remove ASM_CALL_CONSTRAINT with VMMCALL insn.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 53, + "linesRemoved": 10, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0833d4df5086f69fa23818852ba52af4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-20T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0833d4df5086f69fa23818852ba52af4", + "published": "2025-11-20T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+264 lines across 10 commits in linux-xr. netfilter: nfnetlink_queue: do shared-unconfirmed check before segmentation.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 657, + "linesRemoved": 393, + "commits": 10, + "repository": "linux-xr", + "languages": [ + "C", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5ffa97912cd8a5c0c71434fbd0986f87", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-19T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5ffa97912cd8a5c0c71434fbd0986f87", + "published": "2025-11-19T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-2 lines across 3 commits in linux-xr. xenbus: Rename helpers to freeze/thaw/restore.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 27, + "linesRemoved": 29, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "C", + "Python" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/527fc386975d5ce83cf04bda4233e0a0", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-18T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/527fc386975d5ce83cf04bda4233e0a0", + "published": "2025-11-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 1 commit in linux-xr. gfs2: gfs2_glock_hold cleanup.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 2, + "linesRemoved": 2, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/52227623403c243e03aec4d40b5501e1", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-17T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/52227623403c243e03aec4d40b5501e1", + "published": "2025-11-17T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+155 lines across 3 commits in linux-xr. rust: print: Add pr_*_once macros.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 174, + "linesRemoved": 19, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "Rust", + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8ed693ee044b85d0d4941d4934ec034c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-14T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8ed693ee044b85d0d4941d4934ec034c", + "published": "2025-11-14T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3 lines across 6 commits in linux-xr. NFS: Move NFS v4.0 pathdown recovery into nfs40client.c.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 186, + "linesRemoved": 183, + "commits": 6, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/197f9dbdf9fe87cc647dcfe09f9707ef", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-13T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/197f9dbdf9fe87cc647dcfe09f9707ef", + "published": "2025-11-13T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+38 lines across 6 commits in linux-xr. PCI: Mark Nvidia GB10 to avoid bus reset.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 482, + "linesRemoved": 444, + "commits": 6, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/986a2e4efe5e495ee7583a7708d6bfbe", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-11T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/986a2e4efe5e495ee7583a7708d6bfbe", + "published": "2025-11-11T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3 lines across 1 commit in linux-xr. drm/amdgpu: Ignored various return code.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 14, + "linesRemoved": 11, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/75c1166d0efac2c5f9ca15891550b48c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-10T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/75c1166d0efac2c5f9ca15891550b48c", + "published": "2025-11-10T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2 lines across 2 commits in linux-xr. i40e: fix src IP mask checks and memcpy argument names in cloud filter.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10, + "linesRemoved": 8, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/147c77c5c9b5e058a68d45ea7a79a071", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-09T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/147c77c5c9b5e058a68d45ea7a79a071", + "published": "2025-11-09T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+5 lines across 1 commit in linux-xr. apparmor: fix rlimit for posix cpu timers.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8c2c76e8bd4025eb4e5dd6f61d530c35", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-08T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8c2c76e8bd4025eb4e5dd6f61d530c35", + "published": "2025-11-08T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+38 lines across 1 commit in linux-xr. apparmor: refactor/cleanup cred helper fns..

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 69, + "linesRemoved": 31, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b75cc032285bb6c471326d081c7a202b", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-07T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b75cc032285bb6c471326d081c7a202b", + "published": "2025-11-07T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+49 lines across 2 commits in linux-xr. apparmor: fix unprivileged local user can do privileged policy management.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 83, + "linesRemoved": 34, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/494f4f20cab45e6ac94c89894bc3951c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-05T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/494f4f20cab45e6ac94c89894bc3951c", + "published": "2025-11-05T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+128 lines across 1 commit in linux-xr. KVM: riscv: selftests: Add riscv vm satp modes.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 142, + "linesRemoved": 14, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/19680ea92d41210d7292807563a29bdf", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-03T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/19680ea92d41210d7292807563a29bdf", + "published": "2025-11-03T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-1 lines across 2 commits in linux-xr. NTB: epf: allow built-in build.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10, + "linesRemoved": 11, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/d2a5b5bdd8f10526d057a216889cd170", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-02T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/d2a5b5bdd8f10526d057a216889cd170", + "published": "2025-11-02T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+2 lines across 1 commit in linux-xr. apparmor: fix label and profile debug macros.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/561e6aed8d6caebf74986d839fe58a08", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-11-01T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/561e6aed8d6caebf74986d839fe58a08", + "published": "2025-11-01T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+12 lines across 1 commit in linux-xr. btrfs: fallback to buffered IO if the data profile has duplication.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 12, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1c0df0fac374443749b62cce62ffcd02", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-10-30T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1c0df0fac374443749b62cce62ffcd02", + "published": "2025-10-30T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+13 lines across 1 commit in linux-xr. drm/imx/tve: fix probe device leak.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 13, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/bcbe0a605e840bbd20e9ca132214e15a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-10-29T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/bcbe0a605e840bbd20e9ca132214e15a", + "published": "2025-10-29T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1 lines across 2 commits in linux-xr. powerpc/prom_init: Fixup missing #size-cells on PowerMac media-bay nodes.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 2, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/b4010a546423281276ac7a0aa83e467d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-10-26T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/b4010a546423281276ac7a0aa83e467d", + "published": "2025-10-26T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 1 commit in linux-xr. PCI/PME: Replace RMW of Root Status register with direct write.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/6a206d5bb707d5faa855e5a44a50e4ca", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-10-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/6a206d5bb707d5faa855e5a44a50e4ca", + "published": "2025-10-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+0 lines across 1 commit in linux-xr. ntb: migrate to dma_map_phys instead of map_page.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 6, + "linesRemoved": 6, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/53c9ff67601b3297ecae1f7a2cc8e51a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2025-10-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/53c9ff67601b3297ecae1f7a2cc8e51a", + "published": "2025-10-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+89 lines across 2 commits in linux-xr. NTB: ntb_transport: Add 'tx_memcpy_offload' module option.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 102, + "linesRemoved": 13, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -814,15 +14790,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/460c61259cf70605658e51f7c48ae64e", + "id": "https://tinyland.dev/activities/84e0227f52387aa38b13721f521d99b6", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-27T01:24:29.334Z", + "published": "2025-10-20T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/460c61259cf70605658e51f7c48ae64e", - "published": "2026-03-27T01:24:29.334Z", + "id": "https://tinyland.dev/notes/84e0227f52387aa38b13721f521d99b6", + "published": "2025-10-20T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+154/-5 lines across 8 commits in acuity-middleware.

", + "content": "

+7 lines across 2 commits in linux-xr. RISC-V: KVM: selftests: Add Zalasr extensions to get-reg-list test.

", "tag": [ { "type": "Hashtag", @@ -830,13 +14806,12 @@ } ], "tl:codeActivity": { - "linesAdded": 154, - "linesRemoved": 5, - "commits": 8, - "repository": "acuity-middleware", + "linesAdded": 7, + "linesRemoved": 0, + "commits": 2, + "repository": "linux-xr", "languages": [ - "Nix", - "Rust" + "C" ] } } @@ -849,21 +14824,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ebd9c12ddc22968dae8b5b6d03057995", + "id": "https://tinyland.dev/activities/acb3d6be73e457b8a0190a744eb7e4a7", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-26T00:19:32.902Z", + "published": "2025-10-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ebd9c12ddc22968dae8b5b6d03057995", - "published": "2026-03-26T00:19:32.902Z", + "id": "https://tinyland.dev/notes/acb3d6be73e457b8a0190a744eb7e4a7", + "published": "2025-10-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+78 lines across 2 commits in linux-xr. apparmor: fix differential encoding verification.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 84, + "linesRemoved": 6, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -874,21 +14858,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/35763973bafd97f2953eb7eb7ba07f16", + "id": "https://tinyland.dev/activities/7934d1ca74a4aea9c412141da336d0dd", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-24T19:36:15.266Z", + "published": "2025-10-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/35763973bafd97f2953eb7eb7ba07f16", - "published": "2026-03-24T19:36:15.266Z", + "id": "https://tinyland.dev/notes/7934d1ca74a4aea9c412141da336d0dd", + "published": "2025-10-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+4 lines across 2 commits in linux-xr. pid: introduce task_ppid_vnr() helper.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 7, + "linesRemoved": 3, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -899,21 +14892,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/0ca1b7bf3e1f82e334faab238ab47326", + "id": "https://tinyland.dev/activities/134107adb7f3f9996bb07314d32d9aa7", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-23T13:50:09.918Z", + "published": "2025-10-14T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/0ca1b7bf3e1f82e334faab238ab47326", - "published": "2026-03-23T13:50:09.918Z", + "id": "https://tinyland.dev/notes/134107adb7f3f9996bb07314d32d9aa7", + "published": "2025-10-14T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Morning fog on the Androscoggin. Perfect conditions for great blue herons- counted six in a half-mile stretch.

", + "content": "

+9 lines across 1 commit in linux-xr. dt-bindings: clk: rs9: Fix DIF pattern match.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 10, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "YAML" + ] + } } }, { @@ -924,30 +14926,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/c45e8e8a0a6121b97546acbd713e9c99", + "id": "https://tinyland.dev/activities/5dac4f3fd257d80e695d5b00458b0e21", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-22T10:39:52.274Z", + "published": "2025-10-08T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/c45e8e8a0a6121b97546acbd713e9c99", - "published": "2026-03-22T10:39:52.274Z", + "id": "https://tinyland.dev/notes/5dac4f3fd257d80e695d5b00458b0e21", + "published": "2025-10-08T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

27.6 mi ride along the Lisbon Falls loop. 133 minutes, 497 ft elevation.

", + "content": "

+54 lines across 1 commit in linux-xr. rust: safety: introduce `unsafe_precondition_assert!` macro.

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 27.6, - "durationMinutes": 133, - "route": "Lisbon Falls loop", - "elevationGainFeet": 497 + "tl:codeActivity": { + "linesAdded": 54, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "Rust" + ] } } }, @@ -959,21 +14960,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/31095068f27684456ef6430436f6213e", + "id": "https://tinyland.dev/activities/0d5fd053a1455573b315750db2b8e13c", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-21T05:09:32.640Z", + "published": "2025-10-06T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/31095068f27684456ef6430436f6213e", - "published": "2026-03-21T05:09:32.640Z", + "id": "https://tinyland.dev/notes/0d5fd053a1455573b315750db2b8e13c", + "published": "2025-10-06T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "content": "

+66 lines across 1 commit in linux-xr. modsign: Enable ML-DSA module signing.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 82, + "linesRemoved": 16, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -984,15 +14994,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ba4e64be4f9a4b870b1e862aac6a2785", + "id": "https://tinyland.dev/activities/084ce2a6ea8470ded69c71065bcfcca1", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-20T00:22:09.434Z", + "published": "2025-10-03T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ba4e64be4f9a4b870b1e862aac6a2785", - "published": "2026-03-20T00:22:09.434Z", + "id": "https://tinyland.dev/notes/084ce2a6ea8470ded69c71065bcfcca1", + "published": "2025-10-03T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+114/-50 lines across 2 commits in cmux.

", + "content": "

+3 lines across 2 commits in linux-xr. clk: aspeed: Add reset for HACE/VIDEO.

", "tag": [ { "type": "Hashtag", @@ -1000,13 +15010,12 @@ } ], "tl:codeActivity": { - "linesAdded": 114, - "linesRemoved": 50, + "linesAdded": 3, + "linesRemoved": 0, "commits": 2, - "repository": "cmux", + "repository": "linux-xr", "languages": [ - "Svelte", - "CSS" + "C" ] } } @@ -1019,21 +15028,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/5e8cb357b80d2ee47757a210c1cdeb46", + "id": "https://tinyland.dev/activities/24cf3aec6d4d51d33ced04f67513524b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-18T14:43:13.164Z", + "published": "2025-09-30T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/5e8cb357b80d2ee47757a210c1cdeb46", - "published": "2026-03-18T14:43:13.164Z", + "id": "https://tinyland.dev/notes/24cf3aec6d4d51d33ced04f67513524b", + "published": "2025-09-30T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+20 lines across 1 commit in linux-xr. PCI: Flush PCI probe workqueue on cpuset isolated partition change.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 21, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1044,35 +15062,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ea7f6735a3d1213e0a36ae3c8e37cb61", + "id": "https://tinyland.dev/activities/37ad9613efcbce34315a5534abd8e503", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-17T14:58:32.573Z", + "published": "2025-09-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ea7f6735a3d1213e0a36ae3c8e37cb61", - "published": "2026-03-17T14:58:32.573Z", + "id": "https://tinyland.dev/notes/37ad9613efcbce34315a5534abd8e503", + "published": "2025-09-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Great Blue Heron at Bradbury Mountain.

", + "content": "

+35 lines across 2 commits in linux-xr. ceph: supply snapshot context in ceph_uninline_data().

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Great Blue Heron", - "scientificName": "Ardea herodias", - "location": { - "type": "Place", - "name": "Bradbury Mountain", - "latitude": 43.9017, - "longitude": -70.1678 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 38, + "linesRemoved": 3, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1084,21 +15096,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/604b976b778db7fb303b649c8d185bff", + "id": "https://tinyland.dev/activities/93ebf36999dace1369e9988e8c6f5e6e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-16T09:31:46.518Z", + "published": "2025-09-23T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/604b976b778db7fb303b649c8d185bff", - "published": "2026-03-16T09:31:46.518Z", + "id": "https://tinyland.dev/notes/93ebf36999dace1369e9988e8c6f5e6e", + "published": "2025-09-23T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "content": "

+2 lines across 1 commit in linux-xr. powerpc/smp: Add check for kcalloc() failure in parse_thread_groups().

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 2, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1109,35 +15130,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "id": "https://tinyland.dev/activities/2c620d3855114398e2aad113351012ed", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-14T23:38:44.132Z", + "published": "2025-09-22T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/04a99cdb9a5bdd4c7f32bcd964a7f61d", - "published": "2026-03-14T23:38:44.132Z", + "id": "https://tinyland.dev/notes/2c620d3855114398e2aad113351012ed", + "published": "2025-09-22T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Red-tailed Hawks at Sabattus Pond- feeding together in the canopy.

", + "content": "

+2 lines across 1 commit in linux-xr. dlm: Avoid -Wflex-array-member-not-at-end warning.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Red-tailed Hawk", - "scientificName": "Buteo jamaicensis", - "location": { - "type": "Place", - "name": "Sabattus Pond", - "latitude": 44.1209, - "longitude": -70.0874 - }, - "count": 2 + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1149,35 +15164,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "id": "https://tinyland.dev/activities/a4f0f2cd931cf0760b9eb2781f5801b8", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-14T00:51:49.153Z", + "published": "2025-09-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/4e8fc9a579d46bc3ee4efb5be4c8b9db", - "published": "2026-03-14T00:51:49.153Z", + "id": "https://tinyland.dev/notes/a4f0f2cd931cf0760b9eb2781f5801b8", + "published": "2025-09-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Barred Owl at Androscoggin Riverlands.

", + "content": "

-1 lines across 1 commit in linux-xr. powerpc: kgdb: Remove OUTBUFMAX constant.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Androscoggin Riverlands", - "latitude": 44.0412, - "longitude": -70.1823 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 0, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1189,30 +15198,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/b8dabfc5d830d6c944f2d36759caa9de", + "id": "https://tinyland.dev/activities/8288c495fe959315e23c01c1e2f57f26", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-12T13:35:08.946Z", + "published": "2025-09-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/b8dabfc5d830d6c944f2d36759caa9de", - "published": "2026-03-12T13:35:08.946Z", + "id": "https://tinyland.dev/notes/8288c495fe959315e23c01c1e2f57f26", + "published": "2025-09-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

23.9 mi ride along the Turner Center hill climb. 112 minutes, 589 ft elevation.

", + "content": "

+11 lines across 2 commits in linux-xr. apparmor: fix fast path cache check for unix sockets.

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 23.9, - "durationMinutes": 112, - "route": "Turner Center hill climb", - "elevationGainFeet": 589 + "tl:codeActivity": { + "linesAdded": 31, + "linesRemoved": 20, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1224,40 +15232,28 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/faefef3d75ea4eebdf1f36240980d2b1", + "id": "https://tinyland.dev/activities/5a7714aa36ad15fd32f881f5053e7557", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-11T11:55:06.301Z", + "published": "2025-09-11T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/faefef3d75ea4eebdf1f36240980d2b1", - "published": "2026-03-11T11:55:06.301Z", + "id": "https://tinyland.dev/notes/5a7714aa36ad15fd32f881f5053e7557", + "published": "2025-09-11T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Office: 18.3C, 37% humidity, CO2 431ppm.

", + "content": "

+0 lines across 1 commit in linux-xr. cifs: SMB1 split: Move some SMB1 received PDU checking bits to smb1transport.c.

", "tag": [ { "type": "Hashtag", - "name": "#sensors" + "name": "#code" } ], - "tl:sensorReading": { - "sensorId": "office-env-01", - "sensorType": "environmental", - "measurements": [ - { - "name": "Temperature", - "value": 18.3, - "unit": "C" - }, - { - "name": "Humidity", - "value": 37, - "unit": "%" - }, - { - "name": "CO2", - "value": 431, - "unit": "ppm" - } + "tl:codeActivity": { + "linesAdded": 128, + "linesRemoved": 128, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" ] } } @@ -1270,15 +15266,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/a8524fe901a5d67ded4b23dcdfbece29", + "id": "https://tinyland.dev/activities/c4a739aea84460dd5e5974e33a5e9e09", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-10T11:25:41.320Z", + "published": "2025-09-10T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/a8524fe901a5d67ded4b23dcdfbece29", - "published": "2026-03-10T11:25:41.320Z", + "id": "https://tinyland.dev/notes/c4a739aea84460dd5e5974e33a5e9e09", + "published": "2025-09-10T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+240/-41 lines across 5 commits in scheduling-kit.

", + "content": "

+3 lines across 2 commits in linux-xr. apparmor: Fix double free of ns_name in aa_replace_profiles().

", "tag": [ { "type": "Hashtag", @@ -1286,13 +15282,12 @@ } ], "tl:codeActivity": { - "linesAdded": 240, - "linesRemoved": 41, - "commits": 5, - "repository": "scheduling-kit", + "linesAdded": 174, + "linesRemoved": 171, + "commits": 2, + "repository": "linux-xr", "languages": [ - "TypeScript", - "CSS" + "C" ] } } @@ -1305,21 +15300,28 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/351b03c80d6ba3cff5d558dca8e3e85b", + "id": "https://tinyland.dev/activities/b2c546a3962f45c6f3c0bffc82c7b87e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-08T23:23:39.121Z", + "published": "2025-09-09T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/351b03c80d6ba3cff5d558dca8e3e85b", - "published": "2026-03-08T23:23:39.121Z", + "id": "https://tinyland.dev/notes/b2c546a3962f45c6f3c0bffc82c7b87e", + "published": "2025-09-09T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "content": "

-2 lines across 1 commit in linux-xr. rust: kconfig: Don't require RUST_IS_AVAILABLE for rustc-option.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 0, + "linesRemoved": 2, + "commits": 1, + "repository": "linux-xr", + "languages": [] + } } }, { @@ -1330,35 +15332,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/35c760846a909343967770d1f4ad98a5", + "id": "https://tinyland.dev/activities/31dc47c99098ff7f95e7b6e22838ef35", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-07T21:06:58.978Z", + "published": "2025-09-05T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/35c760846a909343967770d1f4ad98a5", - "published": "2026-03-07T21:06:58.978Z", + "id": "https://tinyland.dev/notes/31dc47c99098ff7f95e7b6e22838ef35", + "published": "2025-09-05T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 4 Cedar Waxwings at Range Pond State Park- feeding together in the canopy.

", + "content": "

+13 lines across 1 commit in linux-xr. ceph: fix i_nlink underrun during async unlink.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Cedar Waxwing", - "scientificName": "Bombycilla cedrorum", - "location": { - "type": "Place", - "name": "Range Pond State Park", - "latitude": 44.0667, - "longitude": -70.35 - }, - "count": 4 + "tl:codeActivity": { + "linesAdded": 14, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1370,21 +15366,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/58358cd78551db339950c6605e5fb5f7", + "id": "https://tinyland.dev/activities/032b6981df04b67d7161d35c8fdc58aa", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-06T13:50:22.830Z", + "published": "2025-08-27T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/58358cd78551db339950c6605e5fb5f7", - "published": "2026-03-06T13:50:22.830Z", + "id": "https://tinyland.dev/notes/032b6981df04b67d7161d35c8fdc58aa", + "published": "2025-08-27T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+12 lines across 2 commits in linux-xr. KVM: riscv: selftests: add Zilsd and Zclsd extension to get-reg-list test.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 12, + "linesRemoved": 0, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1395,21 +15400,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/63ada09c8d16f5fcdcd2692223647b71", + "id": "https://tinyland.dev/activities/2f3b46326bb84ad2fc6265e27a2510ad", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-05T13:21:52.204Z", + "published": "2025-08-26T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/63ada09c8d16f5fcdcd2692223647b71", - "published": "2026-03-05T13:21:52.204Z", + "id": "https://tinyland.dev/notes/2f3b46326bb84ad2fc6265e27a2510ad", + "published": "2025-08-26T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+12 lines across 1 commit in linux-xr. kthread: Document kthread_affine_preferred().

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 12, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1420,21 +15434,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/7d70740fa93a950f5b287195de9f0a7e", + "id": "https://tinyland.dev/activities/9bb21bbbaaa690060ef4069c2d825acd", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-04T11:11:51.554Z", + "published": "2025-08-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/7d70740fa93a950f5b287195de9f0a7e", - "published": "2026-03-04T11:11:51.554Z", + "id": "https://tinyland.dev/notes/9bb21bbbaaa690060ef4069c2d825acd", + "published": "2025-08-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "content": "

+7 lines across 1 commit in linux-xr. Input: gpio_keys - fall back to platform_get_irq() for interrupt-only keys.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 12, + "linesRemoved": 5, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1445,30 +15468,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/15fd9367271144503800f07aa40cd524", + "id": "https://tinyland.dev/activities/b5e938305c68444af7164bcd1acba268", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-03T03:58:45.730Z", + "published": "2025-08-03T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/15fd9367271144503800f07aa40cd524", - "published": "2026-03-03T03:58:45.730Z", + "id": "https://tinyland.dev/notes/b5e938305c68444af7164bcd1acba268", + "published": "2025-08-03T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

5.1 mi ride along the Turner Center hill climb. 20 minutes, 659 ft elevation.

", + "content": "

+6 lines across 1 commit in linux-xr. apparmor: guard against free routines being called with a NULL.

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 5.1, - "durationMinutes": 20, - "route": "Turner Center hill climb", - "elevationGainFeet": 659 + "tl:codeActivity": { + "linesAdded": 6, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1480,21 +15502,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/396e4884df1b5e4879cb4a710917bfcd", + "id": "https://tinyland.dev/activities/142a9ee537adb99776b55f2a8dd5483c", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-02T00:51:35.079Z", + "published": "2025-08-01T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/396e4884df1b5e4879cb4a710917bfcd", - "published": "2026-03-02T00:51:35.079Z", + "id": "https://tinyland.dev/notes/142a9ee537adb99776b55f2a8dd5483c", + "published": "2025-08-01T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "content": "

+1 lines across 1 commit in linux-xr. drm/amd/display: Add FR skipping CTS functions.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 1, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1505,21 +15536,28 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/5b4358f60023247c458522bc1ad2db4e", + "id": "https://tinyland.dev/activities/180206d2337d568c9a4ea5979286ec52", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-28T17:55:28.562Z", + "published": "2025-07-28T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/5b4358f60023247c458522bc1ad2db4e", - "published": "2026-02-28T17:55:28.562Z", + "id": "https://tinyland.dev/notes/180206d2337d568c9a4ea5979286ec52", + "published": "2025-07-28T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+2 lines across 1 commit in linux-xr. tools build: Make in-target rule robust against too long argument error.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 4, + "linesRemoved": 2, + "commits": 1, + "repository": "linux-xr", + "languages": [] + } } }, { @@ -1530,35 +15568,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/23bda90c0ec9f761985cb789d83f2e1e", + "id": "https://tinyland.dev/activities/d8f60d54ee25d90ee42e396798d4d61b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-27T12:26:53.071Z", + "published": "2025-07-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/23bda90c0ec9f761985cb789d83f2e1e", - "published": "2026-02-27T12:26:53.071Z", + "id": "https://tinyland.dev/notes/d8f60d54ee25d90ee42e396798d4d61b", + "published": "2025-07-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Hermit Thrushs at Androscoggin Riverlands- feeding together in the canopy.

", + "content": "

+4 lines across 1 commit in linux-xr. sched/arm64: Move fallback task cpumask to HK_TYPE_DOMAIN.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Hermit Thrush", - "scientificName": "Catharus guttatus", - "location": { - "type": "Place", - "name": "Androscoggin Riverlands", - "latitude": 44.0412, - "longitude": -70.1823 - }, - "count": 2 + "tl:codeActivity": { + "linesAdded": 11, + "linesRemoved": 7, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1570,21 +15602,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/09469d509adaada274f313ce7235a796", + "id": "https://tinyland.dev/activities/80fc36f9d45290dc25834cbd022ebd4e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-26T11:18:32.217Z", + "published": "2025-07-23T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/09469d509adaada274f313ce7235a796", - "published": "2026-02-26T11:18:32.217Z", + "id": "https://tinyland.dev/notes/80fc36f9d45290dc25834cbd022ebd4e", + "published": "2025-07-23T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "content": "

+3 lines across 1 commit in linux-xr. drm/amdkfd: add extended capabilities to device snapshot.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 3, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1595,35 +15636,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/d95cd6fc6e01f4a93d3796cd1b255042", + "id": "https://tinyland.dev/activities/4f52c7f301e159b0b93135f2c4c68246", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-25T01:15:59.534Z", + "published": "2025-07-21T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/d95cd6fc6e01f4a93d3796cd1b255042", - "published": "2026-02-25T01:15:59.534Z", + "id": "https://tinyland.dev/notes/4f52c7f301e159b0b93135f2c4c68246", + "published": "2025-07-21T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 3 Barred Owls at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "content": "

+32 lines across 1 commit in linux-xr. apparmor: userns: Add support for execpath in userns.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Thorncrag Bird Sanctuary", - "latitude": 44.1003, - "longitude": -70.2148 - }, - "count": 3 + "tl:codeActivity": { + "linesAdded": 32, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1635,15 +15670,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/6c8e700e47de6ef132a2eaef883f29be", + "id": "https://tinyland.dev/activities/34b3b9c121cd78a1bc57c3ef326c0625", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-24T00:37:51.920Z", + "published": "2025-07-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/6c8e700e47de6ef132a2eaef883f29be", - "published": "2026-02-24T00:37:51.920Z", + "id": "https://tinyland.dev/notes/34b3b9c121cd78a1bc57c3ef326c0625", + "published": "2025-07-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+171/-102 lines across 6 commits in jesssullivan.github.io.

", + "content": "

+112 lines across 1 commit in linux-xr. doc: Add housekeeping documentation.

", "tag": [ { "type": "Hashtag", @@ -1651,14 +15686,11 @@ } ], "tl:codeActivity": { - "linesAdded": 171, - "linesRemoved": 102, - "commits": 6, - "repository": "jesssullivan.github.io", - "languages": [ - "Nix", - "Rust" - ] + "linesAdded": 112, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [] } } }, @@ -1670,15 +15702,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/40962a3677faaee44849f9a14064c3af", + "id": "https://tinyland.dev/activities/2eabd0ca7f8999f80c1e1aef8bd6a573", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-22T20:19:19.574Z", + "published": "2025-07-16T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/40962a3677faaee44849f9a14064c3af", - "published": "2026-02-22T20:19:19.574Z", + "id": "https://tinyland.dev/notes/2eabd0ca7f8999f80c1e1aef8bd6a573", + "published": "2025-07-16T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+7/-1 lines across 2 commits in XoxdWM.

", + "content": "

-11 lines across 1 commit in linux-xr. PCI: Remove superfluous HK_TYPE_WQ check.

", "tag": [ { "type": "Hashtag", @@ -1686,13 +15718,12 @@ } ], "tl:codeActivity": { - "linesAdded": 7, - "linesRemoved": 1, - "commits": 2, - "repository": "XoxdWM", + "linesAdded": 3, + "linesRemoved": 14, + "commits": 1, + "repository": "linux-xr", "languages": [ - "Nix", - "Rust" + "C" ] } } @@ -1705,21 +15736,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/9d4fcf18cb81e58bff9db7b39de2adf8", + "id": "https://tinyland.dev/activities/44b1379249f9962103480d62c691ce19", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-21T13:39:56.769Z", + "published": "2025-07-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/9d4fcf18cb81e58bff9db7b39de2adf8", - "published": "2026-02-21T13:39:56.769Z", + "id": "https://tinyland.dev/notes/44b1379249f9962103480d62c691ce19", + "published": "2025-07-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "content": "

+49 lines across 1 commit in linux-xr. libceph: adapt ceph_x_challenge_blob hashing and msgr1 message signing.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 72, + "linesRemoved": 23, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1730,21 +15770,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/4a2e5fde14eb5128dc46175f685915f7", + "id": "https://tinyland.dev/activities/429a7e19e200c9c911a9fe8b517fa34c", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-20T08:31:23.802Z", + "published": "2025-07-05T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/4a2e5fde14eb5128dc46175f685915f7", - "published": "2026-02-20T08:31:23.802Z", + "id": "https://tinyland.dev/notes/429a7e19e200c9c911a9fe8b517fa34c", + "published": "2025-07-05T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "content": "

+41 lines across 1 commit in linux-xr. libceph: generalize ceph_x_encrypt_offset() and ceph_x_encrypt_buflen().

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 56, + "linesRemoved": 15, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1755,40 +15804,28 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/629ac8cd3a8d5214bfbb44751ebedae5", + "id": "https://tinyland.dev/activities/aff6cde3d180319dffc6ab5682274145", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-19T04:28:57.458Z", + "published": "2025-07-04T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/629ac8cd3a8d5214bfbb44751ebedae5", - "published": "2026-02-19T04:28:57.458Z", + "id": "https://tinyland.dev/notes/aff6cde3d180319dffc6ab5682274145", + "published": "2025-07-04T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Office: 19.2C, 30% humidity, CO2 463ppm.

", + "content": "

+2 lines across 1 commit in linux-xr. libceph: define and enforce CEPH_MAX_KEY_LEN.

", "tag": [ { "type": "Hashtag", - "name": "#sensors" + "name": "#code" } ], - "tl:sensorReading": { - "sensorId": "office-env-01", - "sensorType": "environmental", - "measurements": [ - { - "name": "Temperature", - "value": 19.2, - "unit": "C" - }, - { - "name": "Humidity", - "value": 30, - "unit": "%" - }, - { - "name": "CO2", - "value": 463, - "unit": "ppm" - } + "tl:codeActivity": { + "linesAdded": 7, + "linesRemoved": 5, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" ] } } @@ -1801,35 +15838,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/49e6b025cd5031fc0fb3c85210ccfb18", + "id": "https://tinyland.dev/activities/4e6e1b86e68e5d3962a5f2132776e3ba", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-18T00:38:08.598Z", + "published": "2025-06-18T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/49e6b025cd5031fc0fb3c85210ccfb18", - "published": "2026-02-18T00:38:08.598Z", - "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 4 Barred Owls at Sabattus Pond- feeding together in the canopy.

", - "tag": [ - { - "type": "Hashtag", - "name": "#birding" - }, + "id": "https://tinyland.dev/notes/4e6e1b86e68e5d3962a5f2132776e3ba", + "published": "2025-06-18T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4 lines across 1 commit in linux-xr. kthread: Comment on the purpose and placement of kthread_affine_node() call.

", + "tag": [ { "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Sabattus Pond", - "latitude": 44.1209, - "longitude": -70.0874 - }, - "count": 4 + "tl:codeActivity": { + "linesAdded": 4, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -1841,21 +15872,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/09ef926d9821dd072a0b61953f7c6c0b", + "id": "https://tinyland.dev/activities/2bd63020a02a875439e6ccb31b112952", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-16T15:36:20.564Z", + "published": "2025-06-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/09ef926d9821dd072a0b61953f7c6c0b", - "published": "2026-02-16T15:36:20.564Z", + "id": "https://tinyland.dev/notes/2bd63020a02a875439e6ccb31b112952", + "published": "2025-06-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+9 lines across 1 commit in linux-xr. sched/isolation: Flush vmstat workqueues on cpuset isolated partition change.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 9, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1866,15 +15906,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/e1e91535cb3c58a1f392b533c9ec9401", + "id": "https://tinyland.dev/activities/29e93c3dadecf16ba8116d5575103729", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-15T12:21:51.544Z", + "published": "2025-06-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/e1e91535cb3c58a1f392b533c9ec9401", - "published": "2026-02-15T12:21:51.544Z", + "id": "https://tinyland.dev/notes/29e93c3dadecf16ba8116d5575103729", + "published": "2025-06-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+158/-22 lines across 3 commits in scheduling-kit.

", + "content": "

+17 lines across 1 commit in linux-xr. sched/isolation: Flush memcg workqueues on cpuset isolated partition change.

", "tag": [ { "type": "Hashtag", @@ -1882,13 +15922,12 @@ } ], "tl:codeActivity": { - "linesAdded": 158, - "linesRemoved": 22, - "commits": 3, - "repository": "scheduling-kit", + "linesAdded": 18, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", "languages": [ - "Chapel", - "Nix" + "C" ] } } @@ -1901,21 +15940,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/82ca38bf01aa1160a27d882bfee72751", + "id": "https://tinyland.dev/activities/72e163ecc26a2aa89eadba11d165399a", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-14T09:32:23.112Z", + "published": "2025-06-04T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/82ca38bf01aa1160a27d882bfee72751", - "published": "2026-02-14T09:32:23.112Z", + "id": "https://tinyland.dev/notes/72e163ecc26a2aa89eadba11d165399a", + "published": "2025-06-04T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "content": "

+24 lines across 1 commit in linux-xr. kthread: Honour kthreads preferred affinity after cpuset changes.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 37, + "linesRemoved": 13, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1926,21 +15974,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/0d802d944fd7563893673fd0ca52612e", + "id": "https://tinyland.dev/activities/da7c3cbb5746fd9d173c3779d5105c48", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-12T23:34:42.523Z", + "published": "2025-06-03T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/0d802d944fd7563893673fd0ca52612e", - "published": "2026-02-12T23:34:42.523Z", + "id": "https://tinyland.dev/notes/da7c3cbb5746fd9d173c3779d5105c48", + "published": "2025-06-03T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+13 lines across 3 commits in linux-xr. sched: Switch the fallback task allowed cpumask to HK_TYPE_DOMAIN.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 43, + "linesRemoved": 30, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -1951,15 +16008,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/b6b88cc1982ff25ecfc0a5b5f82f050c", + "id": "https://tinyland.dev/activities/6d70280fe439bc63e00ae8e52a429411", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-12T01:22:37.107Z", + "published": "2025-06-02T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/b6b88cc1982ff25ecfc0a5b5f82f050c", - "published": "2026-02-12T01:22:37.107Z", + "id": "https://tinyland.dev/notes/6d70280fe439bc63e00ae8e52a429411", + "published": "2025-06-02T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+9/-5 lines across 5 commits in acuity-middleware.

", + "content": "

+2 lines across 3 commits in linux-xr. perf/core: Fix invalid wait context in ctx_sched_in().

", "tag": [ { "type": "Hashtag", @@ -1967,13 +16024,12 @@ } ], "tl:codeActivity": { - "linesAdded": 9, - "linesRemoved": 5, - "commits": 5, - "repository": "acuity-middleware", + "linesAdded": 8, + "linesRemoved": 6, + "commits": 3, + "repository": "linux-xr", "languages": [ - "Python", - "Chapel" + "C" ] } } @@ -1986,15 +16042,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/2194d64f3c07b7b52bd96af2ea49d983", + "id": "https://tinyland.dev/activities/f19804c2c36eeebf714f65c49d9ef783", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-10T17:51:58.955Z", + "published": "2025-05-28T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/2194d64f3c07b7b52bd96af2ea49d983", - "published": "2026-02-10T17:51:58.955Z", + "id": "https://tinyland.dev/notes/f19804c2c36eeebf714f65c49d9ef783", + "published": "2025-05-28T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+155/-1 lines across 6 commits in jesssullivan.github.io.

", + "content": "

+48 lines across 4 commits in linux-xr. cpuset: Remove cpuset_cpu_is_isolated().

", "tag": [ { "type": "Hashtag", @@ -2002,13 +16058,12 @@ } ], "tl:codeActivity": { - "linesAdded": 155, - "linesRemoved": 1, - "commits": 6, - "repository": "jesssullivan.github.io", + "linesAdded": 104, + "linesRemoved": 56, + "commits": 4, + "repository": "linux-xr", "languages": [ - "Svelte", - "CSS" + "C" ] } } @@ -2021,21 +16076,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/909c5ae402cf42d38ee0c113f829a1f3", + "id": "https://tinyland.dev/activities/cd05e9084e5218741fc3db95707f1af3", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-09T10:38:22.200Z", + "published": "2025-05-27T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/909c5ae402cf42d38ee0c113f829a1f3", - "published": "2026-02-09T10:38:22.200Z", + "id": "https://tinyland.dev/notes/cd05e9084e5218741fc3db95707f1af3", + "published": "2025-05-27T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "content": "

+31 lines across 3 commits in linux-xr. sched/isolation: Convert housekeeping cpumasks to rcu pointers.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 54, + "linesRemoved": 23, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -2046,15 +16110,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/286d32eb3623c658e9438650c0e754b8", + "id": "https://tinyland.dev/activities/648b1814481236b9021533ce4a3324e5", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-08T05:38:05.142Z", + "published": "2025-05-26T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/286d32eb3623c658e9438650c0e754b8", - "published": "2026-02-08T05:38:05.142Z", + "id": "https://tinyland.dev/notes/648b1814481236b9021533ce4a3324e5", + "published": "2025-05-26T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+114/-42 lines across 7 commits in scheduling-kit.

", + "content": "

+5 lines across 1 commit in linux-xr. sched/isolation: Save boot defined domain flags.

", "tag": [ { "type": "Hashtag", @@ -2062,13 +16126,12 @@ } ], "tl:codeActivity": { - "linesAdded": 114, - "linesRemoved": 42, - "commits": 7, - "repository": "scheduling-kit", + "linesAdded": 7, + "linesRemoved": 2, + "commits": 1, + "repository": "linux-xr", "languages": [ - "Rust", - "Python" + "C" ] } } @@ -2081,21 +16144,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/54ddbfd0256d796d45fd6650163cca19", + "id": "https://tinyland.dev/activities/58a78bd4d8e9aeff575fb0013f37bfc5", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-07T03:28:07.634Z", + "published": "2025-05-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/54ddbfd0256d796d45fd6650163cca19", - "published": "2026-02-07T03:28:07.634Z", + "id": "https://tinyland.dev/notes/58a78bd4d8e9aeff575fb0013f37bfc5", + "published": "2025-05-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "content": "

+19 lines across 4 commits in linux-xr. block: Protect against concurrent isolated cpuset change.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 29, + "linesRemoved": 10, + "commits": 4, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -2106,21 +16178,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/79c37666ab615886cb85257a12ac5920", + "id": "https://tinyland.dev/activities/1c36370c6bdb637a59fc8c3ce6a81035", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-05T18:45:00.405Z", + "published": "2025-05-14T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/79c37666ab615886cb85257a12ac5920", - "published": "2026-02-05T18:45:00.405Z", + "id": "https://tinyland.dev/notes/1c36370c6bdb637a59fc8c3ce6a81035", + "published": "2025-05-14T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+0 lines across 1 commit in linux-xr. driver core: cpu: Convert /sys/devices/system/cpu/isolated to use HK_TYPE_DOMAIN_BOOT.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 1, + "linesRemoved": 1, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -2131,35 +16212,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/0701a9911329b65d867d3dd544e1383a", + "id": "https://tinyland.dev/activities/3e606f767a98a5a46cdc14a8b704605e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-04T20:57:56.174Z", + "published": "2025-05-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/0701a9911329b65d867d3dd544e1383a", - "published": "2026-02-04T20:57:56.174Z", + "id": "https://tinyland.dev/notes/3e606f767a98a5a46cdc14a8b704605e", + "published": "2025-05-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Barred Owl at Lost Valley trails.

", + "content": "

+0 lines across 1 commit in linux-xr. kthread: Refine naming of affinity related fields.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Lost Valley trails", - "latitude": 44.0889, - "longitude": -70.2456 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 19, + "linesRemoved": 19, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -2171,21 +16246,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/f51ae3f23de813eb98b98f99a7ea3f0b", + "id": "https://tinyland.dev/activities/1df2280fa9b6e0507a9654c45ef6c957", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-03T09:20:28.035Z", + "published": "2025-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/f51ae3f23de813eb98b98f99a7ea3f0b", - "published": "2026-02-03T09:20:28.035Z", + "id": "https://tinyland.dev/notes/1df2280fa9b6e0507a9654c45ef6c957", + "published": "2025-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+0 lines across 2 commits in linux-xr. dm: dm-zoned: Adjust dmz_load_mapping() allocation type.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 2, + "linesRemoved": 2, + "commits": 2, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -2196,21 +16280,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/563c23dcc5c294aceb11de7456cdca25", + "id": "https://tinyland.dev/activities/bbeddd564d2d9cfbb0d6812bddd7c89e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-02T04:47:11.026Z", + "published": "2025-04-22T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/563c23dcc5c294aceb11de7456cdca25", - "published": "2026-02-02T04:47:11.026Z", + "id": "https://tinyland.dev/notes/bbeddd564d2d9cfbb0d6812bddd7c89e", + "published": "2025-04-22T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "content": "

+32 lines across 1 commit in linux-xr. sched/fair: Fix lag clamp.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 36, + "linesRemoved": 4, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -2221,21 +16314,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/36ad79113eaf0b376f88e8073d5b92c4", + "id": "https://tinyland.dev/activities/9888cb51fe92632c4a27b2900219e645", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-01T01:43:59.899Z", + "published": "2025-04-01T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/36ad79113eaf0b376f88e8073d5b92c4", - "published": "2026-02-01T01:43:59.899Z", + "id": "https://tinyland.dev/notes/9888cb51fe92632c4a27b2900219e645", + "published": "2025-04-01T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "content": "

+251 lines across 1 commit in linux-xr. apparmor: add support loading per permission tagging.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 269, + "linesRemoved": 18, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -2246,15 +16348,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ed951163e16f73b496b764b5ea5c5375", + "id": "https://tinyland.dev/activities/421dc84bd5837debaaaf6bfaa9c77823", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-31T00:17:20.456Z", + "published": "2025-02-20T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ed951163e16f73b496b764b5ea5c5375", - "published": "2026-01-31T00:17:20.456Z", + "id": "https://tinyland.dev/notes/421dc84bd5837debaaaf6bfaa9c77823", + "published": "2025-02-20T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+114/-29 lines across 6 commits in scheduling-kit.

", + "content": "

-78 lines across 1 commit in linux-xr. NTB/msi: Remove unused functions.

", "tag": [ { "type": "Hashtag", @@ -2262,13 +16364,12 @@ } ], "tl:codeActivity": { - "linesAdded": 114, - "linesRemoved": 29, - "commits": 6, - "repository": "scheduling-kit", + "linesAdded": 0, + "linesRemoved": 78, + "commits": 1, + "repository": "linux-xr", "languages": [ - "Svelte", - "Chapel" + "C" ] } } @@ -2281,21 +16382,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/60caf2a69c651c2320366d598767c00b", + "id": "https://tinyland.dev/activities/6c8e3667682f5421505099b20c93052f", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-29T16:36:32.975Z", + "published": "2025-02-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/60caf2a69c651c2320366d598767c00b", - "published": "2026-01-29T16:36:32.975Z", + "id": "https://tinyland.dev/notes/6c8e3667682f5421505099b20c93052f", + "published": "2025-02-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "content": "

+8 lines across 3 commits in linux-xr. ntb: ntb_hw_switchtec: Increase MAX_MWS limit to 256.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 11, + "linesRemoved": 3, + "commits": 3, + "repository": "linux-xr", + "languages": [ + "C" + ] + } } }, { @@ -2306,35 +16416,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/cbe14caa0a0928be9b5554eb363d4cd2", + "id": "https://tinyland.dev/activities/b8ffc067ebd9819cac06efa3db98f3ba", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-28T10:36:30.503Z", + "published": "2024-11-21T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/cbe14caa0a0928be9b5554eb363d4cd2", - "published": "2026-01-28T10:36:30.503Z", + "id": "https://tinyland.dev/notes/b8ffc067ebd9819cac06efa3db98f3ba", + "published": "2024-11-21T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 3 Eastern Bluebirds at Bradbury Mountain- feeding together in the canopy.

", + "content": "

+0 lines across 1 commit in linux-xr. nouveau/gsp: drop WARN_ON in ACPI probes.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Eastern Bluebird", - "scientificName": "Sialia sialis", - "location": { - "type": "Place", - "name": "Bradbury Mountain", - "latitude": 43.9017, - "longitude": -70.1678 - }, - "count": 3 + "tl:codeActivity": { + "linesAdded": 6, + "linesRemoved": 6, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "C" + ] } } }, @@ -2346,35 +16450,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/dfc22700861a5a4cdc0f66d34da859a8", + "id": "https://tinyland.dev/activities/f7c2d88d076b77b592183720ae705ad9", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-27T04:52:51.732Z", + "published": "2021-08-24T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/dfc22700861a5a4cdc0f66d34da859a8", - "published": "2026-01-27T04:52:51.732Z", + "id": "https://tinyland.dev/notes/f7c2d88d076b77b592183720ae705ad9", + "published": "2021-08-24T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 3 White-breasted Nuthatchs at Range Pond State Park- feeding together in the canopy.

", + "content": "

+180 lines across 1 commit in linux-xr. dt-bindings: Add IEI vendor prefix and IEI WT61P803 PUZZLE driver bindings.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "White-breasted Nuthatch", - "scientificName": "Sitta carolinensis", - "location": { - "type": "Place", - "name": "Range Pond State Park", - "latitude": 44.0667, - "longitude": -70.35 - }, - "count": 3 + "tl:codeActivity": { + "linesAdded": 180, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "YAML" + ] } } } diff --git a/scripts/generate-git-pulse.mts b/scripts/generate-git-pulse.mts new file mode 100644 index 0000000..bbc53c0 --- /dev/null +++ b/scripts/generate-git-pulse.mts @@ -0,0 +1,207 @@ +#!/usr/bin/env node +/** + * Generate real code activity data from git history. + * Aggregates commits by day per repo, outputs AS2-compatible activities. + * Merges into mock outbox replacing synthetic code entries. + * + * Usage: tsx scripts/generate-git-pulse.mts + * Output: updates scripts/data/mock-outbox.json with real code activities + */ +import { readFile, writeFile } from 'node:fs/promises'; +import { execSync } from 'node:child_process'; +import { createHash } from 'node:crypto'; +import { existsSync } from 'node:fs'; +import { basename, resolve } from 'node:path'; + +const MOCK_OUTBOX = 'scripts/data/mock-outbox.json'; +const ACTOR = 'https://tinyland.dev/@jesssullivan'; +const BASE = 'https://tinyland.dev'; +const DAYS_BACK = 90; + +interface DaySummary { + date: string; + repo: string; + added: number; + removed: number; + commits: number; + languages: Set; + messages: string[]; +} + +const EXT_TO_LANG: Record = { + '.ts': 'TypeScript', '.mts': 'TypeScript', '.tsx': 'TypeScript', + '.js': 'JavaScript', '.mjs': 'JavaScript', '.jsx': 'JavaScript', + '.svelte': 'Svelte', '.css': 'CSS', '.html': 'HTML', + '.py': 'Python', '.rs': 'Rust', '.go': 'Go', '.zig': 'Zig', + '.nix': 'Nix', '.chpl': 'Chapel', '.dhall': 'Dhall', + '.sh': 'Shell', '.bash': 'Shell', '.fish': 'Shell', + '.json': 'JSON', '.yaml': 'YAML', '.yml': 'YAML', '.toml': 'TOML', + '.md': 'Markdown', '.mdx': 'Markdown', '.svx': 'Markdown', + '.c': 'C', '.h': 'C', '.cpp': 'C++', '.el': 'Emacs Lisp', +}; + +function detectLanguages(diffStat: string): string[] { + const langs = new Set(); + for (const line of diffStat.split('\n')) { + const match = line.match(/(\.[a-zA-Z0-9]+)\s*\|/); + if (match) { + const lang = EXT_TO_LANG[match[1]]; + if (lang) langs.add(lang); + } + } + return [...langs].sort(); +} + +function gitLog(repoPath: string): DaySummary[] { + const since = `${DAYS_BACK} days ago`; + let logOutput: string; + try { + logOutput = execSync( + `git log --all --no-merges --since="${since}" --format="COMMIT|%H|%ai|%s" --numstat`, + { cwd: repoPath, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }, + ); + } catch { + return []; + } + + const days = new Map(); + const repo = basename(repoPath); + let currentDate = ''; + let currentMessage = ''; + + for (const line of logOutput.split('\n')) { + if (line.startsWith('COMMIT|')) { + const parts = line.split('|'); + currentDate = parts[2].slice(0, 10); + currentMessage = parts[3]; + if (!days.has(currentDate)) { + days.set(currentDate, { + date: currentDate, + repo, + added: 0, + removed: 0, + commits: 0, + languages: new Set(), + messages: [], + }); + } + const day = days.get(currentDate)!; + day.commits++; + day.messages.push(currentMessage); + continue; + } + + const numMatch = line.match(/^(\d+)\t(\d+)\t(.+)$/); + if (numMatch && currentDate) { + const day = days.get(currentDate)!; + day.added += parseInt(numMatch[1], 10); + day.removed += parseInt(numMatch[2], 10); + const ext = numMatch[3].match(/(\.[a-zA-Z0-9]+)$/); + if (ext && EXT_TO_LANG[ext[1]]) { + day.languages.add(EXT_TO_LANG[ext[1]]); + } + } + } + + return [...days.values()]; +} + +function summaryToActivity(summary: DaySummary) { + const id = createHash('sha256') + .update(`${summary.date}-${summary.repo}-code`) + .digest('hex') + .slice(0, 32); + + const published = new Date(`${summary.date}T18:00:00-04:00`).toISOString(); + const langs = [...summary.languages].slice(0, 4); + const topMessage = summary.messages[0] || 'code changes'; + const net = summary.added - summary.removed; + const sign = net >= 0 ? '+' : ''; + + return { + '@context': [ + 'https://www.w3.org/ns/activitystreams', + { tl: 'https://tinyland.dev/ns/v1#' }, + ], + type: 'Create', + id: `${BASE}/activities/${id}`, + actor: ACTOR, + published, + object: { + type: 'Note', + id: `${BASE}/notes/${id}`, + published, + attributedTo: ACTOR, + content: `

${sign}${net} lines across ${summary.commits} commit${summary.commits === 1 ? '' : 's'} in ${summary.repo}. ${topMessage}.

`, + tag: [{ type: 'Hashtag', name: '#code' }], + 'tl:codeActivity': { + linesAdded: summary.added, + linesRemoved: summary.removed, + commits: summary.commits, + repository: summary.repo, + languages: langs, + }, + }, + }; +} + +async function main(): Promise { + const gitDir = resolve(process.env.HOME || '~', 'git'); + const thisRepo = resolve(process.cwd()); + + // Scan repos under ~/git/ that have recent activity + const repos = [thisRepo]; + const siblingCandidates = [ + 'XoxdWM', 'cmux', 'aperture-bootstrap', + 'scheduling-kit', 'acuity-middleware', 'eGreg', + 'GloriousFlywheel', 'rockies', 'linux-xr', + ]; + + for (const name of siblingCandidates) { + const path = resolve(gitDir, name); + if (existsSync(resolve(path, '.git'))) { + repos.push(path); + } + } + + console.log(`Scanning ${repos.length} repos for git activity...`); + + const allSummaries: DaySummary[] = []; + for (const repo of repos) { + const summaries = gitLog(repo); + allSummaries.push(...summaries); + if (summaries.length > 0) { + const totalCommits = summaries.reduce((s, d) => s + d.commits, 0); + console.log(` ${basename(repo)}: ${summaries.length} active days, ${totalCommits} commits`); + } + } + + const codeActivities = allSummaries.map(summaryToActivity); + + // Read existing mock outbox, strip synthetic code activities, merge real ones + const outbox = JSON.parse(await readFile(MOCK_OUTBOX, 'utf-8')); + const nonCodeItems = outbox.orderedItems.filter( + (a: Record) => { + const obj = a.object as Record | undefined; + return !obj?.['tl:codeActivity']; + }, + ); + + const merged = [...nonCodeItems, ...codeActivities].sort( + (a: { published: string }, b: { published: string }) => + new Date(b.published).getTime() - new Date(a.published).getTime(), + ); + + outbox.orderedItems = merged; + outbox.totalItems = merged.length; + + await writeFile(MOCK_OUTBOX, JSON.stringify(outbox, null, 2)); + console.log( + `\nGit pulse: ${codeActivities.length} code activities merged into mock outbox (${merged.length} total)`, + ); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/static/data/activity-outbox.json b/static/data/activity-outbox.json index 355f8b3..dc5317c 100644 --- a/static/data/activity-outbox.json +++ b/static/data/activity-outbox.json @@ -2,7 +2,7 @@ "@context": "https://www.w3.org/ns/activitystreams", "id": "https://tinyland.dev/@jesssullivan/outbox", "type": "OrderedCollection", - "totalItems": 75, + "totalItems": 100, "orderedItems": [ { "@context": [ @@ -37,15 +37,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/171c83ff7da77e555ba84723b44f6e4d", + "id": "https://tinyland.dev/activities/2872a7b0ff0ae434432b44ae4e309096", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-24T18:54:45.491Z", + "published": "2026-04-25T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/171c83ff7da77e555ba84723b44f6e4d", - "published": "2026-04-24T18:54:45.491Z", + "id": "https://tinyland.dev/notes/2872a7b0ff0ae434432b44ae4e309096", + "published": "2026-04-25T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+38/-18 lines across 4 commits in jesssullivan.github.io.

", + "content": "

+7164 lines across 10 commits in jesssullivan.github.io. feat: add ActivityPub pulse pipeline with mock outbox and /pulse route.

", "tag": [ { "type": "Hashtag", @@ -53,13 +53,813 @@ } ], "tl:codeActivity": { - "linesAdded": 38, - "linesRemoved": 18, + "linesAdded": 7366, + "linesRemoved": 202, + "commits": 10, + "repository": "jesssullivan.github.io", + "languages": [ + "JSON", + "TypeScript", + "Svelte", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/1c79a0a93319351d1bd3f9c521fa7ab2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/1c79a0a93319351d1bd3f9c521fa7ab2", + "published": "2026-04-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1456 lines across 27 commits in XoxdWM. docs: add honey fresh boot check lane.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1919, + "linesRemoved": 463, + "commits": 27, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "YAML", + "Emacs Lisp", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/cb2d93b3b106b103694151f766bc0dfa", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/cb2d93b3b106b103694151f766bc0dfa", + "published": "2026-04-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

-7278 lines across 77 commits in cmux. Skip Rocky RPM clean in short-circuit builds.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 16664, + "linesRemoved": 23942, + "commits": 77, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "Shell", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/9aaa55ae3a8ab5eb14b091ed2dea4709", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/9aaa55ae3a8ab5eb14b091ed2dea4709", + "published": "2026-04-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+813 lines across 10 commits in scheduling-kit. ci: inherit Bazel fetch retry template (#80).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 928, + "linesRemoved": 115, + "commits": 10, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "Nix", + "JavaScript", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/0ae5597821749b0bd44cdc0792f21fac", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/0ae5597821749b0bd44cdc0792f21fac", + "published": "2026-04-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1345 lines across 16 commits in acuity-middleware. ci: inherit Bazel fetch retry template (#83).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1604, + "linesRemoved": 259, + "commits": 16, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "JavaScript", + "Markdown", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/4d34868aaa38e88c3929b4e71b6ccf20", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/4d34868aaa38e88c3929b4e71b6ccf20", + "published": "2026-04-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+160 lines across 2 commits in eGreg. test: add language mode and package availability ERT tests.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 219, + "linesRemoved": 59, + "commits": 2, + "repository": "eGreg", + "languages": [ + "Emacs Lisp", + "YAML", + "Markdown", + "Nix" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/738e49aad46bdf6e1f1ae71cf17e6014", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/738e49aad46bdf6e1f1ae71cf17e6014", + "published": "2026-04-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+10326 lines across 71 commits in GloriousFlywheel. fix(actions): use netrc for attic reads.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 13937, + "linesRemoved": 3611, + "commits": 71, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown", + "Shell", + "TypeScript" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/497ef36ccb14112b901f17c232d31e57", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-25T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/497ef36ccb14112b901f17c232d31e57", + "published": "2026-04-25T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+293 lines across 3 commits in rockies. docs: record Bigscreen DisplayID parser proof route.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 313, + "linesRemoved": 20, + "commits": 3, + "repository": "rockies", + "languages": [ + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ed2853afa94521abd88cf15b6bf8a228", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ed2853afa94521abd88cf15b6bf8a228", + "published": "2026-04-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+21269 lines across 51 commits in cmux. Add minimal mode regression coverage.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 28846, + "linesRemoved": 7577, + "commits": 51, + "repository": "cmux", + "languages": [ + "Python", + "YAML", + "Markdown", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/a554946051c80977fe1756d98d6b22d4", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/a554946051c80977fe1756d98d6b22d4", + "published": "2026-04-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+4 lines across 2 commits in scheduling-kit. ci: adopt shared tinyland-nix runner contract.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 10, + "linesRemoved": 6, + "commits": 2, + "repository": "scheduling-kit", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e8904999d681f5ffb074045b16901442", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e8904999d681f5ffb074045b16901442", + "published": "2026-04-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+68 lines across 2 commits in acuity-middleware. fix(adapter): normalize custom header collisions.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 108, + "linesRemoved": 40, + "commits": 2, + "repository": "acuity-middleware", + "languages": [ + "TypeScript", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/46e8737ec929389907edd4c30419955c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/46e8737ec929389907edd4c30419955c", + "published": "2026-04-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1472 lines across 6 commits in eGreg. test: add ERT tests for feature flags and new module inventory.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 1516, + "linesRemoved": 44, + "commits": 6, + "repository": "eGreg", + "languages": [ + "Emacs Lisp", + "Nix", + "Markdown", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/846353906d71819d918c092848ad344e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/846353906d71819d918c092848ad344e", + "published": "2026-04-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+1043 lines across 46 commits in GloriousFlywheel. Retry transient heavy Nix proof signal-9 failures.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 5514, + "linesRemoved": 4471, + "commits": 46, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown", + "JavaScript", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ba64db600c09e950da33608b60faceac", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-24T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ba64db600c09e950da33608b60faceac", + "published": "2026-04-24T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+62 lines across 1 commit in rockies. docs: add 2026-04-23 program state check-in.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 68, + "linesRemoved": 6, + "commits": 1, + "repository": "rockies", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3d60931e6e83585da9d9159ac09d8c6a", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3d60931e6e83585da9d9159ac09d8c6a", + "published": "2026-04-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+18 lines across 4 commits in XoxdWM. docs: narrow honey RT support claims.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 23, + "linesRemoved": 5, "commits": 4, - "repository": "jesssullivan.github.io", + "repository": "XoxdWM", + "languages": [ + "Markdown", + "Emacs Lisp" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/e841fdc68f3e1621074c9b89be87879c", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/e841fdc68f3e1621074c9b89be87879c", + "published": "2026-04-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+9738 lines across 20 commits in cmux. Fix cloud VM websocket attach compatibility.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 11918, + "linesRemoved": 2180, + "commits": 20, + "repository": "cmux", + "languages": [ + "TypeScript", + "Markdown", + "Go", + "JSON" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/64beb327928c6884487f9989f6290c4f", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/64beb327928c6884487f9989f6290c4f", + "published": "2026-04-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+44 lines across 1 commit in scheduling-kit. Document runner authority truth (#71).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 66, + "linesRemoved": 22, + "commits": 1, + "repository": "scheduling-kit", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/89876a94420b3adfa04aae95fc3fd1fd", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/89876a94420b3adfa04aae95fc3fd1fd", + "published": "2026-04-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+27 lines across 1 commit in acuity-middleware. Document runner authority truth (#72).

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 28, + "linesRemoved": 1, + "commits": 1, + "repository": "acuity-middleware", + "languages": [ + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/30c1b5471f443dce3e7cc26a68388d97", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/30c1b5471f443dce3e7cc26a68388d97", + "published": "2026-04-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+6287 lines across 23 commits in GloriousFlywheel. docs: reset pooled substrate dogfood contract.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 7755, + "linesRemoved": 1468, + "commits": 23, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "JSON", + "YAML", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/ea874963bd012915cd1425d396e2c450", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/ea874963bd012915cd1425d396e2c450", + "published": "2026-04-23T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+59 lines across 2 commits in rockies. Refresh graphical gate and wlroots proof contracts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 175, + "linesRemoved": 116, + "commits": 2, + "repository": "rockies", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/844b19e6c404a031e441d959af729444", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-23T20:27:07.482Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/844b19e6c404a031e441d959af729444", + "published": "2026-04-23T20:27:07.482Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Spotted 1 White-breasted Nuthatch at Range Pond State Park.

", + "tag": [ + { + "type": "Hashtag", + "name": "#birding" + }, + { + "type": "Hashtag", + "name": "#maine" + } + ], + "tl:birdSighting": { + "species": "White-breasted Nuthatch", + "scientificName": "Sitta carolinensis", + "location": { + "type": "Place", + "name": "Range Pond State Park", + "latitude": 44.0667, + "longitude": -70.35 + }, + "count": 1 + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/5ecc79c107d945628e55aa9637ab071e", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/5ecc79c107d945628e55aa9637ab071e", + "published": "2026-04-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3477 lines across 43 commits in XoxdWM. packaging: fix wlroots rpm payload manifest.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4437, + "linesRemoved": 960, + "commits": 43, + "repository": "XoxdWM", + "languages": [ + "Emacs Lisp", + "YAML", + "Markdown", + "Dhall" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/921c94e42873f2f66b34256a6a964bf9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/921c94e42873f2f66b34256a6a964bf9", + "published": "2026-04-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+28254 lines across 169 commits in cmux. fix: ignore empty React Grab links.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 43017, + "linesRemoved": 14763, + "commits": 169, + "repository": "cmux", "languages": [ - "Rust", - "Nix" + "TypeScript", + "Go", + "Markdown", + "Python" ] } } @@ -72,35 +872,102 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/844b19e6c404a031e441d959af729444", + "id": "https://tinyland.dev/activities/e41cacaa6227a599e6fd0e9ba7befc8e", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-23T20:27:07.482Z", + "published": "2026-04-22T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/844b19e6c404a031e441d959af729444", - "published": "2026-04-23T20:27:07.482Z", + "id": "https://tinyland.dev/notes/e41cacaa6227a599e6fd0e9ba7befc8e", + "published": "2026-04-22T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 White-breasted Nuthatch at Range Pond State Park.

", + "content": "

+0 lines across 2 commits in scheduling-kit. align mirror package validation.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 4, + "linesRemoved": 4, + "commits": 2, + "repository": "scheduling-kit", + "languages": [ + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/3a824d16bdaee3c03d1d1c78d77afa0d", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/3a824d16bdaee3c03d1d1c78d77afa0d", + "published": "2026-04-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+3544 lines across 44 commits in GloriousFlywheel. docs: reconcile current state and roadmap.

", + "tag": [ { "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "White-breasted Nuthatch", - "scientificName": "Sitta carolinensis", - "location": { - "type": "Place", - "name": "Range Pond State Park", - "latitude": 44.0667, - "longitude": -70.35 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 4470, + "linesRemoved": 926, + "commits": 44, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "Python", + "JSON", + "YAML" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" + } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/96523c2834d4abce9d65527a53bc3f97", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-22T22:00:00.000Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/96523c2834d4abce9d65527a53bc3f97", + "published": "2026-04-22T22:00:00.000Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

+7801 lines across 27 commits in rockies. Prepare Budgie downstream reboot-persistence consumer lane.

", + "tag": [ + { + "type": "Hashtag", + "name": "#code" + } + ], + "tl:codeActivity": { + "linesAdded": 8699, + "linesRemoved": 898, + "commits": 27, + "repository": "rockies", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] } } }, @@ -158,21 +1025,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/8baad0ce2f103e6155cfe753f1e713b2", + "id": "https://tinyland.dev/activities/28f759bf46ae21f7d11b1a13fc1460c3", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-21T10:58:38.890Z", + "published": "2026-04-21T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/8baad0ce2f103e6155cfe753f1e713b2", - "published": "2026-04-21T10:58:38.890Z", + "id": "https://tinyland.dev/notes/28f759bf46ae21f7d11b1a13fc1460c3", + "published": "2026-04-21T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "content": "

+131 lines across 5 commits in XoxdWM. Use shared Nix bootstrap in self-hosted fast CI.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 167, + "linesRemoved": 36, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } } }, { @@ -183,21 +1059,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/76663f8cd2b0c17410f6f7a488411ab9", + "id": "https://tinyland.dev/activities/35bc34de1a2bc0c9d31adbd2fa83748d", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-20T05:15:14.737Z", + "published": "2026-04-21T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/76663f8cd2b0c17410f6f7a488411ab9", - "published": "2026-04-20T05:15:14.737Z", + "id": "https://tinyland.dev/notes/35bc34de1a2bc0c9d31adbd2fa83748d", + "published": "2026-04-21T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+15935 lines across 128 commits in cmux. Fix CLI SIGPIPE child inheritance and pipe writes.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 19722, + "linesRemoved": 3787, + "commits": 128, + "repository": "cmux", + "languages": [ + "Shell", + "JSON", + "Python", + "TypeScript" + ] + } } }, { @@ -208,15 +1096,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/a3aa502a82274eff9a9f2b778c5d89f5", + "id": "https://tinyland.dev/activities/f89f09e1e7c2d7dd8e9e97319ae7d1b7", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-18T19:33:51.722Z", + "published": "2026-04-21T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/a3aa502a82274eff9a9f2b778c5d89f5", - "published": "2026-04-18T19:33:51.722Z", + "id": "https://tinyland.dev/notes/f89f09e1e7c2d7dd8e9e97319ae7d1b7", + "published": "2026-04-21T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+249/-116 lines across 6 commits in XoxdWM.

", + "content": "

+1479 lines across 25 commits in GloriousFlywheel. arc-runners: move shared tinyland-nix off honey (#316).

", "tag": [ { "type": "Hashtag", @@ -224,13 +1112,15 @@ } ], "tl:codeActivity": { - "linesAdded": 249, - "linesRemoved": 116, - "commits": 6, - "repository": "XoxdWM", + "linesAdded": 1963, + "linesRemoved": 484, + "commits": 25, + "repository": "GloriousFlywheel", "languages": [ - "Rust", - "Python" + "Markdown", + "YAML", + "Shell", + "JSON" ] } } @@ -243,31 +1133,57 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/f168aced1900ff654ffbb047b0216012", + "id": "https://tinyland.dev/activities/abed96ec5418efa41c4041e2f705996f", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-17T17:15:09.917Z", + "published": "2026-04-21T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/f168aced1900ff654ffbb047b0216012", - "published": "2026-04-17T17:15:09.917Z", + "id": "https://tinyland.dev/notes/abed96ec5418efa41c4041e2f705996f", + "published": "2026-04-21T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

7.6 mi ride along the Nezinscot River road. 29 minutes, 192 ft elevation.

", + "content": "

+9553 lines across 22 commits in rockies. [codex] Define Budgie graphical VM execution gate (#106).

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 7.6, - "durationMinutes": 29, - "route": "Nezinscot River road", - "elevationGainFeet": 192 + "tl:codeActivity": { + "linesAdded": 9964, + "linesRemoved": 411, + "commits": 22, + "repository": "rockies", + "languages": [ + "YAML", + "Shell", + "Markdown" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/8baad0ce2f103e6155cfe753f1e713b2", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-21T10:58:38.890Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/8baad0ce2f103e6155cfe753f1e713b2", + "published": "2026-04-21T10:58:38.890Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] } }, { @@ -278,15 +1194,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/6349659ddbd5aa54f291c2bd477102df", + "id": "https://tinyland.dev/activities/b0dbaa11a63781599479ef5d53b01aae", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-16T12:19:14.524Z", + "published": "2026-04-20T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/6349659ddbd5aa54f291c2bd477102df", - "published": "2026-04-16T12:19:14.524Z", + "id": "https://tinyland.dev/notes/b0dbaa11a63781599479ef5d53b01aae", + "published": "2026-04-20T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+240/-69 lines across 7 commits in scheduling-kit.

", + "content": "

+84 lines across 5 commits in XoxdWM. ci: bound runner health smoke and update checkout.

", "tag": [ { "type": "Hashtag", @@ -294,13 +1210,12 @@ } ], "tl:codeActivity": { - "linesAdded": 240, - "linesRemoved": 69, - "commits": 7, - "repository": "scheduling-kit", + "linesAdded": 96, + "linesRemoved": 12, + "commits": 5, + "repository": "XoxdWM", "languages": [ - "Nix", - "Zig" + "YAML" ] } } @@ -313,21 +1228,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/70dcf1eea677ecef7446ad7758a6f687", + "id": "https://tinyland.dev/activities/1dac50c7af83613855504464d43b9216", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-15T06:59:04.235Z", + "published": "2026-04-20T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/70dcf1eea677ecef7446ad7758a6f687", - "published": "2026-04-15T06:59:04.235Z", + "id": "https://tinyland.dev/notes/1dac50c7af83613855504464d43b9216", + "published": "2026-04-20T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+13407 lines across 83 commits in cmux. vm(freestyle): bump snapshot to sc-doh8fm44ttlhq1ji675h.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 15536, + "linesRemoved": 2129, + "commits": 83, + "repository": "cmux", + "languages": [ + "TypeScript", + "Markdown", + "JavaScript", + "Python" + ] + } } }, { @@ -338,40 +1265,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/4bf8deda84a2d446645bec1aef7cb37f", + "id": "https://tinyland.dev/activities/1e2c37143bfaf31387cbad8db13d0614", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-13T23:23:09.634Z", + "published": "2026-04-20T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/4bf8deda84a2d446645bec1aef7cb37f", - "published": "2026-04-13T23:23:09.634Z", + "id": "https://tinyland.dev/notes/1e2c37143bfaf31387cbad8db13d0614", + "published": "2026-04-20T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Office: 25.3C, 51% humidity, CO2 849ppm.

", + "content": "

+2960 lines across 30 commits in GloriousFlywheel. Add run-driven honey checkout triage.

", "tag": [ { "type": "Hashtag", - "name": "#sensors" + "name": "#code" } ], - "tl:sensorReading": { - "sensorId": "office-env-01", - "sensorType": "environmental", - "measurements": [ - { - "name": "Temperature", - "value": 25.3, - "unit": "C" - }, - { - "name": "Humidity", - "value": 51, - "unit": "%" - }, - { - "name": "CO2", - "value": 849, - "unit": "ppm" - } + "tl:codeActivity": { + "linesAdded": 3981, + "linesRemoved": 1021, + "commits": 30, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "Python", + "JSON", + "Shell" ] } } @@ -384,36 +1302,57 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/28c58570712d7439caebd0ab1020c539", + "id": "https://tinyland.dev/activities/afc2dab373b3ceb6097b75df2d518ef6", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-13T00:13:40.251Z", + "published": "2026-04-20T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/28c58570712d7439caebd0ab1020c539", - "published": "2026-04-13T00:13:40.251Z", + "id": "https://tinyland.dev/notes/afc2dab373b3ceb6097b75df2d518ef6", + "published": "2026-04-20T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Barred Owl at Bradbury Mountain.

", + "content": "

+15993 lines across 36 commits in rockies. [codex] Add Budgie platform-gate next-phase proof (#85).

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Bradbury Mountain", - "latitude": 43.9017, - "longitude": -70.1678 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 16325, + "linesRemoved": 332, + "commits": 36, + "repository": "rockies", + "languages": [ + "YAML", + "Markdown", + "Shell" + ] + } + } + }, + { + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "tl": "https://tinyland.dev/ns/v1#" } + ], + "type": "Create", + "id": "https://tinyland.dev/activities/76663f8cd2b0c17410f6f7a488411ab9", + "actor": "https://tinyland.dev/@jesssullivan", + "published": "2026-04-20T05:15:14.737Z", + "object": { + "type": "Note", + "id": "https://tinyland.dev/notes/76663f8cd2b0c17410f6f7a488411ab9", + "published": "2026-04-20T05:15:14.737Z", + "attributedTo": "https://tinyland.dev/@jesssullivan", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "tag": [ + { + "type": "Hashtag", + "name": "#notes" + } + ] } }, { @@ -424,21 +1363,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/528e338a58de1cbfe63dd1cf736be68b", + "id": "https://tinyland.dev/activities/742e54435ca7d3144114da1444edee38", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-11T13:48:53.741Z", + "published": "2026-04-19T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/528e338a58de1cbfe63dd1cf736be68b", - "published": "2026-04-11T13:48:53.741Z", + "id": "https://tinyland.dev/notes/742e54435ca7d3144114da1444edee38", + "published": "2026-04-19T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+14 lines across 3 commits in XoxdWM. ci: gate Honey hardware lanes explicitly.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 68, + "linesRemoved": 54, + "commits": 3, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Markdown" + ] + } } }, { @@ -449,21 +1398,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/85fb67b23709f2fe936d527762070e81", + "id": "https://tinyland.dev/activities/5875d34319c508f18541a7627855523c", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-10T09:14:22.538Z", + "published": "2026-04-19T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/85fb67b23709f2fe936d527762070e81", - "published": "2026-04-10T09:14:22.538Z", + "id": "https://tinyland.dev/notes/5875d34319c508f18541a7627855523c", + "published": "2026-04-19T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "content": "

+16296 lines across 44 commits in cmux. Fix config settings editor focus.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 18239, + "linesRemoved": 1943, + "commits": 44, + "repository": "cmux", + "languages": [ + "Markdown", + "TypeScript", + "JSON", + "Shell" + ] + } } }, { @@ -474,21 +1435,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/415fc624e8866df8c963d644e1f1be54", + "id": "https://tinyland.dev/activities/2727a71262607c89609a954cdef208ae", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-09T09:59:25.056Z", + "published": "2026-04-19T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/415fc624e8866df8c963d644e1f1be54", - "published": "2026-04-09T09:59:25.056Z", + "id": "https://tinyland.dev/notes/2727a71262607c89609a954cdef208ae", + "published": "2026-04-19T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+1344 lines across 7 commits in acuity-middleware. feat(paper): phase 1 scaffold — LaTeX, bibtex, figure generators (T23/M8).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 2045, + "linesRemoved": 701, + "commits": 7, + "repository": "acuity-middleware", + "languages": [ + "Markdown", + "Python", + "JavaScript", + "Shell" + ] + } } }, { @@ -499,35 +1472,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/7231a8ae524df3aad3a3f827f45aa5a4", + "id": "https://tinyland.dev/activities/88dc4fac6db018535d3787d5b4f83fde", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-08T01:27:47.581Z", + "published": "2026-04-19T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/7231a8ae524df3aad3a3f827f45aa5a4", - "published": "2026-04-08T01:27:47.581Z", + "id": "https://tinyland.dev/notes/88dc4fac6db018535d3787d5b4f83fde", + "published": "2026-04-19T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Black-capped Chickadees at Lost Valley trails- feeding together in the canopy.

", + "content": "

+12577 lines across 44 commits in GloriousFlywheel. fix(ci): skip nix bootstrap on preprovisioned runners.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Black-capped Chickadee", - "scientificName": "Poecile atricapillus", - "location": { - "type": "Place", - "name": "Lost Valley trails", - "latitude": 44.0889, - "longitude": -70.2456 - }, - "count": 2 + "tl:codeActivity": { + "linesAdded": 18604, + "linesRemoved": 6027, + "commits": 44, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Nix", + "Markdown", + "Shell" + ] } } }, @@ -539,15 +1509,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/c5de567b7e605d368fd754a4e3236a47", + "id": "https://tinyland.dev/activities/bcdf25362cdadf8e7e2ba2b880bea080", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-07T01:29:19.980Z", + "published": "2026-04-19T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/c5de567b7e605d368fd754a4e3236a47", - "published": "2026-04-07T01:29:19.980Z", + "id": "https://tinyland.dev/notes/bcdf25362cdadf8e7e2ba2b880bea080", + "published": "2026-04-19T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+3/-2 lines across 2 commits in cmux.

", + "content": "

+2630 lines across 24 commits in rockies. add wlroots podman validation helper (#41).

", "tag": [ { "type": "Hashtag", @@ -555,13 +1525,14 @@ } ], "tl:codeActivity": { - "linesAdded": 3, - "linesRemoved": 2, - "commits": 2, - "repository": "cmux", + "linesAdded": 2842, + "linesRemoved": 212, + "commits": 24, + "repository": "rockies", "languages": [ - "Svelte", - "TypeScript" + "Markdown", + "Shell", + "YAML" ] } } @@ -574,35 +1545,29 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/82a4da6c231d89280eb76e9c2ea5f7d9", + "id": "https://tinyland.dev/activities/a8b34da7f75b4b1d36d265cf656ebdbb", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-05T13:22:07.137Z", + "published": "2026-04-18T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/82a4da6c231d89280eb76e9c2ea5f7d9", - "published": "2026-04-05T13:22:07.137Z", + "id": "https://tinyland.dev/notes/a8b34da7f75b4b1d36d265cf656ebdbb", + "published": "2026-04-18T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 White-breasted Nuthatch at Androscoggin Riverlands.

", + "content": "

+0 lines across 3 commits in XoxdWM. ci: target repo scoped xoxdwm nix lane.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "White-breasted Nuthatch", - "scientificName": "Sitta carolinensis", - "location": { - "type": "Place", - "name": "Androscoggin Riverlands", - "latitude": 44.0412, - "longitude": -70.1823 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 2, + "linesRemoved": 2, + "commits": 3, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] } } }, @@ -614,21 +1579,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/09bcca81620daea6b6a7cde10721062d", + "id": "https://tinyland.dev/activities/e9a48b973bc0d8228e34bfe549be3398", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-04T08:58:28.128Z", + "published": "2026-04-18T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/09bcca81620daea6b6a7cde10721062d", - "published": "2026-04-04T08:58:28.128Z", + "id": "https://tinyland.dev/notes/e9a48b973bc0d8228e34bfe549be3398", + "published": "2026-04-18T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "content": "

-2964781 lines across 83 commits in cmux. Address paste PR review feedback.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 11365, + "linesRemoved": 2976146, + "commits": 83, + "repository": "cmux", + "languages": [ + "YAML", + "Markdown", + "Zig", + "Python" + ] + } } }, { @@ -639,21 +1616,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/7f9faaf116d3cb8ae69958428614b493", + "id": "https://tinyland.dev/activities/7d1b86f9d43962c947578cc5c8d60ee8", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-03T06:10:48.133Z", + "published": "2026-04-18T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/7f9faaf116d3cb8ae69958428614b493", - "published": "2026-04-03T06:10:48.133Z", + "id": "https://tinyland.dev/notes/7d1b86f9d43962c947578cc5c8d60ee8", + "published": "2026-04-18T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+757 lines across 22 commits in scheduling-kit. test(adapter): multi-step booking lifecycle tests (#70).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 829, + "linesRemoved": 72, + "commits": 22, + "repository": "scheduling-kit", + "languages": [ + "TypeScript", + "Nix", + "YAML" + ] + } } }, { @@ -664,35 +1652,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/9321d2a2df8137b7659ef519f2d14a64", + "id": "https://tinyland.dev/activities/5260be534ffdf1e3106b2fcd4540461a", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-04-02T03:28:04.004Z", + "published": "2026-04-18T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/9321d2a2df8137b7659ef519f2d14a64", - "published": "2026-04-02T03:28:04.004Z", + "id": "https://tinyland.dev/notes/5260be534ffdf1e3106b2fcd4540461a", + "published": "2026-04-18T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Black-capped Chickadees at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "content": "

+3566 lines across 25 commits in acuity-middleware. ci(deploy): K8s CD workflow via Kustomize overlay (#65).

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Black-capped Chickadee", - "scientificName": "Poecile atricapillus", - "location": { - "type": "Place", - "name": "Thorncrag Bird Sanctuary", - "latitude": 44.1003, - "longitude": -70.2148 - }, - "count": 2 + "tl:codeActivity": { + "linesAdded": 4464, + "linesRemoved": 898, + "commits": 25, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "Shell", + "TypeScript", + "JSON" + ] } } }, @@ -704,21 +1689,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/57d86b32385872e9ad6e19ac6e1deece", + "id": "https://tinyland.dev/activities/bba98e6dc87ccafb81501e4527a6503f", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-31T22:19:07.620Z", + "published": "2026-04-18T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/57d86b32385872e9ad6e19ac6e1deece", - "published": "2026-03-31T22:19:07.620Z", + "id": "https://tinyland.dev/notes/bba98e6dc87ccafb81501e4527a6503f", + "published": "2026-04-18T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "content": "

+6635 lines across 22 commits in GloriousFlywheel. infra: raise heavy nix runner headroom.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 6913, + "linesRemoved": 278, + "commits": 22, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown" + ] + } } }, { @@ -729,30 +1724,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/a98ec2de40dacf6a0d0ef5b0f3ab5020", + "id": "https://tinyland.dev/activities/1932980934cf5439bee8f523871193b4", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-30T14:40:03.052Z", + "published": "2026-04-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/a98ec2de40dacf6a0d0ef5b0f3ab5020", - "published": "2026-03-30T14:40:03.052Z", + "id": "https://tinyland.dev/notes/1932980934cf5439bee8f523871193b4", + "published": "2026-04-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

14.8 mi ride along the Nezinscot River road. 70 minutes, 670 ft elevation.

", + "content": "

+156 lines across 1 commit in jesssullivan.github.io. feat: add blog linear authoring metadata contract (#70).

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 14.8, - "durationMinutes": 70, - "route": "Nezinscot River road", - "elevationGainFeet": 670 + "tl:codeActivity": { + "linesAdded": 160, + "linesRemoved": 4, + "commits": 1, + "repository": "jesssullivan.github.io", + "languages": [ + "Markdown", + "TypeScript" + ] } } }, @@ -764,21 +1759,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/3a2bb2869191c279c66d67cc50dfe03e", + "id": "https://tinyland.dev/activities/4ed05fdce5d372bb47b8fe27004847c8", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-29T08:51:48.169Z", + "published": "2026-04-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/3a2bb2869191c279c66d67cc50dfe03e", - "published": "2026-03-29T08:51:48.169Z", + "id": "https://tinyland.dev/notes/4ed05fdce5d372bb47b8fe27004847c8", + "published": "2026-04-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "content": "

+0 lines across 1 commit in XoxdWM. ci: remove fork gate from shared self hosted paths.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 16, + "linesRemoved": 16, + "commits": 1, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } } }, { @@ -789,21 +1793,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/2f9c17657955b38230c84c38e78dd1ab", + "id": "https://tinyland.dev/activities/403b33a3f5678b618aa006898d94f459", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-28T09:18:13.089Z", + "published": "2026-04-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/2f9c17657955b38230c84c38e78dd1ab", - "published": "2026-03-28T09:18:13.089Z", + "id": "https://tinyland.dev/notes/403b33a3f5678b618aa006898d94f459", + "published": "2026-04-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+14572 lines across 49 commits in cmux. Harden GhosttyKit prebuilt fetch and build locking.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 17542, + "linesRemoved": 2970, + "commits": 49, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Markdown", + "Python" + ] + } } }, { @@ -814,15 +1830,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/460c61259cf70605658e51f7c48ae64e", + "id": "https://tinyland.dev/activities/cc31f103be206d4d4f71747e163c2ca9", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-27T01:24:29.334Z", + "published": "2026-04-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/460c61259cf70605658e51f7c48ae64e", - "published": "2026-03-27T01:24:29.334Z", + "id": "https://tinyland.dev/notes/cc31f103be206d4d4f71747e163c2ca9", + "published": "2026-04-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+154/-5 lines across 8 commits in acuity-middleware.

", + "content": "

+75 lines across 2 commits in scheduling-kit. [codex] Make package lane repo-owned and isolated (#64).

", "tag": [ { "type": "Hashtag", @@ -830,13 +1846,14 @@ } ], "tl:codeActivity": { - "linesAdded": 154, - "linesRemoved": 5, - "commits": 8, - "repository": "acuity-middleware", + "linesAdded": 132, + "linesRemoved": 57, + "commits": 2, + "repository": "scheduling-kit", "languages": [ - "Nix", - "Rust" + "YAML", + "Svelte", + "TypeScript" ] } } @@ -849,21 +1866,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ebd9c12ddc22968dae8b5b6d03057995", + "id": "https://tinyland.dev/activities/564801074d80b73fc2ca8a09cc34531d", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-26T00:19:32.902Z", + "published": "2026-04-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ebd9c12ddc22968dae8b5b6d03057995", - "published": "2026-03-26T00:19:32.902Z", + "id": "https://tinyland.dev/notes/564801074d80b73fc2ca8a09cc34531d", + "published": "2026-04-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+3592 lines across 13 commits in acuity-middleware. fix(paper): align cache_hit_ratio with actual rollup schema.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 4360, + "linesRemoved": 768, + "commits": 13, + "repository": "acuity-middleware", + "languages": [ + "Python", + "JavaScript", + "Markdown", + "Shell" + ] + } } }, { @@ -874,21 +1903,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/35763973bafd97f2953eb7eb7ba07f16", + "id": "https://tinyland.dev/activities/96c509895c3707a747c826dc492d25ca", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-24T19:36:15.266Z", + "published": "2026-04-17T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/35763973bafd97f2953eb7eb7ba07f16", - "published": "2026-03-24T19:36:15.266Z", + "id": "https://tinyland.dev/notes/96c509895c3707a747c826dc492d25ca", + "published": "2026-04-17T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+125 lines across 13 commits in GloriousFlywheel. ci: upgrade workflow actions for node24 runtime.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 536, + "linesRemoved": 411, + "commits": 13, + "repository": "GloriousFlywheel", + "languages": [ + "YAML", + "Markdown", + "Nix" + ] + } } }, { @@ -899,21 +1939,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/0ca1b7bf3e1f82e334faab238ab47326", + "id": "https://tinyland.dev/activities/f168aced1900ff654ffbb047b0216012", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-23T13:50:09.918Z", + "published": "2026-04-17T17:15:09.917Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/0ca1b7bf3e1f82e334faab238ab47326", - "published": "2026-03-23T13:50:09.918Z", + "id": "https://tinyland.dev/notes/f168aced1900ff654ffbb047b0216012", + "published": "2026-04-17T17:15:09.917Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Morning fog on the Androscoggin. Perfect conditions for great blue herons- counted six in a half-mile stretch.

", + "content": "

7.6 mi ride along the Nezinscot River road. 29 minutes, 192 ft elevation.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#cycling" + }, + { + "type": "Hashtag", + "name": "#maine" } - ] + ], + "tl:bikeRide": { + "distanceMiles": 7.6, + "durationMinutes": 29, + "route": "Nezinscot River road", + "elevationGainFeet": 192 + } } }, { @@ -924,30 +1974,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/c45e8e8a0a6121b97546acbd713e9c99", + "id": "https://tinyland.dev/activities/7839743d2786029a280cdb9cce7969df", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-22T10:39:52.274Z", + "published": "2026-04-16T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/c45e8e8a0a6121b97546acbd713e9c99", - "published": "2026-03-22T10:39:52.274Z", + "id": "https://tinyland.dev/notes/7839743d2786029a280cdb9cce7969df", + "published": "2026-04-16T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

27.6 mi ride along the Lisbon Falls loop. 133 minutes, 497 ft elevation.

", + "content": "

+5199 lines across 10 commits in jesssullivan.github.io. [codex] harden blog week 1 surface (#69).

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 27.6, - "durationMinutes": 133, - "route": "Lisbon Falls loop", - "elevationGainFeet": 497 + "tl:codeActivity": { + "linesAdded": 36893, + "linesRemoved": 31694, + "commits": 10, + "repository": "jesssullivan.github.io", + "languages": [ + "YAML", + "JSON", + "Markdown", + "TypeScript" + ] } } }, @@ -959,21 +2011,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/31095068f27684456ef6430436f6213e", + "id": "https://tinyland.dev/activities/ff3bff657be6012bb4938c3eb6ab919a", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-21T05:09:32.640Z", + "published": "2026-04-16T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/31095068f27684456ef6430436f6213e", - "published": "2026-03-21T05:09:32.640Z", + "id": "https://tinyland.dev/notes/ff3bff657be6012bb4938c3eb6ab919a", + "published": "2026-04-16T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "content": "

+11 lines across 1 commit in XoxdWM. ci: align shared runner contract.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 29, + "linesRemoved": 18, + "commits": 1, + "repository": "XoxdWM", + "languages": [ + "YAML" + ] + } } }, { @@ -984,15 +2045,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ba4e64be4f9a4b870b1e862aac6a2785", + "id": "https://tinyland.dev/activities/b26e0b5cb1b977d0998cc3d3916fe4a4", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-20T00:22:09.434Z", + "published": "2026-04-16T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ba4e64be4f9a4b870b1e862aac6a2785", - "published": "2026-03-20T00:22:09.434Z", + "id": "https://tinyland.dev/notes/b26e0b5cb1b977d0998cc3d3916fe4a4", + "published": "2026-04-16T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+114/-50 lines across 2 commits in cmux.

", + "content": "

+6077 lines across 46 commits in cmux. test: cover retained browser and markdown hosts.

", "tag": [ { "type": "Hashtag", @@ -1000,13 +2061,15 @@ } ], "tl:codeActivity": { - "linesAdded": 114, - "linesRemoved": 50, - "commits": 2, + "linesAdded": 10938, + "linesRemoved": 4861, + "commits": 46, "repository": "cmux", "languages": [ - "Svelte", - "CSS" + "Markdown", + "Shell", + "C", + "YAML" ] } } @@ -1019,21 +2082,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/5e8cb357b80d2ee47757a210c1cdeb46", + "id": "https://tinyland.dev/activities/9776689930d8ba674703489eea4a1178", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-18T14:43:13.164Z", + "published": "2026-04-16T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/5e8cb357b80d2ee47757a210c1cdeb46", - "published": "2026-03-18T14:43:13.164Z", + "id": "https://tinyland.dev/notes/9776689930d8ba674703489eea4a1178", + "published": "2026-04-16T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+334 lines across 18 commits in scheduling-kit. chore: adopt shared bazel package workflow (#11).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 1678, + "linesRemoved": 1344, + "commits": 18, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "Markdown", + "JavaScript", + "JSON" + ] + } } }, { @@ -1044,35 +2119,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ea7f6735a3d1213e0a36ae3c8e37cb61", + "id": "https://tinyland.dev/activities/9175fb4c668279ed9307bfe09d080483", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-17T14:58:32.573Z", + "published": "2026-04-16T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ea7f6735a3d1213e0a36ae3c8e37cb61", - "published": "2026-03-17T14:58:32.573Z", + "id": "https://tinyland.dev/notes/9175fb4c668279ed9307bfe09d080483", + "published": "2026-04-16T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Great Blue Heron at Bradbury Mountain.

", + "content": "

+750 lines across 18 commits in acuity-middleware. [codex] adopt shared Bazel package workflow (#42).

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Great Blue Heron", - "scientificName": "Ardea herodias", - "location": { - "type": "Place", - "name": "Bradbury Mountain", - "latitude": 43.9017, - "longitude": -70.1678 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 1310, + "linesRemoved": 560, + "commits": 18, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "Markdown", + "TypeScript", + "JSON" + ] } } }, @@ -1084,21 +2156,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/604b976b778db7fb303b649c8d185bff", + "id": "https://tinyland.dev/activities/70d7d1859438bec67c9ccc4e6f0341a6", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-16T09:31:46.518Z", + "published": "2026-04-16T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/604b976b778db7fb303b649c8d185bff", - "published": "2026-03-16T09:31:46.518Z", + "id": "https://tinyland.dev/notes/70d7d1859438bec67c9ccc4e6f0341a6", + "published": "2026-04-16T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The tinyvectors extraction is cleaner than I expected. Bazel builds the package, npm publishes it, CI validates the round trip.

", + "content": "

+18317 lines across 17 commits in GloriousFlywheel. ops: tighten runtime integrity audits and runbooks.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 21057, + "linesRemoved": 2740, + "commits": 17, + "repository": "GloriousFlywheel", + "languages": [ + "Markdown", + "Shell", + "TypeScript", + "Svelte" + ] + } } }, { @@ -1109,35 +2193,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/04a99cdb9a5bdd4c7f32bcd964a7f61d", + "id": "https://tinyland.dev/activities/6c1cd316e7208dd2c31ffed0b8eb8681", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-14T23:38:44.132Z", + "published": "2026-04-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/04a99cdb9a5bdd4c7f32bcd964a7f61d", - "published": "2026-03-14T23:38:44.132Z", + "id": "https://tinyland.dev/notes/6c1cd316e7208dd2c31ffed0b8eb8681", + "published": "2026-04-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Red-tailed Hawks at Sabattus Pond- feeding together in the canopy.

", + "content": "

+59 lines across 2 commits in XoxdWM. test(greptile): canary PR to verify review check integration.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Red-tailed Hawk", - "scientificName": "Buteo jamaicensis", - "location": { - "type": "Place", - "name": "Sabattus Pond", - "latitude": 44.1209, - "longitude": -70.0874 - }, - "count": 2 + "tl:codeActivity": { + "linesAdded": 59, + "linesRemoved": 0, + "commits": 2, + "repository": "XoxdWM", + "languages": [ + "Markdown", + "JSON" + ] } } }, @@ -1149,35 +2228,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/4e8fc9a579d46bc3ee4efb5be4c8b9db", + "id": "https://tinyland.dev/activities/abfba96059a2b6faf136ecd40756d45a", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-14T00:51:49.153Z", + "published": "2026-04-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/4e8fc9a579d46bc3ee4efb5be4c8b9db", - "published": "2026-03-14T00:51:49.153Z", + "id": "https://tinyland.dev/notes/abfba96059a2b6faf136ecd40756d45a", + "published": "2026-04-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Barred Owl at Androscoggin Riverlands.

", + "content": "

+2006 lines across 56 commits in cmux. Move pane file-drop ownership into Workspace.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Androscoggin Riverlands", - "latitude": 44.0412, - "longitude": -70.1823 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 8032, + "linesRemoved": 6026, + "commits": 56, + "repository": "cmux", + "languages": [ + "Markdown", + "Shell", + "Python", + "JSON" + ] } } }, @@ -1189,30 +2265,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/b8dabfc5d830d6c944f2d36759caa9de", + "id": "https://tinyland.dev/activities/ad5be114dc3515a8f0940447fcc95740", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-12T13:35:08.946Z", + "published": "2026-04-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/b8dabfc5d830d6c944f2d36759caa9de", - "published": "2026-03-12T13:35:08.946Z", + "id": "https://tinyland.dev/notes/ad5be114dc3515a8f0940447fcc95740", + "published": "2026-04-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

23.9 mi ride along the Turner Center hill climb. 112 minutes, 589 ft elevation.

", + "content": "

+64 lines across 5 commits in scheduling-kit. build(bazel): publish scheduling-kit from bazel artifact.

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 23.9, - "durationMinutes": 112, - "route": "Turner Center hill climb", - "elevationGainFeet": 589 + "tl:codeActivity": { + "linesAdded": 126, + "linesRemoved": 62, + "commits": 5, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "JSON", + "Markdown" + ] } } }, @@ -1224,40 +2301,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/faefef3d75ea4eebdf1f36240980d2b1", + "id": "https://tinyland.dev/activities/0a2b5fa9e383a5251781476c85f4086d", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-11T11:55:06.301Z", + "published": "2026-04-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/faefef3d75ea4eebdf1f36240980d2b1", - "published": "2026-03-11T11:55:06.301Z", + "id": "https://tinyland.dev/notes/0a2b5fa9e383a5251781476c85f4086d", + "published": "2026-04-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Office: 18.3C, 37% humidity, CO2 431ppm.

", + "content": "

+62 lines across 2 commits in acuity-middleware. build(bazel): publish bridge from bazel artifact.

", "tag": [ { "type": "Hashtag", - "name": "#sensors" + "name": "#code" } ], - "tl:sensorReading": { - "sensorId": "office-env-01", - "sensorType": "environmental", - "measurements": [ - { - "name": "Temperature", - "value": 18.3, - "unit": "C" - }, - { - "name": "Humidity", - "value": 37, - "unit": "%" - }, - { - "name": "CO2", - "value": 431, - "unit": "ppm" - } + "tl:codeActivity": { + "linesAdded": 108, + "linesRemoved": 46, + "commits": 2, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "JSON", + "Markdown" ] } } @@ -1270,15 +2337,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/a8524fe901a5d67ded4b23dcdfbece29", + "id": "https://tinyland.dev/activities/dabba56a657ad59935feade094656a1c", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-10T11:25:41.320Z", + "published": "2026-04-15T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/a8524fe901a5d67ded4b23dcdfbece29", - "published": "2026-03-10T11:25:41.320Z", + "id": "https://tinyland.dev/notes/dabba56a657ad59935feade094656a1c", + "published": "2026-04-15T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+240/-41 lines across 5 commits in scheduling-kit.

", + "content": "

+2105 lines across 7 commits in GloriousFlywheel. feat(ci): FlakeHub publishing workflow (#198).

", "tag": [ { "type": "Hashtag", @@ -1286,13 +2353,15 @@ } ], "tl:codeActivity": { - "linesAdded": 240, - "linesRemoved": 41, - "commits": 5, - "repository": "scheduling-kit", + "linesAdded": 2743, + "linesRemoved": 638, + "commits": 7, + "repository": "GloriousFlywheel", "languages": [ + "YAML", + "Nix", "TypeScript", - "CSS" + "Svelte" ] } } @@ -1305,15 +2374,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/351b03c80d6ba3cff5d558dca8e3e85b", + "id": "https://tinyland.dev/activities/70dcf1eea677ecef7446ad7758a6f687", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-08T23:23:39.121Z", + "published": "2026-04-15T06:59:04.235Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/351b03c80d6ba3cff5d558dca8e3e85b", - "published": "2026-03-08T23:23:39.121Z", + "id": "https://tinyland.dev/notes/70dcf1eea677ecef7446ad7758a6f687", + "published": "2026-04-15T06:59:04.235Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", + "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", "tag": [ { "type": "Hashtag", @@ -1330,35 +2399,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/35c760846a909343967770d1f4ad98a5", + "id": "https://tinyland.dev/activities/d9481a631f6894df5c8fb3516d120609", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-07T21:06:58.978Z", + "published": "2026-04-14T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/35c760846a909343967770d1f4ad98a5", - "published": "2026-03-07T21:06:58.978Z", + "id": "https://tinyland.dev/notes/d9481a631f6894df5c8fb3516d120609", + "published": "2026-04-14T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 4 Cedar Waxwings at Range Pond State Park- feeding together in the canopy.

", + "content": "

+10789 lines across 62 commits in cmux. daemon: add workspace.open_pane RPC.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Cedar Waxwing", - "scientificName": "Bombycilla cedrorum", - "location": { - "type": "Place", - "name": "Range Pond State Park", - "latitude": 44.0667, - "longitude": -70.35 - }, - "count": 4 + "tl:codeActivity": { + "linesAdded": 13084, + "linesRemoved": 2295, + "commits": 62, + "repository": "cmux", + "languages": [ + "Zig", + "JSON", + "YAML", + "Shell" + ] } } }, @@ -1370,21 +2436,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/58358cd78551db339950c6605e5fb5f7", + "id": "https://tinyland.dev/activities/e4bdb5ac5fa742f55d4c1cce973fced4", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-06T13:50:22.830Z", + "published": "2026-04-14T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/58358cd78551db339950c6605e5fb5f7", - "published": "2026-03-06T13:50:22.830Z", + "id": "https://tinyland.dev/notes/e4bdb5ac5fa742f55d4c1cce973fced4", + "published": "2026-04-14T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+1718 lines across 13 commits in scheduling-kit. feat(payments)!: converge PaymentCapabilities contract from tinyland-inc (#45).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 2052, + "linesRemoved": 334, + "commits": 13, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "JSON", + "Svelte", + "TypeScript" + ] + } } }, { @@ -1395,21 +2473,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/63ada09c8d16f5fcdcd2692223647b71", + "id": "https://tinyland.dev/activities/99a22a60a64e099e70e75a2f6b217e2b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-05T13:21:52.204Z", + "published": "2026-04-14T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/63ada09c8d16f5fcdcd2692223647b71", - "published": "2026-03-05T13:21:52.204Z", + "id": "https://tinyland.dev/notes/99a22a60a64e099e70e75a2f6b217e2b", + "published": "2026-04-14T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", + "content": "

+181 lines across 1 commit in acuity-middleware. feat: extractCapabilities for PaymentCapabilities contract (#25).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 183, + "linesRemoved": 2, + "commits": 1, + "repository": "acuity-middleware", + "languages": [ + "JSON", + "TypeScript" + ] + } } }, { @@ -1420,21 +2508,42 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/7d70740fa93a950f5b287195de9f0a7e", + "id": "https://tinyland.dev/activities/4bf8deda84a2d446645bec1aef7cb37f", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-04T11:11:51.554Z", + "published": "2026-04-13T23:23:09.634Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/7d70740fa93a950f5b287195de9f0a7e", - "published": "2026-03-04T11:11:51.554Z", + "id": "https://tinyland.dev/notes/4bf8deda84a2d446645bec1aef7cb37f", + "published": "2026-04-13T23:23:09.634Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "content": "

Office: 25.3C, 51% humidity, CO2 849ppm.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#sensors" } - ] + ], + "tl:sensorReading": { + "sensorId": "office-env-01", + "sensorType": "environmental", + "measurements": [ + { + "name": "Temperature", + "value": 25.3, + "unit": "C" + }, + { + "name": "Humidity", + "value": 51, + "unit": "%" + }, + { + "name": "CO2", + "value": 849, + "unit": "ppm" + } + ] + } } }, { @@ -1445,30 +2554,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/15fd9367271144503800f07aa40cd524", + "id": "https://tinyland.dev/activities/c1f7623dd90ea4c65dcbefce77b485c3", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-03T03:58:45.730Z", + "published": "2026-04-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/15fd9367271144503800f07aa40cd524", - "published": "2026-03-03T03:58:45.730Z", + "id": "https://tinyland.dev/notes/c1f7623dd90ea4c65dcbefce77b485c3", + "published": "2026-04-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

5.1 mi ride along the Turner Center hill climb. 20 minutes, 659 ft elevation.

", + "content": "

+212 lines across 13 commits in XoxdWM. Stamp release version into build inputs.

", "tag": [ { "type": "Hashtag", - "name": "#cycling" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:bikeRide": { - "distanceMiles": 5.1, - "durationMinutes": 20, - "route": "Turner Center hill climb", - "elevationGainFeet": 659 + "tl:codeActivity": { + "linesAdded": 303, + "linesRemoved": 91, + "commits": 13, + "repository": "XoxdWM", + "languages": [ + "YAML", + "TOML", + "Nix", + "Python" + ] } } }, @@ -1480,21 +2591,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/396e4884df1b5e4879cb4a710917bfcd", + "id": "https://tinyland.dev/activities/51cdea13d199f63c1bd7e9118079e67f", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-03-02T00:51:35.079Z", + "published": "2026-04-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/396e4884df1b5e4879cb4a710917bfcd", - "published": "2026-03-02T00:51:35.079Z", + "id": "https://tinyland.dev/notes/51cdea13d199f63c1bd7e9118079e67f", + "published": "2026-04-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "content": "

-2905864 lines across 107 commits in cmux. fix: prune old nightly release assets (#2882).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 72788, + "linesRemoved": 2978652, + "commits": 107, + "repository": "cmux", + "languages": [ + "YAML", + "Python", + "JSON", + "Shell" + ] + } } }, { @@ -1505,21 +2628,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/5b4358f60023247c458522bc1ad2db4e", + "id": "https://tinyland.dev/activities/3d6d70b30da7572f0002f6e9645ed5b0", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-28T17:55:28.562Z", + "published": "2026-04-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/5b4358f60023247c458522bc1ad2db4e", - "published": "2026-02-28T17:55:28.562Z", + "id": "https://tinyland.dev/notes/3d6d70b30da7572f0002f6e9645ed5b0", + "published": "2026-04-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+246 lines across 1 commit in scheduling-kit. docs: add agent and llm operating brief (#42).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 246, + "linesRemoved": 0, + "commits": 1, + "repository": "scheduling-kit", + "languages": [ + "Markdown" + ] + } } }, { @@ -1530,35 +2662,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/23bda90c0ec9f761985cb789d83f2e1e", + "id": "https://tinyland.dev/activities/671a569bc0167ed311adaa6e4d328f16", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-27T12:26:53.071Z", + "published": "2026-04-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/23bda90c0ec9f761985cb789d83f2e1e", - "published": "2026-02-27T12:26:53.071Z", + "id": "https://tinyland.dev/notes/671a569bc0167ed311adaa6e4d328f16", + "published": "2026-04-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 2 Hermit Thrushs at Androscoggin Riverlands- feeding together in the canopy.

", + "content": "

+372 lines across 4 commits in acuity-middleware. docs: add agent and llm operating brief (#22).

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Hermit Thrush", - "scientificName": "Catharus guttatus", - "location": { - "type": "Place", - "name": "Androscoggin Riverlands", - "latitude": 44.0412, - "longitude": -70.1823 - }, - "count": 2 + "tl:codeActivity": { + "linesAdded": 423, + "linesRemoved": 51, + "commits": 4, + "repository": "acuity-middleware", + "languages": [ + "Markdown", + "TypeScript", + "YAML", + "Python" + ] } } }, @@ -1570,21 +2699,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/09469d509adaada274f313ce7235a796", + "id": "https://tinyland.dev/activities/997e9cba484bcf43a4a1d2a9918bf95a", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-26T11:18:32.217Z", + "published": "2026-04-13T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/09469d509adaada274f313ce7235a796", - "published": "2026-02-26T11:18:32.217Z", + "id": "https://tinyland.dev/notes/997e9cba484bcf43a4a1d2a9918bf95a", + "published": "2026-04-13T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "content": "

+181 lines across 1 commit in linux-xr. Add thin Nix and Determinate CI surface.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 181, + "linesRemoved": 0, + "commits": 1, + "repository": "linux-xr", + "languages": [ + "YAML", + "Markdown", + "Nix" + ] + } } }, { @@ -1595,15 +2735,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/d95cd6fc6e01f4a93d3796cd1b255042", + "id": "https://tinyland.dev/activities/28c58570712d7439caebd0ab1020c539", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-25T01:15:59.534Z", + "published": "2026-04-13T00:13:40.251Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/d95cd6fc6e01f4a93d3796cd1b255042", - "published": "2026-02-25T01:15:59.534Z", + "id": "https://tinyland.dev/notes/28c58570712d7439caebd0ab1020c539", + "published": "2026-04-13T00:13:40.251Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 3 Barred Owls at Thorncrag Bird Sanctuary- feeding together in the canopy.

", + "content": "

Spotted 1 Barred Owl at Bradbury Mountain.

", "tag": [ { "type": "Hashtag", @@ -1619,11 +2759,11 @@ "scientificName": "Strix varia", "location": { "type": "Place", - "name": "Thorncrag Bird Sanctuary", - "latitude": 44.1003, - "longitude": -70.2148 + "name": "Bradbury Mountain", + "latitude": 43.9017, + "longitude": -70.1678 }, - "count": 3 + "count": 1 } } }, @@ -1635,15 +2775,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/6c8e700e47de6ef132a2eaef883f29be", + "id": "https://tinyland.dev/activities/665e8b5cb83148358c0d7bac44d8ba9b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-24T00:37:51.920Z", + "published": "2026-04-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/6c8e700e47de6ef132a2eaef883f29be", - "published": "2026-02-24T00:37:51.920Z", + "id": "https://tinyland.dev/notes/665e8b5cb83148358c0d7bac44d8ba9b", + "published": "2026-04-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+171/-102 lines across 6 commits in jesssullivan.github.io.

", + "content": "

+97 lines across 19 commits in XoxdWM. Align Rocky RPM naming in docs.

", "tag": [ { "type": "Hashtag", @@ -1651,13 +2791,15 @@ } ], "tl:codeActivity": { - "linesAdded": 171, - "linesRemoved": 102, - "commits": 6, - "repository": "jesssullivan.github.io", + "linesAdded": 202, + "linesRemoved": 105, + "commits": 19, + "repository": "XoxdWM", "languages": [ - "Nix", - "Rust" + "Markdown", + "YAML", + "Rust", + "Nix" ] } } @@ -1670,15 +2812,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/40962a3677faaee44849f9a14064c3af", + "id": "https://tinyland.dev/activities/65da9a36311edee73ef33bc61f88bb0b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-22T20:19:19.574Z", + "published": "2026-04-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/40962a3677faaee44849f9a14064c3af", - "published": "2026-02-22T20:19:19.574Z", + "id": "https://tinyland.dev/notes/65da9a36311edee73ef33bc61f88bb0b", + "published": "2026-04-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+7/-1 lines across 2 commits in XoxdWM.

", + "content": "

+7277 lines across 37 commits in cmux. hello: advertise terminal.subscribe/workspace.subscribe/notifications.push.

", "tag": [ { "type": "Hashtag", @@ -1686,13 +2828,15 @@ } ], "tl:codeActivity": { - "linesAdded": 7, - "linesRemoved": 1, - "commits": 2, - "repository": "XoxdWM", + "linesAdded": 7934, + "linesRemoved": 657, + "commits": 37, + "repository": "cmux", "languages": [ - "Nix", - "Rust" + "Zig", + "Markdown", + "Shell", + "JSON" ] } } @@ -1705,21 +2849,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/9d4fcf18cb81e58bff9db7b39de2adf8", + "id": "https://tinyland.dev/activities/ed770ed03f4659fbb16052576bdc8487", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-21T13:39:56.769Z", + "published": "2026-04-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/9d4fcf18cb81e58bff9db7b39de2adf8", - "published": "2026-02-21T13:39:56.769Z", + "id": "https://tinyland.dev/notes/ed770ed03f4659fbb16052576bdc8487", + "published": "2026-04-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "content": "

+192 lines across 5 commits in scheduling-kit. ci: enforce Bazel release metadata truth (#40).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 331, + "linesRemoved": 139, + "commits": 5, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "Markdown", + "JSON", + "JavaScript" + ] + } } }, { @@ -1730,21 +2886,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/4a2e5fde14eb5128dc46175f685915f7", + "id": "https://tinyland.dev/activities/6447d358f9d12e5daef4f436c81172f7", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-20T08:31:23.802Z", + "published": "2026-04-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/4a2e5fde14eb5128dc46175f685915f7", - "published": "2026-02-20T08:31:23.802Z", + "id": "https://tinyland.dev/notes/6447d358f9d12e5daef4f436c81172f7", + "published": "2026-04-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "content": "

+349 lines across 2 commits in acuity-middleware. perf: warm browser runtime and cache services (#17).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 717, + "linesRemoved": 368, + "commits": 2, + "repository": "acuity-middleware", + "languages": [ + "YAML", + "Markdown", + "TypeScript", + "Python" + ] + } } }, { @@ -1755,40 +2923,30 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/629ac8cd3a8d5214bfbb44751ebedae5", + "id": "https://tinyland.dev/activities/b7f892a67de1639ceef77acde4b4576a", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-19T04:28:57.458Z", + "published": "2026-04-12T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/629ac8cd3a8d5214bfbb44751ebedae5", - "published": "2026-02-19T04:28:57.458Z", + "id": "https://tinyland.dev/notes/b7f892a67de1639ceef77acde4b4576a", + "published": "2026-04-12T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Office: 19.2C, 30% humidity, CO2 463ppm.

", + "content": "

+52 lines across 8 commits in linux-xr. Document validated honey and yoga rollout state.

", "tag": [ { "type": "Hashtag", - "name": "#sensors" + "name": "#code" } ], - "tl:sensorReading": { - "sensorId": "office-env-01", - "sensorType": "environmental", - "measurements": [ - { - "name": "Temperature", - "value": 19.2, - "unit": "C" - }, - { - "name": "Humidity", - "value": 30, - "unit": "%" - }, - { - "name": "CO2", - "value": 463, - "unit": "ppm" - } + "tl:codeActivity": { + "linesAdded": 74, + "linesRemoved": 22, + "commits": 8, + "repository": "linux-xr", + "languages": [ + "Markdown", + "YAML", + "Shell" ] } } @@ -1801,35 +2959,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/49e6b025cd5031fc0fb3c85210ccfb18", + "id": "https://tinyland.dev/activities/df15c934f975808235b13a6d0684423b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-18T00:38:08.598Z", + "published": "2026-04-11T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/49e6b025cd5031fc0fb3c85210ccfb18", - "published": "2026-02-18T00:38:08.598Z", + "id": "https://tinyland.dev/notes/df15c934f975808235b13a6d0684423b", + "published": "2026-04-11T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 4 Barred Owls at Sabattus Pond- feeding together in the canopy.

", + "content": "

+906 lines across 5 commits in XoxdWM. Scope self-hosted CI to available runner infra (#14).

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Sabattus Pond", - "latitude": 44.1209, - "longitude": -70.0874 - }, - "count": 4 + "tl:codeActivity": { + "linesAdded": 980, + "linesRemoved": 74, + "commits": 5, + "repository": "XoxdWM", + "languages": [ + "YAML", + "Markdown", + "JSON" + ] } } }, @@ -1841,21 +2995,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/09ef926d9821dd072a0b61953f7c6c0b", + "id": "https://tinyland.dev/activities/dd8db92d573732a385aaccd9210d0e42", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-16T15:36:20.564Z", + "published": "2026-04-11T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/09ef926d9821dd072a0b61953f7c6c0b", - "published": "2026-02-16T15:36:20.564Z", + "id": "https://tinyland.dev/notes/dd8db92d573732a385aaccd9210d0e42", + "published": "2026-04-11T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

+2192 lines across 50 commits in cmux. Extract OSC title/directory from PTY output in daemon.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 3927, + "linesRemoved": 1735, + "commits": 50, + "repository": "cmux", + "languages": [ + "Zig", + "YAML", + "Nix", + "Shell" + ] + } } }, { @@ -1866,15 +3032,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/e1e91535cb3c58a1f392b533c9ec9401", + "id": "https://tinyland.dev/activities/b4eb95cd5b6e12d6e7944e53cd9f94d4", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-15T12:21:51.544Z", + "published": "2026-04-11T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/e1e91535cb3c58a1f392b533c9ec9401", - "published": "2026-02-15T12:21:51.544Z", + "id": "https://tinyland.dev/notes/b4eb95cd5b6e12d6e7944e53cd9f94d4", + "published": "2026-04-11T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+158/-22 lines across 3 commits in scheduling-kit.

", + "content": "

+2924 lines across 16 commits in scheduling-kit. chore: bump to 0.6.1 (status helpers) (#34).

", "tag": [ { "type": "Hashtag", @@ -1882,13 +3048,13 @@ } ], "tl:codeActivity": { - "linesAdded": 158, - "linesRemoved": 22, - "commits": 3, + "linesAdded": 2932, + "linesRemoved": 8, + "commits": 16, "repository": "scheduling-kit", "languages": [ - "Chapel", - "Nix" + "JSON", + "TypeScript" ] } } @@ -1901,21 +3067,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/82ca38bf01aa1160a27d882bfee72751", + "id": "https://tinyland.dev/activities/4dd597c7c66be56444a9e0936e39cbc6", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-14T09:32:23.112Z", + "published": "2026-04-11T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/82ca38bf01aa1160a27d882bfee72751", - "published": "2026-02-14T09:32:23.112Z", + "id": "https://tinyland.dev/notes/4dd597c7c66be56444a9e0936e39cbc6", + "published": "2026-04-11T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Rebuilt the Ghostty submodule pin for cmux. 282 commits ahead of upstream now- the fork drift is real.

", + "content": "

+1413 lines across 8 commits in linux-xr. Move CI ccache out of the checkout workspace.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 1529, + "linesRemoved": 116, + "commits": 8, + "repository": "linux-xr", + "languages": [ + "YAML", + "Markdown", + "Shell", + "JSON" + ] + } } }, { @@ -1926,15 +3104,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/0d802d944fd7563893673fd0ca52612e", + "id": "https://tinyland.dev/activities/528e338a58de1cbfe63dd1cf736be68b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-12T23:34:42.523Z", + "published": "2026-04-11T13:48:53.741Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/0d802d944fd7563893673fd0ca52612e", - "published": "2026-02-12T23:34:42.523Z", + "id": "https://tinyland.dev/notes/528e338a58de1cbfe63dd1cf736be68b", + "published": "2026-04-11T13:48:53.741Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", "tag": [ { "type": "Hashtag", @@ -1951,15 +3129,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/b6b88cc1982ff25ecfc0a5b5f82f050c", + "id": "https://tinyland.dev/activities/1cfd5f6a50e507762d4f5e4920af05e5", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-12T01:22:37.107Z", + "published": "2026-04-10T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/b6b88cc1982ff25ecfc0a5b5f82f050c", - "published": "2026-02-12T01:22:37.107Z", + "id": "https://tinyland.dev/notes/1cfd5f6a50e507762d4f5e4920af05e5", + "published": "2026-04-10T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+9/-5 lines across 5 commits in acuity-middleware.

", + "content": "

+2160 lines across 43 commits in cmux. fix: use subshells for bash async cmux jobs.

", "tag": [ { "type": "Hashtag", @@ -1967,13 +3145,15 @@ } ], "tl:codeActivity": { - "linesAdded": 9, - "linesRemoved": 5, - "commits": 5, - "repository": "acuity-middleware", + "linesAdded": 3020, + "linesRemoved": 860, + "commits": 43, + "repository": "cmux", "languages": [ + "Shell", "Python", - "Chapel" + "Markdown", + "YAML" ] } } @@ -1986,15 +3166,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/2194d64f3c07b7b52bd96af2ea49d983", + "id": "https://tinyland.dev/activities/8bb59af611e0bff04b08122d18f9bb63", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-10T17:51:58.955Z", + "published": "2026-04-10T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/2194d64f3c07b7b52bd96af2ea49d983", - "published": "2026-02-10T17:51:58.955Z", + "id": "https://tinyland.dev/notes/8bb59af611e0bff04b08122d18f9bb63", + "published": "2026-04-10T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+155/-1 lines across 6 commits in jesssullivan.github.io.

", + "content": "

+18 lines across 6 commits in scheduling-kit. chore: bump to 0.5.2 (PayPal return URLs) (#20).

", "tag": [ { "type": "Hashtag", @@ -2002,13 +3182,13 @@ } ], "tl:codeActivity": { - "linesAdded": 155, - "linesRemoved": 1, + "linesAdded": 21, + "linesRemoved": 3, "commits": 6, - "repository": "jesssullivan.github.io", + "repository": "scheduling-kit", "languages": [ - "Svelte", - "CSS" + "JSON", + "TypeScript" ] } } @@ -2021,15 +3201,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/909c5ae402cf42d38ee0c113f829a1f3", + "id": "https://tinyland.dev/activities/85fb67b23709f2fe936d527762070e81", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-09T10:38:22.200Z", + "published": "2026-04-10T09:14:22.538Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/909c5ae402cf42d38ee0c113f829a1f3", - "published": "2026-02-09T10:38:22.200Z", + "id": "https://tinyland.dev/notes/85fb67b23709f2fe936d527762070e81", + "published": "2026-04-10T09:14:22.538Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Reading through the Zag.js source for the scroll-area machine. The state chart is beautiful- might propose a Skeleton wrapper.

", + "content": "

Three hours deep in EDID parsing. The Bigscreen Beyond reports a non-desktop display type but the kernel ignores it. Fun.

", "tag": [ { "type": "Hashtag", @@ -2046,15 +3226,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/286d32eb3623c658e9438650c0e754b8", + "id": "https://tinyland.dev/activities/3e5c16028ed2862d425178122daf73bb", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-08T05:38:05.142Z", + "published": "2026-04-09T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/286d32eb3623c658e9438650c0e754b8", - "published": "2026-02-08T05:38:05.142Z", + "id": "https://tinyland.dev/notes/3e5c16028ed2862d425178122daf73bb", + "published": "2026-04-09T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+114/-42 lines across 7 commits in scheduling-kit.

", + "content": "

-24206 lines across 35 commits in cmux. Fix terminal latency and attachment leak in daemon bridge.

", "tag": [ { "type": "Hashtag", @@ -2062,13 +3242,15 @@ } ], "tl:codeActivity": { - "linesAdded": 114, - "linesRemoved": 42, - "commits": 7, - "repository": "scheduling-kit", + "linesAdded": 4936, + "linesRemoved": 29142, + "commits": 35, + "repository": "cmux", "languages": [ - "Rust", - "Python" + "Zig", + "YAML", + "Shell", + "Go" ] } } @@ -2081,15 +3263,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/54ddbfd0256d796d45fd6650163cca19", + "id": "https://tinyland.dev/activities/415fc624e8866df8c963d644e1f1be54", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-07T03:28:07.634Z", + "published": "2026-04-09T09:59:25.056Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/54ddbfd0256d796d45fd6650163cca19", - "published": "2026-02-07T03:28:07.634Z", + "id": "https://tinyland.dev/notes/415fc624e8866df8c963d644e1f1be54", + "published": "2026-04-09T09:59:25.056Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", + "content": "

The blog prebuild pipeline is getting comically long but every step earns its keep. 6 scripts chained before vite even starts.

", "tag": [ { "type": "Hashtag", @@ -2106,21 +3288,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/79c37666ab615886cb85257a12ac5920", + "id": "https://tinyland.dev/activities/77e30775457786b8fd07ef4513d0a5f6", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-05T18:45:00.405Z", + "published": "2026-04-08T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/79c37666ab615886cb85257a12ac5920", - "published": "2026-02-05T18:45:00.405Z", + "id": "https://tinyland.dev/notes/77e30775457786b8fd07ef4513d0a5f6", + "published": "2026-04-08T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spring peepers are deafening tonight. Walked down to the pond with a headlamp and counted at least forty calling.

", + "content": "

+3551 lines across 72 commits in cmux. Restore unsafeBitCast shim for clipboard callback cross-importer compatibility.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 5873, + "linesRemoved": 2322, + "commits": 72, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Python", + "JavaScript" + ] + } } }, { @@ -2131,35 +3325,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/0701a9911329b65d867d3dd544e1383a", + "id": "https://tinyland.dev/activities/20341d4c52883dcac06b66ef547a407f", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-04T20:57:56.174Z", + "published": "2026-04-08T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/0701a9911329b65d867d3dd544e1383a", - "published": "2026-02-04T20:57:56.174Z", + "id": "https://tinyland.dev/notes/20341d4c52883dcac06b66ef547a407f", + "published": "2026-04-08T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 1 Barred Owl at Lost Valley trails.

", + "content": "

+30 lines across 7 commits in scheduling-kit. fix(ci): use @jesssullivan scope for GitHub Packages mirror (#18).

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Barred Owl", - "scientificName": "Strix varia", - "location": { - "type": "Place", - "name": "Lost Valley trails", - "latitude": 44.0889, - "longitude": -70.2456 - }, - "count": 1 + "tl:codeActivity": { + "linesAdded": 38, + "linesRemoved": 8, + "commits": 7, + "repository": "scheduling-kit", + "languages": [ + "YAML", + "JSON", + "TypeScript" + ] } } }, @@ -2171,46 +3361,36 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/f51ae3f23de813eb98b98f99a7ea3f0b", + "id": "https://tinyland.dev/activities/7231a8ae524df3aad3a3f827f45aa5a4", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-03T09:20:28.035Z", + "published": "2026-04-08T01:27:47.581Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/f51ae3f23de813eb98b98f99a7ea3f0b", - "published": "2026-02-03T09:20:28.035Z", + "id": "https://tinyland.dev/notes/7231a8ae524df3aad3a3f827f45aa5a4", + "published": "2026-04-08T01:27:47.581Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Finally got the Dell 7810 stable on the RT kernel- four weeks of chasing SMI ghosts but the hwlat numbers are clean now.

", + "content": "

Spotted 2 Black-capped Chickadees at Lost Valley trails- feeding together in the canopy.

", "tag": [ { "type": "Hashtag", - "name": "#notes" - } - ] - } - }, - { - "@context": [ - "https://www.w3.org/ns/activitystreams", - { - "tl": "https://tinyland.dev/ns/v1#" - } - ], - "type": "Create", - "id": "https://tinyland.dev/activities/563c23dcc5c294aceb11de7456cdca25", - "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-02T04:47:11.026Z", - "object": { - "type": "Note", - "id": "https://tinyland.dev/notes/563c23dcc5c294aceb11de7456cdca25", - "published": "2026-02-02T04:47:11.026Z", - "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Baked a sourdough loaf while waiting for molecule tests. Both turned out better than expected.

", - "tag": [ + "name": "#birding" + }, { "type": "Hashtag", - "name": "#notes" + "name": "#maine" } - ] + ], + "tl:birdSighting": { + "species": "Black-capped Chickadee", + "scientificName": "Poecile atricapillus", + "location": { + "type": "Place", + "name": "Lost Valley trails", + "latitude": 44.0889, + "longitude": -70.2456 + }, + "count": 2 + } } }, { @@ -2221,21 +3401,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/36ad79113eaf0b376f88e8073d5b92c4", + "id": "https://tinyland.dev/activities/eba22b3aa5b4dd7aca4eb0e1292aaaed", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-02-01T01:43:59.899Z", + "published": "2026-04-07T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/36ad79113eaf0b376f88e8073d5b92c4", - "published": "2026-02-01T01:43:59.899Z", + "id": "https://tinyland.dev/notes/eba22b3aa5b4dd7aca4eb0e1292aaaed", + "published": "2026-04-07T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Tried $state.eager() for the theme switcher. Instant visual feedback even during page transitions. Svelte 5 keeps delivering.

", + "content": "

+9482 lines across 41 commits in cmux. iOS: enable Metal renderer colors via synchronous rendering.

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 15806, + "linesRemoved": 6324, + "commits": 41, + "repository": "cmux", + "languages": [ + "YAML", + "Shell", + "Go", + "JSON" + ] + } } }, { @@ -2246,15 +3438,15 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/ed951163e16f73b496b764b5ea5c5375", + "id": "https://tinyland.dev/activities/8899fe566a1085ff4edc021fcdd0175b", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-31T00:17:20.456Z", + "published": "2026-04-07T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/ed951163e16f73b496b764b5ea5c5375", - "published": "2026-01-31T00:17:20.456Z", + "id": "https://tinyland.dev/notes/8899fe566a1085ff4edc021fcdd0175b", + "published": "2026-04-07T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

+114/-29 lines across 6 commits in scheduling-kit.

", + "content": "

+277 lines across 3 commits in scheduling-kit. feat: v0.5.0 - remove acuity-scraper, add Bazel 8 config (#11).

", "tag": [ { "type": "Hashtag", @@ -2262,13 +3454,14 @@ } ], "tl:codeActivity": { - "linesAdded": 114, - "linesRemoved": 29, - "commits": 6, + "linesAdded": 1132, + "linesRemoved": 855, + "commits": 3, "repository": "scheduling-kit", "languages": [ - "Svelte", - "Chapel" + "Markdown", + "JSON", + "TypeScript" ] } } @@ -2281,21 +3474,33 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/60caf2a69c651c2320366d598767c00b", + "id": "https://tinyland.dev/activities/b7d64fb473f68e9a7291430d874495a4", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-29T16:36:32.975Z", + "published": "2026-04-07T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/60caf2a69c651c2320366d598767c00b", - "published": "2026-01-29T16:36:32.975Z", + "id": "https://tinyland.dev/notes/b7d64fb473f68e9a7291430d874495a4", + "published": "2026-04-07T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Nix flake for the Chapel toolchain is reproducible on both darwin and rocky. One derivation, two platforms. Feels good.

", + "content": "

+866 lines across 8 commits in acuity-middleware. docs(paper): update for scheduling-bridge architecture and FOSS offramp thesis (#11).

", "tag": [ { "type": "Hashtag", - "name": "#notes" + "name": "#code" } - ] + ], + "tl:codeActivity": { + "linesAdded": 1210, + "linesRemoved": 344, + "commits": 8, + "repository": "acuity-middleware", + "languages": [ + "Markdown", + "JSON", + "YAML", + "TypeScript" + ] + } } }, { @@ -2306,35 +3511,32 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/cbe14caa0a0928be9b5554eb363d4cd2", + "id": "https://tinyland.dev/activities/e09cf2e3f43ad6c1a0894cf24dd5011d", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-28T10:36:30.503Z", + "published": "2026-04-06T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/cbe14caa0a0928be9b5554eb363d4cd2", - "published": "2026-01-28T10:36:30.503Z", + "id": "https://tinyland.dev/notes/e09cf2e3f43ad6c1a0894cf24dd5011d", + "published": "2026-04-06T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 3 Eastern Bluebirds at Bradbury Mountain- feeding together in the canopy.

", + "content": "

+20689 lines across 112 commits in cmux. Make global hotkey safer to bind and toggle.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "Eastern Bluebird", - "scientificName": "Sialia sialis", - "location": { - "type": "Place", - "name": "Bradbury Mountain", - "latitude": 43.9017, - "longitude": -70.1678 - }, - "count": 3 + "tl:codeActivity": { + "linesAdded": 24170, + "linesRemoved": 3481, + "commits": 112, + "repository": "cmux", + "languages": [ + "TypeScript", + "YAML", + "Shell", + "Python" + ] } } }, @@ -2346,35 +3548,31 @@ } ], "type": "Create", - "id": "https://tinyland.dev/activities/dfc22700861a5a4cdc0f66d34da859a8", + "id": "https://tinyland.dev/activities/f4b696d304ab8de5aa88bc47d0f066ed", "actor": "https://tinyland.dev/@jesssullivan", - "published": "2026-01-27T04:52:51.732Z", + "published": "2026-04-06T22:00:00.000Z", "object": { "type": "Note", - "id": "https://tinyland.dev/notes/dfc22700861a5a4cdc0f66d34da859a8", - "published": "2026-01-27T04:52:51.732Z", + "id": "https://tinyland.dev/notes/f4b696d304ab8de5aa88bc47d0f066ed", + "published": "2026-04-06T22:00:00.000Z", "attributedTo": "https://tinyland.dev/@jesssullivan", - "content": "

Spotted 3 White-breasted Nuthatchs at Range Pond State Park- feeding together in the canopy.

", + "content": "

-1587 lines across 6 commits in scheduling-kit. refactor!: remove acuity-scraper adapter.

", "tag": [ { "type": "Hashtag", - "name": "#birding" - }, - { - "type": "Hashtag", - "name": "#maine" + "name": "#code" } ], - "tl:birdSighting": { - "species": "White-breasted Nuthatch", - "scientificName": "Sitta carolinensis", - "location": { - "type": "Place", - "name": "Range Pond State Park", - "latitude": 44.0667, - "longitude": -70.35 - }, - "count": 3 + "tl:codeActivity": { + "linesAdded": 5, + "linesRemoved": 1592, + "commits": 6, + "repository": "scheduling-kit", + "languages": [ + "Markdown", + "TypeScript", + "JSON" + ] } } } From 13e156dc3539abe68ef2af49b2b8b51236a32a4c Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sun, 26 Apr 2026 01:24:12 -0400 Subject: [PATCH 06/11] docs: update rt draft with generic window --- ...producible-host-probes-nix-chapel-dhall.md | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md index 7a816f5..9600cd5 100644 --- a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md +++ b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md @@ -1,13 +1,13 @@ --- title: "Characterizing a Dual-Socket BCI Server Before Claiming RT Wins" date: "2026-04-25" -description: "A draft result note for a Dell T7810 BCI server: first generic/RT host-characterization packet captured, generic repeats captured, no RT improvement claim yet." +description: "A draft result note for a Dell T7810 BCI server: first generic/RT packet captured, two generic repeat packets captured, no RT improvement claim yet." tags: ["Chapel", "Nix", "Dhall", "NUMA", "hardware", "reproducibility", "RT"] published: false slug: "reproducible-host-probes-nix-chapel-dhall" category: "hardware" source_repo: "Jesssullivan/Dell-7810" -source_path: "docs/platform/honey-rt-smi-hwlat-chapel-series-2026-04-25.md" +source_path: "docs/platform/honey-generic-host-characterization-window-2026-04-26.md" --- I've been tuning a Dell Precision T7810 as a BCI server for real-time XR work-- two Xeon E5-2630 v3 processors, 32 threads, two NUMA nodes, the kind of dual-socket Haswell-era machine that rewards you for thinking about memory topology and punishes you for ignoring it. @@ -65,9 +65,11 @@ The first paired packet exists now. It is useful, but it is not an improvement s RT was slightly slower in this single Chapel pair, and SMI activity remained nonzero on both lanes. The safe claim is narrower: the same host-characterization probe conforms on generic and RT, under the same short SMI/`hwlat` capture shape, and `honey` returned to the generic fallback afterward. -## Generic repeat series (captured) +## Generic repeat series (captured twice) -A five-sample generic repeat series is also captured. All five runs conform, but the ratio moves around enough that single-pair storytelling would be sloppy: +Two five-sample generic repeat packets are now captured. All runs conform, but the ratio moves around enough that single-pair storytelling would be sloppy. + +The first repeat packet: | Metric | Min | Max | Mean | Sample stdev | | --- | ---: | ---: | ---: | ---: | @@ -75,14 +77,22 @@ A five-sample generic repeat series is also captured. All five runs conform, but | Parallel seconds | 0.001667 | 0.002431 | 0.001956 | 0.000302 | | Characterization ratio | 8.9967x | 14.0738x | 12.3491x | 1.9463x | -The captures also record load average, which matters: the 1-minute load rose from 7.98 to 10.05 across the series. This is host characterization under lab conditions, not an idle benchmark distribution. +The second repeat packet adds longer SMI/hwlat context-- three 120-second SMI windows, three 120-second tracefs `hwlat` windows, and five more Chapel repeats: + +| Metric | Min | Max | Mean | Sample stdev | +| --- | ---: | ---: | ---: | ---: | +| Serial seconds | 0.021841 | 0.027597 | 0.023822 | 0.002590 | +| Parallel seconds | 0.001768 | 0.002382 | 0.001962 | 0.000249 | +| Characterization ratio | 9.3375x | 14.1814x | 12.2760x | 1.8093x | + +That same packet had SMI counts of 280, 279, and 279 events per 120 seconds, while tracefs `hwlat` stayed at 0 us max in all three windows. The captures also record load average, which matters. This is host characterization under lab conditions, not an idle benchmark distribution. ## The reproducibility pipeline The probe is Chapel. The reproducibility is [Nix](https://nixos.org/) (hermetic compiler sourcing) and [Dhall](https://dhall-lang.org/) (typed evidence records). One command: ```bash -just chapel-host-capture-live-save-store target=jess@honey tag=generic-2026-04-25 +just platform-host-characterization-window target=jess@honey tag=generic-repeat-2026-04-26 expect_lane=generic smi_samples=3 smi_duration=120 hwlat_duration=120 chapel_samples=5 ``` ![Chapel probe pipeline](/images/posts/chapel-probe-pipeline.svg) @@ -92,7 +102,7 @@ Every artifact-- compiler path, host context, probe output, Dhall record-- stays ## What's next - Matching RT repeat series using the same store-prebuilt Chapel path -- Longer generic and RT SMI/`hwlat` windows +- Longer RT SMI/`hwlat` windows to match the generic 120-second packet - Notes on lab load, reboot/recovery cost, and any BIOS or C-state changes - Fresh `quickchpl` PBT run for the paper-bound timing invariant claims From ccb1a40daa7409f9f6389f98c0380f2ce51e0217 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sun, 26 Apr 2026 15:36:09 -0400 Subject: [PATCH 07/11] post: stage cautionary rt chapel draft --- ...producible-host-probes-nix-chapel-dhall.md | 69 ++++++++++++-- .../posts/honey-generic-rt-repeat-packet.svg | 92 +++++++++++++++++++ 2 files changed, 154 insertions(+), 7 deletions(-) create mode 100644 static/images/posts/honey-generic-rt-repeat-packet.svg diff --git a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md index 9600cd5..26770c1 100644 --- a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md +++ b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md @@ -1,13 +1,13 @@ --- title: "Characterizing a Dual-Socket BCI Server Before Claiming RT Wins" date: "2026-04-25" -description: "A draft result note for a Dell T7810 BCI server: first generic/RT packet captured, two generic repeat packets captured, no RT improvement claim yet." +description: "A draft result note for a Dell T7810 BCI server: generic repeats captured, RT SMI/hwlat matched, RT Chapel repeat captured, no RT improvement claim." tags: ["Chapel", "Nix", "Dhall", "NUMA", "hardware", "reproducibility", "RT"] published: false slug: "reproducible-host-probes-nix-chapel-dhall" category: "hardware" source_repo: "Jesssullivan/Dell-7810" -source_path: "docs/platform/honey-generic-host-characterization-window-2026-04-26.md" +source_path: "docs/platform/honey-rt-chapel-repeat-2026-04-26.md" --- I've been tuning a Dell Precision T7810 as a BCI server for real-time XR work-- two Xeon E5-2630 v3 processors, 32 threads, two NUMA nodes, the kind of dual-socket Haswell-era machine that rewards you for thinking about memory topology and punishes you for ignoring it. @@ -87,6 +87,56 @@ The second repeat packet adds longer SMI/hwlat context-- three 120-second SMI wi That same packet had SMI counts of 280, 279, and 279 events per 120 seconds, while tracefs `hwlat` stayed at 0 us max in all three windows. The captures also record load average, which matters. This is host characterization under lab conditions, not an idle benchmark distribution. +## Matching RT window (captured) + +The matching RT-side long-window packet exists for SMI and `hwlat`, and the follow-up Chapel-only RT repeat now exists too. It is still not an improvement story. + +| Metric | Generic 120s window | RT 120s window | +| --- | ---: | ---: | +| SMI sample 1 | 280 / 120s | 279 / 120s | +| SMI sample 2 | 279 / 120s | 279 / 120s | +| SMI sample 3 | 279 / 120s | 278 / 120s | +| tracefs `hwlat` max 1 | 0 us | 2 us | +| tracefs `hwlat` max 2 | 0 us | 2 us | +| tracefs `hwlat` max 3 | 0 us | 14 us | + +That is the opposite of an RT victory lap. RT did not reduce the SMI rate in this packet, and one RT `hwlat` window crossed the 10 us checklist threshold. + +The hardened RT Chapel repeat completed five conforming samples: + +![Generic versus RT repeat packet](/images/posts/honey-generic-rt-repeat-packet.svg) + +| Metric | RT repeat | +| --- | ---: | +| Serial seconds | 0.022144-0.023715 | +| Parallel seconds | 0.001726-0.016977 | +| Characterization ratio | 1.3617x-12.8297x | +| Ratio mean | 9.3204x | +| Ratio sample stdev | 4.6220x | +| Conforms | 5 / 5 | + +The generic repeat it should be compared against had a ratio mean of 12.2760x and sample stdev of 1.8093x. The RT repeat had one severe parallel outlier: sample 2 took 16.977 ms on the parallel path and collapsed to 1.3617x. That outlier is the result, not noise to hand-wave away. + +The host returned to the saved generic kernel afterward, the generic validator passed, and `rke2-server` came back active after boot settle. + +## What would make RT worth it? + +This started as "do we need an RT kernel for the BCI/XR box?" The measured answer is narrower: the current host-characterization packet does not justify making RT the default. It does not prove RT is useless. It says the next claim has to come from a downstream deadline, not from kernel flavor. + +The Chapel result is a caution flag, not a universal law. PREEMPT_RT changes Linux by making more kernel work preemptible and by moving many interrupt handlers into scheduler-controlled threads. That can help a high-priority deadline thread. It can also perturb a mixed workload. My local packet only proves that this NUMA-aware Chapel probe got slower and more variable under this RT boot. + +So the next tests have to be specific: + +**GPU and VR frame timing**: OpenXR exposes predicted display time and display period; Monado documents frame pacing as application wake, render, compositor submit, present, and display. A useful RT claim needs missed-frame or frame-timing histograms from that pipeline. RT does not by itself fix display bandwidth, DSC, GPU throughput, or headset optics. + +**BCI and audio I/O**: This is the most plausible RT surface, but it needs period, buffer, quantum, xrun, round-trip latency, and missed-deadline evidence. If a low-buffer audio or sensor-ingest packet misses deadlines on generic and improves under RT, that is a real result. Without that packet, "RT is needed for BCI" is just a preference. + +**Buffering and application design**: Queues, backpressure, batching, timestamps, and clock-domain conversion can dominate latency even on a good kernel. If the application buffers badly, RT will not rescue the design. + +**The alternative that already exists**: `honey` already has `isolcpus`, `nohz_full`, `irqaffinity`, and `tsc=nowatchdog` applied through the `linux-xr` posture. The lower-risk next hypothesis is targeted isolation plus real-time scheduling policy for the specific audio/BCI thread, then measure whether deadlines are missed. + +The RT characterization campaign produced a defensible cautionary result: the host was tested, the result was captured, and the conclusion is bounded. The decision framework and source-grounded analysis live in the [Dell-7810 repo](https://github.com/Jesssullivan/Dell-7810/blob/main/docs/publication/rt-benefit-decision-framework-2026-04-26.md). + ## The reproducibility pipeline The probe is Chapel. The reproducibility is [Nix](https://nixos.org/) (hermetic compiler sourcing) and [Dhall](https://dhall-lang.org/) (typed evidence records). One command: @@ -101,11 +151,16 @@ Every artifact-- compiler path, host context, probe output, Dhall record-- stays ## What's next -- Matching RT repeat series using the same store-prebuilt Chapel path -- Longer RT SMI/`hwlat` windows to match the generic 120-second packet -- Notes on lab load, reboot/recovery cost, and any BIOS or C-state changes -- Fresh `quickchpl` PBT run for the paper-bound timing invariant claims +The RT host-probe question is answered for now. The next work starts on the generic lane: + +- **Targeted core isolation**: test `SCHED_FIFO` on isolated cores for audio/BCI threads and measure the actual deadline behavior +- **Audio/BCI IO packet**: period, buffer, quantum, xrun, and deadline evidence under the generic kernel with isolation tuning +- **XR frame timing**: `xrWaitFrame` / compositor timing histogram via Monado, missed-frame counts, and GPU/display mode evidence (XoxDWM-owned) +- **Fresh `quickchpl` PBT run** for the paper-bound timing invariant claims +- **Fan and enclosure work**: the T7810 thermal path and the Session 01 bench measurements are independent of RT + +The RT lane stays available if a downstream packet ever demonstrates a concrete deadline failure on the generic kernel. The burden of proof has shifted: RT needs to earn its way back in, not be assumed. -The [Dell-7810](https://github.com/Jesssullivan/Dell-7810) repo has everything: Chapel probes, Dhall records, raw captures, publication roadmap, and the claim ladder that keeps me honest. +The [Dell-7810](https://github.com/Jesssullivan/Dell-7810) repo has everything: Chapel probes, Dhall records, raw captures, publication roadmap, RT analysis, and the claim ladder that keeps me honest. -Jess diff --git a/static/images/posts/honey-generic-rt-repeat-packet.svg b/static/images/posts/honey-generic-rt-repeat-packet.svg new file mode 100644 index 0000000..e59e24b --- /dev/null +++ b/static/images/posts/honey-generic-rt-repeat-packet.svg @@ -0,0 +1,92 @@ + + + + + + +bow2_generic_rt_repeat_packet + +BoW-2 Generic/RT Repeat Packet: Cautionary Result + + +generic + + +Generic lane repeat + +Kernel: 6.19.5-7.xr.el10 + +Realtime: absent + +SMI: 280, 279, 279 / 120s + +hwlat max: 0, 0, 0 us + +Chapel samples: 5 / 5 conform + +Ratio mean: 12.2760x + +Ratio stdev: 1.8093x + +Ratio range: 9.3375x-14.1814x + + + + +claim + + +Claim boundary + +Repeated packet exists + +No RT improvement claim + +RT does not reduce SMI here + +Downstream C4 benefit still unproved + + + + +generic->claim + + +default baseline + + + +rt + + +RT lane repeat + +Kernel: 6.19.5-rt1-8.xr.el10 + +Realtime: 1 + +SMI: 279, 279, 278 / 120s + +hwlat max: 2, 2, 14 us + +Chapel samples: 5 / 5 conform + +Ratio mean: 9.3204x + +Ratio stdev: 4.6220x + +Outlier: sample 2 collapsed to 1.3617x + + + + +rt->claim + + +experimental lane + + + From ddc6adf756134eb8c3d7f1684bed50332f5bdb08 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sun, 26 Apr 2026 20:36:09 -0400 Subject: [PATCH 08/11] post: rewrite chapel/pbt host characterization draft Restructured for formal methods / compiler audience: - Leads with typed method (Chapel forall, PBT, Dhall), not RT - Actual source snippets from HostNumaProbe.chpl, TimingProofs.chpl, TestTimingProofs.chpl, TestHostNumaTiming.chpl - Nine PBT properties shown with quickchpl generators - RT as a measured aside (~15% of post), not the centerpiece - Passive links to linux-xr, DRM patches, Monado, quickchpl - CSV data and raw evidence paths linked --- ...producible-host-probes-nix-chapel-dhall.md | 294 ++++++++++++------ 1 file changed, 200 insertions(+), 94 deletions(-) diff --git a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md index 26770c1..57b7892 100644 --- a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md +++ b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md @@ -1,8 +1,8 @@ --- -title: "Characterizing a Dual-Socket BCI Server Before Claiming RT Wins" +title: "Typed Host Characterization with Chapel, PBT, and Dhall" date: "2026-04-25" -description: "A draft result note for a Dell T7810 BCI server: generic repeats captured, RT SMI/hwlat matched, RT Chapel repeat captured, no RT improvement claim." -tags: ["Chapel", "Nix", "Dhall", "NUMA", "hardware", "reproducibility", "RT"] +description: "Using Chapel's forall, property-based testing, and Dhall records to characterize a dual-socket Xeon before claiming anything about kernel scheduling." +tags: ["Chapel", "Nix", "Dhall", "NUMA", "hardware", "reproducibility", "RT", "PBT"] published: false slug: "reproducible-host-probes-nix-chapel-dhall" category: "hardware" @@ -10,34 +10,59 @@ source_repo: "Jesssullivan/Dell-7810" source_path: "docs/platform/honey-rt-chapel-repeat-2026-04-26.md" --- -I've been tuning a Dell Precision T7810 as a BCI server for real-time XR work-- two Xeon E5-2630 v3 processors, 32 threads, two NUMA nodes, the kind of dual-socket Haswell-era machine that rewards you for thinking about memory topology and punishes you for ignoring it. +The machine is a Dell Precision T7810 -- two Xeon E5-2630 v3 (Haswell), 32 threads, two NUMA nodes. It runs a BCI/XR stack: [OpenXR](https://registry.khronos.org/OpenXR/specs/1.1/man/html/XrFrameState.html) goggles via [Monado](https://monado.freedesktop.org/getting-started.html), an AMD RX 9070 XT, audio I/O, and an RKE2 cluster. Before claiming anything about kernel scheduling, I wanted a typed, repeatable characterization of the host's parallel behavior. -The goal is to characterize this host's parallel and scheduling behavior across kernel configurations-- generic lane versus PREEMPT_RT-- so I can make honest claims about what RT actually buys us on this hardware before building the XR compositor on top of it. +The tool choices follow from the problem shape: -![It needs Chapel Lang](/images/posts/chapel-lang-meme.webp) +- [Chapel](https://chapel-lang.org/) for the probe (first-class `forall` parallelism, NUMA-aware data distribution) +- [quickchpl](https://github.com/nicholasTng/quickchpl) for property-based testing of the timing invariants +- [Dhall](https://dhall-lang.org/) for typed evidence records +- [Nix](https://nixos.org/) for hermetic compiler sourcing -## The machine +The [Dell-7810](https://github.com/Jesssullivan/Dell-7810) repo has everything. -`honey` is a Dell Precision T7810 running Rocky Linux with a heavily tuned kernel cmdline-- `tsc=nowatchdog`, `nohz_full`, `isolcpus`, `irqaffinity`, the works. Two kernel lanes are installed: +## The probe -- **Generic**: `6.19.5-7.xr.el10`, `PREEMPT_DYNAMIC` -- the current baseline -- **RT**: `6.19.5-rt1-8.xr.el10`, `PREEMPT_RT` -- booted once for a bounded packet, then returned to generic +[`HostNumaProbe.chpl`](https://github.com/Jesssullivan/Dell-7810/blob/main/analysis/examples/HostNumaProbe.chpl) is ~94 lines. It partitions synthetic channel data across NUMA nodes, then measures serial versus parallel reduction: -The question isn't whether RT is faster. The question is: what does this host's parallel behavior look like on each lane, measured the same way, with the same probe, captured in a format I can cite in a paper? +```chapel +use Time; +use HostNumaTiming; +use TimingProofs; -## The probe +config const numChannels = 100; +config const numSamples = 250 * 10; +config const sampleRateHz = 250; +config const partitions = 2; +``` + +The `config const` declarations are Chapel's mechanism for runtime-configurable parameters -- compile once, vary at invocation. `250 * 10` samples at 250 Hz gives a 10-second synthetic EEG window. + +Data generation uses `forall` to distribute across cores: + +```chapel +var data: [0.. Date: Sun, 26 Apr 2026 20:41:50 -0400 Subject: [PATCH 09/11] post: add mermaid diagrams and skeleton compilables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Module dependency graph (HostNumaProbe → TimingProofs → HostNumaTiming) - PBT property coverage map (9 properties → 4 functions) - Pipeline flowchart (just → Nix → chpl → capture → Dhall) - Per-sample ratio xychart with actual data from captures - Per-sample parallel time xychart showing RT outlier - Skeleton compile commands (nix develop + chpl + test suite) --- ...producible-host-probes-nix-chapel-dhall.md | 97 ++++++++++++++++++- 1 file changed, 93 insertions(+), 4 deletions(-) diff --git a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md index 57b7892..e9f9e8a 100644 --- a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md +++ b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md @@ -21,6 +21,17 @@ The tool choices follow from the problem shape: The [Dell-7810](https://github.com/Jesssullivan/Dell-7810) repo has everything. +```mermaid +graph LR + HostNumaProbe --> HostNumaTiming + HostNumaProbe --> TimingProofs + TimingProofs --> HostNumaTiming + TestTimingProofs --> TimingProofs + TestHostNumaTiming --> HostNumaTiming + TestTimingProofs --> quickchpl + TestHostNumaTiming --> quickchpl +``` + ## The probe [`HostNumaProbe.chpl`](https://github.com/Jesssullivan/Dell-7810/blob/main/analysis/examples/HostNumaProbe.chpl) is ~94 lines. It partitions synthetic channel data across NUMA nodes, then measures serial versus parallel reduction: @@ -201,6 +212,27 @@ var partitionContiguous = property("partitions are contiguous and exact", `coversExactly` checks that partitions are contiguous, non-negative, and sum to the total. Together with coverage, these two properties establish that `partitionChannels` is a correct partition function for any channel count and group count in range. +```mermaid +graph TB + subgraph "TimingProofs (4 properties)" + P1["round-trip: timestamps ↔ intervals"] + P2["exact budget: zero-jitter ⊢ conforms"] + P3["bounded jitter: ε-jitter ⊢ conforms"] + P4["scaling: λ·intervals, λ·budget ⊢ conforms"] + end + subgraph "HostNumaTiming (5 properties)" + P5["coverage: Σ partition = total"] + P6["contiguous: partitions exact + ordered"] + P7["deterministic: signal(n,s) = signal(n,s)"] + P8["ordered: min ≤ mean ≤ max"] + P9["scaling: λ·samples → λ·stats"] + end + P1 & P2 & P3 & P4 --> TC["timingConforms"] + P5 & P6 --> PC["partitionChannels"] + P7 --> SS["syntheticSignal"] + P8 & P9 --> SM["summarizeSamples"] +``` + ## Dhall projection Each probe run is projected into a typed [Dhall](https://dhall-lang.org/) record via [`ChapelHostProbeRun.dhall`](https://github.com/Jesssullivan/Dell-7810/blob/main/dhall/types/ChapelHostProbeRun.dhall). The type carries metadata (date, host, compiler, kernel), configuration (locale count, channels, samples, sample rate, partitions), results (timing conforms, jitter stats), and performance (serial time, parallel time, speedup ratio). A separate [`KernelValidationRun.dhall`](https://github.com/Jesssullivan/Dell-7810/blob/main/dhall/types/KernelValidationRun.dhall) type covers kernel validation captures. @@ -218,7 +250,42 @@ just platform-host-characterization-window \ This captures SMI counts, tracefs `hwlat` windows, five Chapel probe runs, and projects each into a Dhall record. The Nix derivation for [Chapel 2.8.0](https://github.com/Jesssullivan/Dell-7810/blob/main/nix/packages/chapel.nix) pins the compiler, task model (`qthreads`), locale model (`flat`), and LLVM version (18). -![Chapel probe pipeline](/images/posts/chapel-probe-pipeline.svg) +```mermaid +flowchart TD + J["just platform-host-characterization-window"] --> SMI["smi-validate (3× 120s windows)"] + J --> HW["tracefs hwlat (3× 120s windows)"] + J --> CH["capture-chapel-host-probe-series (5 samples)"] + CH --> NX["Nix: Chapel 2.8.0 + qthreads + flat locale + LLVM 18"] + NX --> BIN["chpl HostNumaProbe.chpl -M src"] + BIN --> RUN["serial + forall timing on target"] + RUN --> TXT["raw capture .txt per sample"] + TXT --> PRJ["project-chapel-host-probe-dhall"] + PRJ --> DH["typed Dhall record per sample"] + SMI --> EV["evidence packet"] + HW --> EV + DH --> EV +``` + +### Try it + +```bash +# Enter the Nix dev shell (pins Chapel 2.8.0, qthreads, LLVM 18) +nix develop github:Jesssullivan/Dell-7810 + +# Compile and run the probe +chpl analysis/examples/HostNumaProbe.chpl \ + -M analysis/src -o /tmp/HostNumaProbe +/tmp/HostNumaProbe --numChannels=100 --numSamples=2500 + +# Run the property-based test suites (9 properties, ~1000 iterations) +chpl analysis/test/TestTimingProofs.chpl \ + -M analysis/src -o /tmp/TestTimingProofs +/tmp/TestTimingProofs + +chpl analysis/test/TestHostNumaTiming.chpl \ + -M analysis/src -o /tmp/TestHostNumaTiming +/tmp/TestHostNumaTiming +``` ## Measured results @@ -241,15 +308,37 @@ SMI: 280, 279, 279 per 120s (~2.3/s). Tracefs `hwlat`: 0 us max across all windo ### RT repeat (five samples) -![Generic versus RT repeat packet](/images/posts/honey-generic-rt-repeat-packet.svg) - | Metric | Min | Max | Mean | Stdev | | --- | ---: | ---: | ---: | ---: | | Serial | 0.022144s | 0.023715s | 0.022862s | 0.000690s | | Parallel | 0.001726s | 0.016977s | 0.005033s | 0.006683s | | Ratio | 1.3617x | 12.8297x | 9.3204x | 4.6220x | -SMI: 279, 279, 278 per 120s (unchanged). Tracefs `hwlat`: 2, 2, 14 us (one threshold crossing). All five samples conform to the timing predicate, but sample 2 collapsed to 1.3617x -- the parallel path took 16.977ms instead of the typical ~1.8ms. That outlier is the result, not noise. +SMI: 279, 279, 278 per 120s (unchanged). Tracefs `hwlat`: 2, 2, 14 us (one threshold crossing). All five samples conform to the timing predicate, but sample 2 collapsed to 1.3617x -- the parallel path took 16.977ms instead of the typical ~1.8ms. + +### Per-sample comparison + +```mermaid +xychart-beta + title "Characterization Ratio (serial / parallel) by Sample" + x-axis ["S1", "S2", "S3", "S4", "S5"] + y-axis "Ratio" 0 --> 16 + bar "Generic" [13.18, 14.18, 12.33, 12.35, 9.34] + bar "RT" [12.24, 1.36, 9.87, 10.30, 12.83] +``` + +The generic lane holds between 9x and 14x. The RT lane's sample 2 is the story: 1.36x while every other sample is 9x+. That outlier drove the RT parallel mean to 5.033ms (generic: 1.962ms) and inflated stdev from 1.81x to 4.62x. + +```mermaid +xychart-beta + title "Parallel Reduction Time (ms) by Sample" + x-axis ["S1", "S2", "S3", "S4", "S5"] + y-axis "Parallel ms" 0 --> 18 + bar "Generic" [1.93, 1.95, 1.78, 1.77, 2.38] + bar "RT" [1.81, 16.98, 2.35, 2.30, 1.73] +``` + +Serial times (not shown) are nearly identical across both lanes (~22-27ms). The parallel path is where PREEMPT_RT's sleeping-lock conversion costs show up. [Raw CSV](https://github.com/Jesssullivan/Dell-7810/blob/main/docs/publication/data/honey-generic-rt-repeat-packet-2026-04-26.csv). From 87f428a9ffcf0a204e9149988278179d225d411a Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sun, 26 Apr 2026 21:13:00 -0400 Subject: [PATCH 10/11] chore: cleanup, add meme Updated the title and description for clarity and added more context to the content. Enhanced the explanations of tools and methodologies used in the post. --- ...producible-host-probes-nix-chapel-dhall.md | 72 +++++++++---------- 1 file changed, 32 insertions(+), 40 deletions(-) diff --git a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md index e9f9e8a..92843ca 100644 --- a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md +++ b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md @@ -1,7 +1,7 @@ --- -title: "Typed Host Characterization with Chapel, PBT, and Dhall" +title: "Host Characterization with Chapel, Fancy Testing & Dhall" date: "2026-04-25" -description: "Using Chapel's forall, property-based testing, and Dhall records to characterize a dual-socket Xeon before claiming anything about kernel scheduling." +description: "Using Chapel's forall, my own property-based testing library and Gabby's Dhall lang for characterization records on a dual-socket Xeon machine, lets do some awesome kernel scheduling analysis" tags: ["Chapel", "Nix", "Dhall", "NUMA", "hardware", "reproducibility", "RT", "PBT"] published: false slug: "reproducible-host-probes-nix-chapel-dhall" @@ -10,16 +10,20 @@ source_repo: "Jesssullivan/Dell-7810" source_path: "docs/platform/honey-rt-chapel-repeat-2026-04-26.md" --- -The machine is a Dell Precision T7810 -- two Xeon E5-2630 v3 (Haswell), 32 threads, two NUMA nodes. It runs a BCI/XR stack: [OpenXR](https://registry.khronos.org/OpenXR/specs/1.1/man/html/XrFrameState.html) goggles via [Monado](https://monado.freedesktop.org/getting-started.html), an AMD RX 9070 XT, audio I/O, and an RKE2 cluster. Before claiming anything about kernel scheduling, I wanted a typed, repeatable characterization of the host's parallel behavior. + +As part of my descent into multiprocessor kernel timing madness and claiming anything about kernel scheduling, I wanted a typed, repeatable characterization of the host's parallel behavior. + The tool choices follow from the problem shape: -- [Chapel](https://chapel-lang.org/) for the probe (first-class `forall` parallelism, NUMA-aware data distribution) -- [quickchpl](https://github.com/nicholasTng/quickchpl) for property-based testing of the timing invariants -- [Dhall](https://dhall-lang.org/) for typed evidence records -- [Nix](https://nixos.org/) for hermetic compiler sourcing +- [Chapel](https://chapel-lang.org/) for the probe (first-class `forall` parallelism, NUMA-aware data distribution)) +- [quickchpl](https://github.com/jesssullivan/quickchpl) Hey look, this cool person named `Jess Sullivan` wrote this handy library for property-based testing in Chapel language, how else would I structure timing invariants? +- [Dhall](https://dhall-lang.org/) for typed evidence records (go read [Gabby's blog](https://haskellforall.com/)) +- [Nix](https://nixos.org/) for hermetic compiler sourcing, of course ^w^ + +![It needs Chapel Lang](/images/posts/chapel-lang-meme.webp) + -The [Dell-7810](https://github.com/Jesssullivan/Dell-7810) repo has everything. ```mermaid graph LR @@ -32,10 +36,15 @@ graph LR TestHostNumaTiming --> quickchpl ``` -## The probe +## Probing + + [`HostNumaProbe.chpl`](https://github.com/Jesssullivan/Dell-7810/blob/main/analysis/examples/HostNumaProbe.chpl) is ~94 lines. It partitions synthetic channel data across NUMA nodes, then measures serial versus parallel reduction: + + + ```chapel use Time; use HostNumaTiming; @@ -142,9 +151,7 @@ proc timingConforms(intervals: list(real), budget: TimingBudget): bool { This is the kind of predicate that benefits from PBT: the `1e-12` epsilon, the edge cases around empty intervals and negative budgets, the interaction between max-deviation and worst-case constraints. -## Property-based testing - -Nine properties across two test files, using [quickchpl](https://github.com/nicholasTng/quickchpl) (a QuickCheck-style PBT library for Chapel). From [`TestTimingProofs.chpl`](https://github.com/Jesssullivan/Dell-7810/blob/main/analysis/test/TestTimingProofs.chpl): +## Property-based testing for greatness ```chapel use quickchpl; @@ -185,7 +192,7 @@ var scalingInvariant = property("scaling intervals and budget preserves conforma }); ``` -If `timingConforms(intervals, budget)` holds, then scaling both the intervals and the budget by the same positive factor should preserve conformance. This catches unit-conversion bugs and numerical edge cases in the epsilon handling. +If `timingConforms(intervals, budget)` holds, then scaling both the intervals and the budget by the same positive factor should preserve conformance. This catches unit-conversion bugs and numerical edge cases in the epsilon handling, which is terrific 👍 From [`TestHostNumaTiming.chpl`](https://github.com/Jesssullivan/Dell-7810/blob/main/analysis/test/TestHostNumaTiming.chpl), the partition properties: @@ -233,7 +240,7 @@ graph TB P8 & P9 --> SM["summarizeSamples"] ``` -## Dhall projection +## Projection for cleanliness Each probe run is projected into a typed [Dhall](https://dhall-lang.org/) record via [`ChapelHostProbeRun.dhall`](https://github.com/Jesssullivan/Dell-7810/blob/main/dhall/types/ChapelHostProbeRun.dhall). The type carries metadata (date, host, compiler, kernel), configuration (locale count, channels, samples, sample rate, partitions), results (timing conforms, jitter stats), and performance (serial time, parallel time, speedup ratio). A separate [`KernelValidationRun.dhall`](https://github.com/Jesssullivan/Dell-7810/blob/main/dhall/types/KernelValidationRun.dhall) type covers kernel validation captures. @@ -266,30 +273,10 @@ flowchart TD DH --> EV ``` -### Try it -```bash -# Enter the Nix dev shell (pins Chapel 2.8.0, qthreads, LLVM 18) -nix develop github:Jesssullivan/Dell-7810 - -# Compile and run the probe -chpl analysis/examples/HostNumaProbe.chpl \ - -M analysis/src -o /tmp/HostNumaProbe -/tmp/HostNumaProbe --numChannels=100 --numSamples=2500 - -# Run the property-based test suites (9 properties, ~1000 iterations) -chpl analysis/test/TestTimingProofs.chpl \ - -M analysis/src -o /tmp/TestTimingProofs -/tmp/TestTimingProofs - -chpl analysis/test/TestHostNumaTiming.chpl \ - -M analysis/src -o /tmp/TestHostNumaTiming -/tmp/TestHostNumaTiming -``` +## Measurements; kinda meh but is repeatable; without this -## Measured results - -The host runs two kernel lanes from [linux-xr](https://github.com/tinyland-inc/linux-xr) (a Rocky 10 kernel carry with [DRM patches](https://gitlab.freedesktop.org/drm/misc/kernel.git) for the Bigscreen Beyond headset): +The host runs two kernel lanes from [linux-xr](https://github.com/tinyland-inc/linux-xr) (my Rocky 10 kernel carry with [DRM patches](https://gitlab.freedesktop.org/drm/misc/kernel.git) and a variety of other stuff for the Bigscreen Beyond headset and related toys): - **Generic**: `6.19.5-7.xr.el10` (`PREEMPT_DYNAMIC`) - **RT**: `6.19.5-rt1-8.xr.el10` (`PREEMPT_RT`) @@ -346,16 +333,21 @@ Serial times (not shown) are nearly identical across both lanes (~22-27ms). The PREEMPT_RT converts spinlocks to sleeping mutexes and threads interrupt handlers. The parallel degradation (serial unchanged, parallel slower and more variable) is the expected cost of that conversion on a NUMA-aware `forall` workload. The [RT necessity analysis](https://github.com/Jesssullivan/Dell-7810/blob/main/docs/research/rt-necessity-analysis-2026-04-26.md) in the repo has the full reasoning. -RT is still available as insurance for specific deadline-sensitive paths -- audio buffer underruns at low sample counts, or BCI callback timing if we ever need sub-millisecond guarantees. The [linux-xr](https://github.com/tinyland-inc/linux-xr) kernel carries both lanes, and the host can one-shot boot into RT and return to generic with a validated fallback. But the current evidence says the generic lane with `isolcpus` + `SCHED_FIFO` is the stronger default for a mixed GPU + audio + Chapel + Kubernetes workload. +RT is still available as insurance for specific deadline-sensitive paths -- audio buffer underruns at low sample counts, or BCI callback timing if we ever need sub-millisecond guarantees. The [linux-xr](https://github.com/tinyland-inc/linux-xr) kernel carries both lanes, and the host can one-shot boot into RT and return to generic with a validated fallback. But the current evidence says the generic lane with `isolcpus` + `SCHED_FIFO` is the stronger default for a mixed GPU + audio + Chapel + Kubernetes workload. -## What's next +## What's next for me and the Dell ^w^ - **Targeted isolation**: `SCHED_FIFO` on isolated cores for audio/BCI threads, then measure actual deadline behavior on the generic lane +- **publish and manufacture the Dell hardware mods**: at somepoint I'll get around to this, still cleaning up loose ends - **Audio/BCI I/O packet**: period, buffer, quantum, xrun evidence -- the real latency-sensitive workload, not a proxy - **XR frame timing**: `xrWaitFrame` histograms via Monado (this is [XoxDWM](https://github.com/Jesssullivan/XoxdWM)-owned, not Dell) -- **Fresh quickchpl run**: the nine properties need a current pass for paper citation +- **Fresh quickchpl run**: the nine properties need a current pass for paper citation, ofc - **Fan and enclosure**: the T7810 thermal path is [its own workstream](https://github.com/Jesssullivan/Dell-7810/blob/main/docs/research/t7810-fan-and-airflow-prior-art-2026-04-22.md) -The RT lane stays available. The burden of proof has shifted: a downstream deadline failure on generic would justify another RT packet. Until then, the characterization campaign produced what it was supposed to -- a measured, typed, reproducible answer. +--- + +The [Dell-7810](https://github.com/Jesssullivan/Dell-7810) repo which may or may not be public at the time of reading contains hardware specifics, as well as my OpenSCAD drawings and measurements for the physical modification work. To recap, the Dell 7810 itself has two Xeon E5-2630 v3 (Haswell), 32 threads, two NUMA nodes. It is, as described before, considerably hacked up- (running two power supplies at ~2kw mean draw, an AMD RX 9070 XT, a few hundred channels 96khz AD/DA I/O, a NUT power monitor and an RKE2 cluster) as well as hosting a wide variety of BCI/XR experiments (Open BCI, ganglion, mouth trackers, eye trackers) along with [OpenXR](https://registry.khronos.org/OpenXR/specs/1.1/man/html/XrFrameState.html), BS2e goggles, my special linux-xr kernel iterations, the `xoxdwm` stack, [Monado](https://monado.freedesktop.org/getting-started.html), just silly girlie things. ^w^ + +Cheers all and merry springtime, -Jess From 5fbfcd782d59890a3670164b29ec89f4dda17e56 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sun, 26 Apr 2026 21:14:08 -0400 Subject: [PATCH 11/11] post: publish chapel/pbt host characterization with featured image --- .../2026-04-25-reproducible-host-probes-nix-chapel-dhall.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md index 92843ca..5fef51f 100644 --- a/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md +++ b/src/posts/2026-04-25-reproducible-host-probes-nix-chapel-dhall.md @@ -3,9 +3,10 @@ title: "Host Characterization with Chapel, Fancy Testing & Dhall" date: "2026-04-25" description: "Using Chapel's forall, my own property-based testing library and Gabby's Dhall lang for characterization records on a dual-socket Xeon machine, lets do some awesome kernel scheduling analysis" tags: ["Chapel", "Nix", "Dhall", "NUMA", "hardware", "reproducibility", "RT", "PBT"] -published: false +published: true slug: "reproducible-host-probes-nix-chapel-dhall" category: "hardware" +feature_image: "/images/posts/chapel-lang-meme.webp" source_repo: "Jesssullivan/Dell-7810" source_path: "docs/platform/honey-rt-chapel-repeat-2026-04-26.md" ---