Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ff729cf
refactor(core): move forge into its own folder
kinqsradio Nov 9, 2026
4a8a179
refactor(core): move forge_cache into the forge folder as cache
kinqsradio Nov 9, 2026
5c8eb42
refactor(core): move the forge tests into their own files
kinqsradio Nov 9, 2026
cec6f4a
refactor(core): cut the forge subprocess calls into process.rs
kinqsradio Nov 9, 2026
18428b1
refactor(core): cut the forge pull row and check parsing into parse.rs
kinqsradio Nov 9, 2026
6ca06c8
refactor(core): cut the forge GitHub queries and parsing into github.rs
kinqsradio Nov 9, 2026
ba79be4
refactor(core): cut the forge GitLab parsing into gitlab.rs
kinqsradio Nov 9, 2026
dd3c856
refactor(core): cut the forge list details batches into details.rs
kinqsradio Nov 9, 2026
0c94631
refactor(core): cut the forge pull request reads into pulls.rs
kinqsradio Nov 9, 2026
0c99f58
refactor(core): cut the forge comments, reviews, reviewers and labels…
kinqsradio Nov 9, 2026
88ba2d2
refactor(core): cut the forge pull request edits and merge into merge.rs
kinqsradio Nov 9, 2026
922032e
refactor(core): cut the forge pull request creation and publishing in…
kinqsradio Nov 9, 2026
5d6aeb9
refactor(core): cut the forge sign-in status checks into status.rs
kinqsradio Nov 9, 2026
0b6e3a3
refactor(core): move scm into its own folder
kinqsradio Nov 9, 2026
d6cb051
refactor(core): move scm_writing and its style into the scm folder as…
kinqsradio Nov 9, 2026
46cbc88
refactor(core): move the scm and scm writing tests into their own files
kinqsradio Nov 9, 2026
b7c951d
refactor(core): cut the scm pull request watch into watch.rs
kinqsradio Nov 9, 2026
42fc1aa
refactor(core): cut the scm forge status and publish into forges.rs
kinqsradio Nov 9, 2026
9fb2069
refactor(core): cut the scm pull request stacks and checkouts into st…
kinqsradio Nov 9, 2026
9372748
refactor(core): cut the scm pull request comments, reviews and merges…
kinqsradio Nov 9, 2026
b3ece3b
refactor(core): cut the scm pull request lists, details and reads int…
kinqsradio Nov 9, 2026
949b319
refactor(core): cut the scm writing checkout reads into candidate.rs
kinqsradio Nov 9, 2026
aba991d
refactor(core): tidy the scm module lists and spacing after the cuts
kinqsradio Nov 9, 2026
cc2459f
chore(arch): drop forge.rs from the Rust size baseline
kinqsradio Nov 9, 2026
b6fff64
docs(core): name the source control folders
kinqsradio Nov 9, 2026
04538ca
Merge origin/main into refactor/core-source-control
kinqsradio Nov 9, 2026
bfbd68e
chore: list the source control move commits in the blame-ignore file
kinqsradio Nov 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ e5278fd577dadd1cd11800f0ca2b7abd908343cc # refactor(core): move the codex driver
cb0d36fa7a89a7087a51eba5774fcc923ae78933 # refactor(core): move the acp driver tests into their own file
8678212e2ca296ee089964e96848e26372567217 # refactor(web): move workspace files into sidebar, palette and app-chrome folders
6f4e756ad452cf8492291a11c36a93363261c5b2 # refactor(web): move panel files into strip, browser, diff, files, terminal, activity and preview folders
ff729cfa4ec1e3b71c956ed013aee5a9706c36cf # refactor(core): move forge into its own folder
4a8a17919098a3bedd4132088a110d30b8a7c611 # refactor(core): move forge_cache into the forge folder as cache
5c8eb42c8294b8e48a3263eae09184d7b83fb6af # refactor(core): move the forge tests into their own files
0b6e3a36e79764b2d73854e25b4ded064b721910 # refactor(core): move scm into its own folder
d6cb0514c515aa58c86a86a2b2c79dbf32f47325 # refactor(core): move scm_writing and its style into the scm folder as writing
46cbc88a24a5cba1355a18f95b62ef1d1eeba64d # refactor(core): move the scm and scm writing tests into their own files
2 changes: 1 addition & 1 deletion crates/orbyn-core/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ pub struct Core {
pub recovery: Recovery,
pub(crate) keybinding_writer: Mutex<()>,
/// Pull request details asked of GitHub, reused while a pull request is unchanged.
pub(crate) pull_details: Mutex<crate::source_control::forge_cache::DetailCache>,
pub(crate) pull_details: Mutex<crate::source_control::forge::cache::DetailCache>,
/// What each forge's CLI said, reused briefly: asking costs a process per forge.
pub(crate) forge_statuses:
Mutex<Option<(std::time::Instant, Vec<orbyn_contracts::ForgeStatus>)>>,
Expand Down
2 changes: 1 addition & 1 deletion crates/orbyn-core/src/settings/preferences.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ fn check(definition: &Definition, value: &Value) -> Result<()> {
crate::project::project_file::validate_scripts(value)?;
}
if fits && definition.key == "source_control_writing_style" {
crate::source_control::scm_writing::validate_style(value)?;
crate::source_control::scm::writing::validate_style(value)?;
}
if fits && definition.key == "default_model_options" && !model_options(value) {
return Err(CoreError::Invalid(
Expand Down
10 changes: 6 additions & 4 deletions crates/orbyn-core/src/source_control/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@ Source control on a thread's checkout, always through the person's own installed

| Module | Owns |
| --- | --- |
| `scm` | Source control actions on a thread's checkout |
| `scm` | Source control actions on a thread's checkout: git actions and branches (`mod.rs`), pull request reads and linking (`pulls`), comments, reviews and merges (`review`), stacks and checkouts (`stack`), pull request watching (`watch`), forge status and publishing (`forges`) |
| `scm::writing` | Diff-derived text for a confirmed Git action: the writing request (`mod.rs`), the bounded checkout reads (`candidate`) and the writing style (`style`) |
| `git` | Git through the installed CLI, worktrees in the sibling `<repo>-wt` root |
| `jj` | Non-colocated Jujutsu checkouts, read through the installed `jj` |
| `forge` | GitHub and GitLab through their own CLIs |
| `forge_cache` | Short-lived memory of GitHub pull request details |
| `scm_writing` | Diff-derived text for a confirmed Git action |
| `forge` | GitHub and GitLab through their own CLIs: `Forge` and the public functions (`mod.rs`), one CLI call (`process`), answer parsing (`parse`, `github`, `gitlab`), list details (`details`), reads (`pulls`), comments and reviews (`review`), edits and merges (`merge`), creating and publishing (`create`), sign-in status (`status`) |
| `forge::cache` | Short-lived memory of GitHub pull request details |
| `pull_guides` | An agent's reading order for one pull request |

Each folder's `mod.rs` is its front door: the old paths such as `source_control::forge::list_pulls` still resolve through its re-exports. Tests sit beside the module in `tests.rs`.

The crate's [group table](../../README.md#groups) lists every group.
Loading
Loading