Repository navigation
feat(webui): add git changes workbench with read-only git RPC - #2009
Open
fengchen122123-sudo wants to merge 2 commits into
Open
fengchen122123-sudo wants to merge 2 commits into
fengchen122123-sudo wants to merge 2 commits into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Scope boundary: read-only Git inspection for the Web UI workbench — nothing in this PR writes to a repository.
git.statusandgit.diff(src/opensquilla/gateway/rpc_git.py,src/opensquilla/gateway/adapters/git_contract.py)._require_owner, error "Git inspection requires a locally proven owner."), a 5 s subprocess budget (_GIT_TIMEOUT_SECONDS = 5.0), a 200,000-character diff ceiling (_MAX_DIFF_CHARACTERS = 200_000) and binary-diff detection (Binary files/GIT binary patchmarkers setbinary: true).src/opensquilla/gateway/scopes.py.opensquilla-webui/src/components/workbench/GitChangesPanel.vue(workbench panel),opensquilla-webui/src/components/chat/GitBranchChip.vue(top-bar branch badge),opensquilla-webui/src/composables/useGitStatus.ts,opensquilla-webui/src/adapters/gateway/gitV4.ts.contracts/gateway/v4/git/git-status.schema.jsonandcontracts/gateway/v4/git/git-diff.schema.json, regenerated v4 artifacts (methodCount213 → 215,schemaCount223 → 225 incontracts/gateway/v4/compatibility-manifest.generated.json) plus the generated Python modules undersrc/opensquilla/contracts/generated/v4/.tests/test_gateway/test_sandbox_runtime_contract_registration.py,tests/test_gateway/test_turn_admission_composition.pyandtests/test_ci/test_rpc_architecture_contracts.py(the last one pinsgit.status/git.diffexplicitly so the historical method digest keeps its meaning).Non-goals: no staging, commit, checkout, pull/push, merge, rebase or any other mutating Git operation; no new provider/browser/channel behaviour; no RPC surface change beyond the two read methods.
Branch
Base branch: main
Target exception: N/A
Issue
Linked issue: None
If None, reason: no upstream issue covers this work; the read-only Git surface was implemented directly on a topic branch.
Release Note
Release note: Web UI gains a read-only Git changes workbench (top-bar branch chip plus a workbench panel listing changed files and their diffs), backed by two new owner-only Gateway methods
git.statusandgit.diff.Tests
Ruff:
python -m ruff checkon the three changed test files —All checks passed!Pytest: the RPC-surface guard tests that pin the registry size pass after the count bump —
tests/test_gateway/test_sandbox_runtime_contract_registration.py+tests/test_gateway/test_turn_admission_composition.py: 10 passed;tests/test_ci/test_rpc_architecture_contracts.py: 33 passed. The full backend suite was not re-run end to end for this branch; the only backend failures observed were the three hard-coded method-count guards fixed here (285 → 287).Build:
npm run typecheck:vuepassed;npm run check:architecturepassed (13 checks);vitest5 files / 26 tests passed.Regression tests: added
Notes: new frontend coverage lives in
opensquilla-webui/src/components/workbench/GitChangesPanel.test.tsandopensquilla-webui/src/composables/useGitStatus.test.ts.opensquilla.generate_gateway_contracts --checkwas not executed for this branch: the local environment does not providedatamodel-code-generator, so the generated v4 artifacts were produced by the generator and inspected by hand rather than re-verified with its--checkmode.Maintainer Live Check
Maintainer live check: no
Surface: N/A
Maintainer-only note: contributors are not expected to provide secrets or run credentialed live checks. Maintainers may run
Live Release E2Efor provider, browser, gateway, channel, or release smoke coverage.Safety
Secrets, local-only artifacts, private prompts/transcripts, channel identifiers, AI session artifacts, non-public fixtures, and tests/_private/ contents must not be committed.
This branch contains none of those: the only tracked changes are source, contract, test and notice files.
Third-Party Origin
Third-party origin: adapted/ported
Details if non-none: the
gitBranchglyph is GitHub Octicongit-branch-16, upstream https://github.com/primer/octicons, MIT licensed. Its path data was adapted intoopensquilla-webui/src/utils/icons.ts(scaled from the 16-unit Octicon grid to the 24-unit icon grid and drawn as a solid glyph) and the provenance is declared inTHIRD_PARTY_NOTICES.mdunder "GitHub Octicons". No other third-party code, fixtures or text is copied by this PR.Documentation Changes
No documentation pages, links, code fences or examples are added by this PR; the only prose change is the
THIRD_PARTY_NOTICES.mdentry described above.