feat: [ENG-2167] expose context-tree remote URL via project config#498
feat: [ENG-2167] expose context-tree remote URL via project config#498ncnthien merged 2 commits intoproj/local-web-uifrom
Conversation
The daemon's state:getProjectConfig handler now also reads the context-tree git remote (defaulting to origin) off disk and returns it alongside the existing project config, running in parallel with the config load so the handler's latency is unchanged. The web UI's project dropdown drops buildRemoteSpaceUrl + the webAppUrl prop threading in favour of reading remoteUrl directly from the config response, so "Open Remote space" now opens whatever the git remote actually points at.
|
Claude finished @ncnthien's task in 2m 2s —— View job PR Review
SummaryOverall score: 3/5 The approach is sound — reading the git remote in parallel with However, there are three issues that need addressing before this is ready to merge: Issues1. No tests — blocks merge (CLAUDE.md: mandatory TDD) 2. URL scheme not validated before 3. Dead code left behind Suggestions
|
Pull readContextTreeRemoteUrl out of brv-server.ts into its own module under server/infra/context-tree so the daemon entry file stays a thin wiring layer and the helper gets real unit coverage (happy path, missing git repo, no remote configured, non-default remote name, missing project path). The project dropdown now refuses to open a remote URL that isn't http(s) — SSH remotes aren't browser-openable anyway, and guarding the scheme closes the window where a tampered .git/config could smuggle a javascript: or file: URI into window.open.
|
Claude finished @ncnthien's task in 1m 18s —— View job PR Review (re-review after sync)
SummaryOverall score: 4/5 (up from 3/5) Good progress. The two blocking issues from the previous review are resolved: ✅ Issue #1 — Tests added ( ✅ Issue #2 — URL scheme validated before Remaining issueDead code — Nothing imports
Both should be deleted. Leaving unreferenced utility files around inflates the codebase and can confuse future contributors who don't realise the function was superseded. Minor notes (non-blocking)
|
The daemon's state:getProjectConfig handler now also reads the context-tree git remote (defaulting to origin) off disk and returns it alongside the existing project config, running in parallel with the config load so the handler's latency is unchanged. The web UI's project dropdown drops buildRemoteSpaceUrl + the webAppUrl prop threading in favour of reading remoteUrl directly from the config response, so "Open Remote space" now opens whatever the git remote actually points at.
Summary
Type of change
Scope (select all touched areas)
Linked issues
Root cause (bug fixes only, otherwise write
N/A)Test plan
User-visible changes
List user-visible changes (including defaults, config, or CLI output).
If none, write
None.Evidence
Attach at least one:
Checklist
npm test)npm run lint)npm run typecheck)npm run build)mainRisks and mitigations
List real risks for this PR. If none, write
None.