Daily Happiness
Mar. 3rd, 2026 09:13 pmIf anyone has recs for ergo mice similar to the Sculpt in shape, let me know! It seems most ergo mice are more like the Lift in shape.
2. Molly looks so majestic!


Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d6710db7d9e0dde93fc1156a03f8627ffe801625 https://github.com/dreamwidth/dreamwidth/commit/d6710db7d9e0dde93fc1156a03f8627ffe801625 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-03 (Tue, 03 Mar 2026)
Changed paths: M .devcontainer/Dockerfile M .devcontainer/setup.sh A src/devtool/go.mod A src/devtool/go.sum A src/devtool/internal/proc/starman.go A src/devtool/internal/tailer/tailer.go A src/devtool/internal/ui/app.go A src/devtool/internal/ui/keys.go A src/devtool/internal/ui/logpane.go A src/devtool/internal/ui/status.go A src/devtool/internal/ui/styles.go A src/devtool/main.go
Log Message:
Add devtool TUI for devcontainer development workflow
Bubble Tea dashboard (same patterns as dwtool) that monitors and controls the dev environment from a single terminal:
The devcontainer Dockerfile installs Go and setup.sh builds devtool into /usr/local/bin on container creation so it's immediately available.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
Commit: dd7814d468d7543549eab99779c4ca5062c69e66 https://github.com/dreamwidth/dreamwidth/commit/dd7814d468d7543549eab99779c4ca5062c69e66 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-03 (Tue, 03 Mar 2026)
Changed paths: M .devcontainer/Dockerfile M .devcontainer/devcontainer.json M .devcontainer/setup.sh M src/devtool/internal/ui/app.go M src/devtool/internal/ui/keys.go
Log Message:
Persist MySQL across container rebuilds; add update-db and texttool to devtool
Use a Docker named volume for /var/lib/mysql so schema data survives container rebuilds. Pre-baked MySQL data is saved to /opt/dreamwidth-mysql/ in the image and seeded into empty volumes on first run.
Add keybindings for update-db (u) and texttool load (x) to the devtool TUI.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
Commit: e882f36d7986d224b3e68ed8e403cd165eadde06 https://github.com/dreamwidth/dreamwidth/commit/e882f36d7986d224b3e68ed8e403cd165eadde06 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-03 (Tue, 03 Mar 2026)
Changed paths: M .github/workflows/devcontainer-build.yml
Log Message:
Trigger devcontainer image rebuild on any .devcontainer/ change
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
Compare: https://github.com/dreamwidth/dreamwidth/compare/b34ffa15c1dd...e882f36d7986
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications




Here's the plan: every Friday, let's recommend some people and/or communities to follow on Dreamwidth. That's it. No complicated rules, no "pass this on to 7.328 friends or your cat will die".
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: b34ffa15c1ddbf033ec3bdd48681425046ee8201 https://github.com/dreamwidth/dreamwidth/commit/b34ffa15c1ddbf033ec3bdd48681425046ee8201 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-26 (Thu, 26 Feb 2026)
Changed paths: M src/jbackup/jbackup.pl
Log Message:
Fix jbackup cookie lost on redirect to www subdomain
LWP::UserAgent drops manually-set Cookie headers when following redirects (e.g. dreamwidth.org -> www.dreamwidth.org). Use a proper cookie jar so the ljsession cookie survives redirects.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: dcb3dfdd7b9e4b01f62b7546589f33945ab51fe7 https://github.com/dreamwidth/dreamwidth/commit/dcb3dfdd7b9e4b01f62b7546589f33945ab51fe7 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths: R .github/workflows/tasks/worker-import-eraser: idle-service.json
Log Message:
Remove bogus task file
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d00724c9d10284c57382e88b10c6c16f94b04c30 https://github.com/dreamwidth/dreamwidth/commit/d00724c9d10284c57382e88b10c6c16f94b04c30 Author: Mark Smith mark@qq.is Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths: M cgi-bin/Apache/LiveJournal.pm M cgi-bin/LJ/Protocol.pm M t/plack-request.t
Log Message:
Move LJ::Protocol::xmlrpc_method out of Apache/LiveJournal.pm
xmlrpc_method was defined in a package LJ::Protocol block at the
bottom of Apache/LiveJournal.pm, which is never loaded under Plack.
Move it into LJ/Protocol.pm so XMLRPC works under both servers.
The test now verifies the full getchallenge round-trip: transport layer works, response is not a SOAP fault, and the expected fields are present.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 4c1ff815597e0ee4b0fbdcc9b18c44a6ad46da86 https://github.com/dreamwidth/dreamwidth/commit/4c1ff815597e0ee4b0fbdcc9b18c44a6ad46da86 Author: Mark Smith mark@qq.is Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths: M bin/tidyall M cgi-bin/DW/Controller/Inbox.pm M doc/dependencies-cpanm M t/02-tidy.t
Log Message:
Run tidyall with 10 parallel workers
Add -j 10 to both the bin/tidyall wrapper and the t/02-tidy.t test to parallelize Perl::Tidy checks across 10 forked workers. Also adds Parallel::ForkManager to dependencies-cpanm and picks up a tidyall formatting fix in DW::Controller::Inbox.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: f5b688f23afc0f4fd15e380e560941a5489b6a39 https://github.com/dreamwidth/dreamwidth/commit/f5b688f23afc0f4fd15e380e560941a5489b6a39 Author: alierak alierak@gmail.com Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths: M cgi-bin/DW/Controller/Inbox.pm M htdocs/inbox/index.bml
Log Message:
define inbox view and cur_folder consistently for mark read / delete all actions (#3526)
Co-authored-by: Mark Smith mark@dreamwidth.org
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 17fb5f6dc0f31248f64f5eb0d12b61c239f9bb47 https://github.com/dreamwidth/dreamwidth/commit/17fb5f6dc0f31248f64f5eb0d12b61c239f9bb47 Author: Joshua Barrett jjbarr@ptnote.dev Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths: M cgi-bin/DW/External/Site.pm A cgi-bin/DW/External/Site/Atproto.pm A cgi-bin/DW/External/Site/Bluesky.pm A cgi-bin/DW/External/Site/BlueskySocial.pm M cgi-bin/LJ/CleanHTML.pm M t/cleaner-markdown.t
Log Message:
Add support for
mentions and [Unknown site tag] mentions for bluesky. (#3524)
Bluesky usernames are FQDNs, and prior to now the [Bad username or site: user @ site] syntax has
used the first dot to indicate where the username ends. Since this won't
work for services where the username is the domain name, a special case
has been introduced: if the final dotted segment in an
mention is
shorthand for an atproto-based site, everything else is assumed to be a
username. This does introduce an irregularity:
user
works to reference the bluesky user
user, but
user does NOT. This is done to prevent the mention
as a whole from being a valid domain name (and because future atproto
sites may eventually allow usernames that make such constructs
ambiguous).
In addition to "bsky.app" and the "bsky" shorthand being added,
"bsky.social" has been added to make referencing users with the default
domain bluesky uses easier. An "Atproto" site,
DW::External::Site::Atproto, as also been added as a place to store
common code. It is complete and links to an "account overview" page
listing services associated with the account, but has not yet been
exposed to users.
At present, bluesky accounts are linked to by username, not be DID. This may be subject to future change.
CODE TOUR: It's now possible to reference bluesky accounts with
@mentions! @username.bsky.social works the way you would expect.
If a user has a custom username, you can suffix it with .bsky to make
the link work (eg, @user.example.com.bsky). <user> tags also work
as you would expect (<user name=user.bsky.social site=bsky.app>,
<user name=user site=bsky.social>, and
<user name=user.example.com site=bsky.app> all do what you expect).
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: bf0a8ec11e23acda60dfc8dc68d9fca2ca753c77 https://github.com/dreamwidth/dreamwidth/commit/bf0a8ec11e23acda60dfc8dc68d9fca2ca753c77 Author: Mark Smith mark@qq.is Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths: M cgi-bin/DW/Request/Plack.pm A t/plack-request.t
Log Message:
Add missing headers_in and status_line methods to DW::Request::Plack
DW::Request::Plack was missing headers_in() and status_line(), which are implemented by both DW::Request::Apache2 and DW::Request::Standard. This caused XMLRPCTransport to crash under Plack with "Can't locate object method 'headers_in'". Also adds a comprehensive test suite for DW::Request::Plack covering all methods in the module.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

We've seen some questions lately about AI and how it relates to Dreamwidth, especially around scraping and training. Rather than answer piecemeal, I wanted to talk through how
denise and I are thinking about this and try to be explicit about some things.
Dreamwidth is a user-supported service. We don't build the service around monetizing user data, and that informs how we approach AI just like it informs everything else we do.
Dreamwidth does not and will not sell, license, or otherwise provide user content for AI training. We have not and will not enter into data-access agreements for AI training purposes.
We will continue taking reasonable technical steps to discourage large-scale automated scraping, including known AI crawlers, where it is practical to do so. No public website can prevent scraping with absolute certainty, but we will keep doing what we reasonably can on our side.
Dreamwidth will not introduce AI features (and we have no current intention of doing so) that use or process user content without a public discussion with the community first.
We're only phrasing it like this because we can't predict the future and who knows what will be possible and available in five or ten years, but right now there's nothing we can see wanting to add.
If that ever changed, the conversation would happen openly before any decisions were made.
Keeping Dreamwidth usable means dealing with things like spam and abuse, and that sometimes requires automated admin tools to be more efficient or effective.
We are not currently using AI-driven systems for moderation or similar decisions.
If we ever decide that an AI-based tool would help address a site admin problem like spam, we will explain what we are doing and how it works (and ask for feedback!) before putting it into use. Any such tools would exist only to make it easier and more efficient for us to do the work of running the site.
Dreamwidth is an open-source project, and contributors use a variety of tools and workflows.
Contributors may choose whether or not to use AI-assisted tools when writing or reviewing code. Dreamwidth will not require contributors to use AI tools, and we will not reject contributions solely because AI-assisted tools were used.
For developers: if you use any AI-assisted development tools for generating a pull request or code contribution, we expect you to thoroughly and carefully review the output of those tools before including them in a pull request. We would ask the community not to submit pull requests from automated agents with no human intervention in the submission process.
I think it's important and I want to be able to review, understand, and maintain any contributions effectively, and that means humans are involved and making sure we're writing code for humans to work with, even if AI was involved.
Important note: this applies to code only. We expect any submitted images or artwork (such as for styles, mood themes, or anything else) to be the work of a human artist.
And to be very explicit, any AI-assisted development does not involve access to Dreamwidth posts or personal content.
Oh, and we'll probably mention this (or a subset of this that isn't code related) in an upcoming
dw_news post, but will defer to
denise on that!