Skip to content

feat(source panel): implement source control panel#174

Merged
crynta merged 0 commit into
crynta:mainfrom
alpemreelmas:main
May 17, 2026
Merged

feat(source panel): implement source control panel#174
crynta merged 0 commit into
crynta:mainfrom
alpemreelmas:main

Conversation

@alpemreelmas
Copy link
Copy Markdown
Contributor

What

Implement source control panel

Why

Working with 3th party of coding agents, you need to review changes.

How

Supporting git native commands by UI

Testing

I personally tested it manually. I see that this part is missing in my PR, I'll work on it.

  • pnpm exec tsc --noEmit clean
  • Manual smoke-test of the affected feature
  • (If you touched src-tauri/) cargo check clean
  • (If UI) tested in pnpm tauri dev

Screenshots / GIFs

Notes for reviewer

Please consider, this is my first open source contribution in my life. I'm totally open any feedback related my code or advice for open source contribution.

@viniraioli
Copy link
Copy Markdown
Contributor

viniraioli commented May 14, 2026

Hi @alpemreelmas — are you still actively working on this PR?

I already have the Git integration/UI working on my side as well, including the VS Code-like Source Control flow. Screenshot for context:

Captura de tela 2026-05-14 084558

If you want, I can pick this up from your PR and help finish/polish it in case you don't have time to continue. Otherwise, I can open a separate PR for the feature so it doesn't stay blocked.

Happy to coordinate either way — just let me know what you prefer.

@viniraioli
Copy link
Copy Markdown
Contributor

Adding @crynta here as well for visibility.

If this PR is no longer active, I can help finish it from here or open a separate PR with the Git/source-control integration so the feature can keep moving.

@alpemreelmas
Copy link
Copy Markdown
Contributor Author

Adding @crynta here as well for visibility.

If this PR is no longer active, I can help finish it from here or open a separate PR with the Git/source-control integration so the feature can keep moving.

Actually I'd like to continue but my issue hasn't been confirmed yet. So for now I stopped because didn't know if this feature wanted by the owners and contributors.

@alpemreelmas
Copy link
Copy Markdown
Contributor Author

alpemreelmas commented May 14, 2026

Hi @alpemreelmas — are you still actively working on this PR?

I already have the Git integration/UI working on my side as well, including the VS Code-like Source Control flow. Screenshot for context:

Terax Git UI screenshot

If you want, I can pick this up from your PR and help finish/polish it in case you don't have time to continue. Otherwise, I can open a separate PR for the feature so it doesn't stay blocked.

Happy to coordinate either way — just let me know what you prefer.

Hello, @viniraioli, I think we can do it together if you want or I can finish. I cannot access the photo you attached (404). I also consider similar to vscode source control and worked on it. It needs to be polished a little bit in the UI part.

So yes, it is active and we can continue work on it.

@viniraioli
Copy link
Copy Markdown
Contributor

viniraioli commented May 14, 2026

Hi @alpemreelmas — are you still actively working on this PR?
I already have the Git integration/UI working on my side as well, including the VS Code-like Source Control flow. Screenshot for context:
Terax Git UI screenshot
If you want, I can pick this up from your PR and help finish/polish it in case you don't have time to continue. Otherwise, I can open a separate PR for the feature so it doesn't stay blocked.
Happy to coordinate either way — just let me know what you prefer.

Hello, @viniraioli, I think we can do it together if you want or I can finish. I cannot access the photo you attached (404). I also consider similar to vscode source control and worked on it. It needs to be polished a little bit in the UI part.

So yes, it is active and we can continue work on it.

Captura de tela 2026-05-14 084558

Sorry, I didn't see that the image wasn't available.

@viniraioli
Copy link
Copy Markdown
Contributor

viniraioli commented May 14, 2026

@alpemreelmas

Thanks, that makes sense.

Since you're still active, I think the best path is to keep #174 as the main PR for this feature. I opened #243 to make the maintainer decision explicit, since you mentioned you paused waiting for confirmation.

@crynta if you're okay with this direction, I think we can continue here.

@alpemreelmas feel free to keep pushing updates on this PR. I'm happy to help with UI polish/review or take on follow-up pieces if that makes it easier to get this merged.

@alpemreelmas
Copy link
Copy Markdown
Contributor Author

@viniraioli Actually your UI is much much much better than me :). That's really nice one. I updated the PR and solved the conflicts. If @crynta is the same page as we, we can finish this in here.

@viniraioli I think we can use my git rust part, your UI and finish it. The only think is that during solving conflicts, I have removed one part of my code which is probably cause failing the build. It was

function sameOrigin(a: string, b: string): boolean {
  try {
    const ua = new URL(a);
    const ub = new URL(b);
    return ua.host === ub.host && ua.protocol === ub.protocol;
  } catch {
    return a === b;
  }
}

function dirname(path: string | null): string | null {
  if (!path) return null;
  const normalized = path.replace(/\\/g, "/");
  const idx = normalized.lastIndexOf("/");
  if (idx <= 0) return normalized;
  return normalized.slice(0, idx);
}

Because I thought this was the wrong way to implement this part.

As I mentioned, this is my first PR on the open source ecosystem and first time using rust in this kind of project. I can update my backend ( rust codes ) if any feedback I can get.

@viniraioli
Copy link
Copy Markdown
Contributor

viniraioli commented May 14, 2026

@alpemreelmas sounds good to me. I'm already working on some improvements and UI/code polish on top of the current PR so we can refine it together here.

I also like where the Git UI ended up being placed in your PR. From a UX perspective, I think this location works better than the sidebar approach I initially made.

If possible, could you also give me permission to edit/push to this PR branch? That would make it easier for me to add these improvements directly here and we can iterate on them together.

Screenshot of what I have on my side at the moment:

u

@crynta
Copy link
Copy Markdown
Owner

crynta commented May 15, 2026

@alpemreelmas @viniraioli, sorry for the delay, was buried in some deep terminal's renderer/perf work.

Source control was one of the first features on the roadmap, so I'm glad you're both pushing it. I took a closer look at the diff: you already picked the right path by shelling out to system git. No new deps (system git), exactly what we need. The foundation is great. I’ll take it from here, review everything, and polish a few things I noticed and Terax will have source control in the next update :))

@viniraioli
Copy link
Copy Markdown
Contributor

viniraioli commented May 15, 2026

@crynta @alpemreelmas thanks for confirming the direction.

Since this feature was already confirmed as wanted, I opened a follow-up PR here: #259.

It is based on the work from @alpemreelmas in #174 and includes the additional source-control polish I had locally: the Git panel UI, staged/unstaged flow, diff tabs, status badge, discard support, commit/push affordances, and AI-generated Conventional Commit messages. It keeps the same approach you called out here: shelling out to the system git, with no new Git dependency.

Big thanks and full credit to @alpemreelmas for starting the original implementation, opening #174, and laying down the Rust/Git foundation this work builds on. I really appreciate the collaboration and the first pass that made it easier to move the feature forward.

I also merged the latest upstream/main into that branch and resolved the conflicts, so #259 is currently mergeable. pnpm exec tsc --noEmit and cargo check both pass locally.

Happy for #259 to be used as the consolidated review target, or for any parts of it to be pulled back into #174 if you prefer to keep the original draft PR as the landing PR.

@crynta
Copy link
Copy Markdown
Owner

crynta commented May 15, 2026

@viniraioli I’m about to release the new v0.6.5 version with performance optimizations.
So I’ll also include your source control PR in the upcoming v0.6.6 release. Thank you again!

@viniraioli
Copy link
Copy Markdown
Contributor

viniraioli commented May 15, 2026

@viniraioli I’m about to release the new v0.6.5 version with performance optimizations.
So I’ll also include your source control PR in the upcoming v0.6.6 release. Thank you again!

@crynta Sounds great, thank you!

Thanks again for taking this forward.

@crynta crynta merged commit b9fb393 into crynta:main May 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants