Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueImportant Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Lunaria Status Overview🌕 This pull request will trigger status changes. Learn moreBy default, every PR changing files present in the Lunaria configuration's You can change this by adding one of the keywords present in the Tracked Files
Warnings reference
|
❌ 1 Tests Failed:
View the top 1 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
83dc5a3 to
a4de3dd
Compare
a4de3dd to
ecef573
Compare
ecef573 to
5956197
Compare
5956197 to
20cc985
Compare
20cc985 to
bc7d9b5
Compare
bc7d9b5 to
8a24415
Compare
8a24415 to
b2e034f
Compare
b2e034f to
e6b5bb2
Compare
6802449 to
0b6479c
Compare
0b6479c to
d61a138
Compare
d61a138 to
7f06ed7
Compare
7f06ed7 to
bc93de4
Compare
bc93de4 to
5113bdb
Compare
5113bdb to
cf7c4b4
Compare
Throws on anything but a 404, so a registry outage isn't cached as "doesn't exist".
parseSubjectRef classifies an item as a package URL or a collection AT-URI. The body schemas are stricter than the lexicon: npmx.dev only writes items it can render.
Records come from the owner's PDS and are validated on read, since any client can write them. Package items are checked against the registry, and included collections resolve to summaries without being expanded.
Writes go to the signed-in user's PDS through their OAuth session, which now asks for the collections scope. Edits are read-modify-write with swapRecord, so a concurrent change fails with 409 instead of being clobbered. Fields other apps added are kept. Our own writes update the record cache, so the next read sees them.
cf7c4b4 to
bd3c8dc
Compare
/collections/<handle>/<rkey> shows one collection: packages missing from the registry are struck through, included collections link to their own page, and anything unrecognized is shown so its author can fix it. The page notes that collections are the user's own public atproto data. The editor orders items, adds packages through the package typeahead or by pasting a package or collection link, and takes a short note per item. It says up front that everything is public, and why a record from another app can't be saved yet. Saving an edit made stale by a change elsewhere fails with a conflict message instead of clobbering it.
Profiles list the account's collections, newest first, with a "New collection" link on your own.
Adds New collection, and while searching, a jump to any of your own collections by name.
The guide covers making and editing collections, their URLs and palette commands. A new integrations page shows how any atproto app can read and write dev.npmx.collection records.
Card metadata comes from the same lookup as org pages. Notes sit under each card, and packages without metadata keep the plain row.
bd3c8dc to
eb6fcf1
Compare
🔗 Linked issue
See #78, #2890. See also #2568.
🧭 Context
This implements the first part of the package collections feature as described in the ADR in #3421. (📘 Read the rendered ADR here.)
📚 Description
/collections/<handle>/<rkey>shows one collection: packages missing from the registry are struck through, included collections link to their own page, and anything unrecognized is shown so its author can fix it. The page notes that collections are the user's own public atproto data.The editor orders items, adds packages through the package typeahead or by pasting a package or collection link, and takes an optional short note per item. It says up front that everything is public, and why a record from another app can't be saved yet. Saving an edit made stale by a change elsewhere fails with a conflict message instead of clobbering it.
Writes go to the signed-in user's PDS through their OAuth session, which now asks for the collections scope. Edits are read-modify-write with swapRecord, so a concurrent change fails with 409 instead of being clobbered. Fields other apps added are kept. Our own writes update the record cache, so the next read sees them right away; it would be confusing UX otherwise.
Also:
Stack created with GitHub Stacks CLI • Give Feedback 💬