~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

Records in spaces are read as written, with no public-form references left

Merged
Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:remove-short-form

What changes

The two modules that moved public-form references in space records to their full form are gone: crates/knotless/src/short_form.rs and crates/knotless-serve/src/index/short_form.rs. Their callers go too:

  • the client's and the runner's rewrite on a first write into a space;
  • the client's resolving on read, and Remote::list_as_written;
  • the index's move when it opens, its count of what's left, and its short_form tables in the schema.

A record from a space is read and indexed as written. What people type is still read by aturi::resolve.

The unreleased changeset for the migration goes with it. docs/design/access.md says records in spaces name references in full.

Why

The modules were meant to go once nothing was left to move, and nothing is. On knotless.dev at e9fb9a31, the appview's short_form table holds 0 rows. Its count fell from 14 once the two authors' records were rewritten: 2 by the infra runner and 13 references through MCP. All of them belonged to the owner's accounts.

How it was checked

The serve test records_in_a_space_are_kept_by_their_full_uri now writes its references in full and checks they're kept so. The migration's own library test is removed with it. Builds and tests are left to CI.

Shortcomings

The empty short_form and short_form_moved tables stay in knotless.dev's index.db, since nothing creates or reads them now. Dropping them by hand is a one-line statement. Clients' short-form-moved cache files stay too, unread.

Changeset: none

🤖 Generated with Claude Code

Approved

This removes the two short_form modules and every caller of them. Those are the client's and runner's first-write rewrite, the read-side resolving and Remote::list_as_written, and the index's startup move and its tables. It also removes the changeset, and docs/design/access.md now says records in spaces name references in full.

A search of the branch finds no remaining short_form or list_as_written, so nothing is left dangling. The deploy leaves the old empty tables in place, which is harmless, and the description says so.

Changeset: none is acceptable. The only client behaviour it removes is a one-time rewrite that your numbers say has nothing left to do. The deleted changeset was unreleased, so there is nothing to retract.

check, test, docs and e2e were still queued or running when I looked, and the repo's 100% coverage gate and clippy's unused-code lints are the likeliest ways this fails. Please confirm they pass before you merge.

Merged as 085e124