alpha
Login
or
Join now
zicklag.dev
/
mlf
Star
1
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
A human-friendly DSL for ATProto Lexicons
Star
1
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
1
Pipelines
mlf
/
mlf-atproto
/
src
/
at
main
7 files
stavola.xyz
Split manifest into its own collection with TID rkeys
3mo ago
de4c5373
cid.rs
Split manifest into its own collection with TID rkeys Each publish event now writes a fresh `lol.mlf.package/<tid>` record instead of clobbering a single `com.atproto.lexicon.schema/lol.mlf.package`. The schema definition and the manifest instance are different things in different collections, so they stop colliding when an mlf project dogfoods `lol.mlf.package` as a user lexicon. - mlf-atproto: new tid module (sortable base32 TID generator, CAS loop for monotonicity) - mlf-publish/manifest: drop the schema envelope; instance carries `$type = "lol.mlf.package"` and only instance fields - mlf-cli/publish: write manifest to `lol.mlf.package/<tid>` - mlf-cli/unpublish: list the manifest collection, pick the newest by TID, delete everything it lists + the full publish log
3 months ago
identity.rs
Add mlf login / mlf logout commands + credentials file Plaintext TOML credential storage at ~/.config/mlf/credentials.toml (global) and <workspace>/.mlf/credentials.toml (project-local, opt-in via --project, meant for CI). Files are written mode 0600 on Unix. One [pds] section carrying handle + app_password + did/pds cache; one [dns.<plugin>] section per configured DNS provider whose fields come from the plugin's options_schema and are preserved on round-trip. mlf login [pds|dns <plugin>] validates credentials before writing — PDS login runs handle→DID→PDS resolution via mlf-atproto::identity (adding resolve_handle_to_did with DNS+well-known fallback) and calls createSession; DNS plugin login spawns the plugin binary, collects schema fields via --flag=value → prompt fallback, forwards them via init, and asks the plugin to validate via its login op. Credentials returned from login replace whatever we collected so plugins can normalise them. mlf logout [pds|dns [<plugin>]] mirrors the login tree and rewrites the credentials file minus the targeted sections. --non-interactive on login errors with the exact flag name for any missing field instead of prompting.
3 months ago
lib.rs
Split manifest into its own collection with TID rkeys Each publish event now writes a fresh `lol.mlf.package/<tid>` record instead of clobbering a single `com.atproto.lexicon.schema/lol.mlf.package`. The schema definition and the manifest instance are different things in different collections, so they stop colliding when an mlf project dogfoods `lol.mlf.package` as a user lexicon. - mlf-atproto: new tid module (sortable base32 TID generator, CAS loop for monotonicity) - mlf-publish/manifest: drop the schema envelope; instance carries `$type = "lol.mlf.package"` and only instance fields - mlf-cli/publish: write manifest to `lol.mlf.package/<tid>` - mlf-cli/unpublish: list the manifest collection, pick the newest by TID, delete everything it lists + the full publish log
3 months ago
records.rs
Extract mlf-atproto plumbing crate Split protocol-level primitives (DID/NSID/DNS identity resolution, generic XRPC HTTP client, session management, record CRUD wrappers, client-side DAG-CBOR CID computation) out of mlf-lexicon-fetcher into a new mlf-atproto crate. The fetcher is refactored to consume it; its public API is preserved. This is the plumbing foundation for mlf-publish, mlf-plugin-host, and the DNS provider plugin binaries.
3 months ago
session.rs
Extract mlf-atproto plumbing crate Split protocol-level primitives (DID/NSID/DNS identity resolution, generic XRPC HTTP client, session management, record CRUD wrappers, client-side DAG-CBOR CID computation) out of mlf-lexicon-fetcher into a new mlf-atproto crate. The fetcher is refactored to consume it; its public API is preserved. This is the plumbing foundation for mlf-publish, mlf-plugin-host, and the DNS provider plugin binaries.
3 months ago
tid.rs
Split manifest into its own collection with TID rkeys Each publish event now writes a fresh `lol.mlf.package/<tid>` record instead of clobbering a single `com.atproto.lexicon.schema/lol.mlf.package`. The schema definition and the manifest instance are different things in different collections, so they stop colliding when an mlf project dogfoods `lol.mlf.package` as a user lexicon. - mlf-atproto: new tid module (sortable base32 TID generator, CAS loop for monotonicity) - mlf-publish/manifest: drop the schema envelope; instance carries `$type = "lol.mlf.package"` and only instance fields - mlf-cli/publish: write manifest to `lol.mlf.package/<tid>` - mlf-cli/unpublish: list the manifest collection, pick the newest by TID, delete everything it lists + the full publish log
3 months ago
xrpc.rs
Extract mlf-atproto plumbing crate Split protocol-level primitives (DID/NSID/DNS identity resolution, generic XRPC HTTP client, session management, record CRUD wrappers, client-side DAG-CBOR CID computation) out of mlf-lexicon-fetcher into a new mlf-atproto crate. The fetcher is refactored to consume it; its public API is preserved. This is the plumbing foundation for mlf-publish, mlf-plugin-host, and the DNS provider plugin binaries.
3 months ago