Skip to content

Surfaces

Each row is one capability of the first release, and each column is one surface that offers it. A cell names the operation, command, or screen. It says “planned” until that surface is built, and a requirement is done only when its row is filled for every surface its epic promises. “None” means the surface won’t offer the capability.

The REST operations are the operationIds in openapi.yaml. The jf commands follow cli.md. jf builds on jj, so after jf clone every history command runs locally, as jj does.

Capability Req REST jf jj git or gh UI
Log in R002, R003 authorize, authorizeDevice, token (planned) jf auth login (planned) None gh auth login Sign-in (planned)
Create org R011 createOrg (planned) jf org create (planned) None None New organization (planned)
Create repo R012 createRepo (planned) jf repo create (planned) None gh repo create New repository (planned)
Clone R016, R034 getRepo for the address, then git smart HTTP (planned) jf clone (planned) jj git clone git clone, gh repo clone Clone panel (planned)
Push R017 git smart HTTP (planned) jf push (planned) jj git push git push None
Log R020 listChanges (planned) jf log (planned) jj log git log Change log (planned)
Show R021 getChange (planned) jf show (planned) jj show git show Change page (planned)
Versions R022 getEvolution (planned) jf evolog (planned) jj evolog None Change versions (planned)
Diff R029 getDiff (planned) jf diff (planned) jj diff git diff Diff (planned)
Browse tree R026 listTree (planned) jf file list (planned) jj file list git ls-tree Tree (planned)
Read file R027 readFile (planned) jf file show (planned) jj file show git show <rev>:<path> File (planned)
Bookmarks R025 listBookmarks (planned) jf bookmark list (planned) jj bookmark list git branch --all Bookmarks (planned)
Operations R024 listOperations (planned) jf op log (planned) jj op log git reflog Operations (planned)
Activity R032 streamActivity (planned) None None None Activity (planned)
Open in browser R037 None jf browse (planned) None gh browse None