Repository navigation
Conversation
xiaoan17
requested review from
huangruiteng,
loopx-agent and
songoow
as code owners
November 8, 2026 07:09
xiaoan17
force-pushed
the
codex/loopx-dashboard-panel
branch
from
November 8, 2026 08:01
ef9a568 to
7638bba
Compare
Contributor
Author
CI triage after rebaseRebased onto
What this change does pass: The new head re-runs CI; I will rebase again once the main-side repairs land. Happy to help with either pre-existing failure separately if useful. |
Register one global sidebar entry and its matching central panel in the web Client. The panel embeds the personal workspace served by `loopx dashboard` on its default loopback address, states the recovery command and offers Retry when that service is absent, and never starts, reads or duplicates LoopX state. Add the dashboard locale namespace, unit coverage for the embedded panel and its fallback/retry states, and extend the client artifact smoke to assert both new slot registrations and the loopback address. Signed-off-by: xiaoan17 <xiaoan17@users.noreply.github.com>
xiaoan17
force-pushed
the
codex/loopx-dashboard-panel
branch
from
November 8, 2026 08:56
7638bba to
151d5e9
Compare
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.
Goal And Delivered Outcome
loopx dashboardin a separate browser. The loopback workspace already exists (defaulthttp://127.0.0.1:8767/chat/); DSH had no entry point for it.docs/integrations/deepseek-harness-control-plane-adapter.md. Intended basemain.Author Declaration
Implemented against
packages/dsh-loopx-plugin/README.mdanddocs/integrations/deepseek-harness-control-plane-adapter.mdat this head (ef9a5680b).LOOPX_DASHBOARD_PANEL_ID,ctx.slots.inject('sidebar.panellist', …)insrc/client/index.tsxtests/goalbar-client.spec.tsx,smoke/dsh-client-artifact-smoke.mjsmainpanel occupies the central columnctx.slots.inject('main', …);LoopXDashboardPanelinsrc/client/dashboard.tsxtests/dashboard-client.spec.tsx,smoke/dsh-goalbar-runtime-smoke.mjsLOOPX_DASHBOARD_URL; iframe inLoopXDashboardPaneltests/dashboard-client.spec.tsxLoopXDashboardPaneltests/dashboard-client.spec.tsx(inc. retry recovery)DASHBOARD_LOCALE_NAMESPACEinsrc/client/locale.tsapprovedRequires)packages/dsh-loopx-plugin/README.md(Personal workspace panel), adapter doc surface listScope And Continuation
0.2.2-rc.xline and the release act (version bump, install-URL repin, bilingual release notes) are separate and are not claimed here. The panel is exercised on a0.2.2-rc.1prototype under an exact-version exemption (see Validation); the declared peer ranges still end at0.2.1-rc.x, so this PR does not advertise 0.2.2 compatibility.Validation
ef9a5680bcb4df96627b12e554f8231d934f8776staticpassedpnpm typecheck(host, client, tests tsconfigs)unitpassedpnpm test— 232 passed, 1 failed. The failure istests/admission-closeout.integration.spec.ts(invalid_schema: LoopX returned an incompatible response schema), which reproduces identically on the unmodified baseline (a02be1269) with the same local Python/CLI resolution; it is an environment mismatch, not this diff. 3 new panel cases were added and pass.integrationpassedpnpm smoke:peer-range,pnpm smoke:mcp-transport,pnpm smoke:artifactintegrationpassedpnpm smoke:profile— packed install into an isolated real DSH profilereal_entrypointpassedpnpm smoke:runtimeon DSH 0.2.1-rc.2: packed install, init readiness, served/materialized Client, slot coexistence, loopback fence, live-disablemanualpassedintegrationpassedloopx canary premerge --from-git-diff --git-diff-base origin/main:packageandruntimephases passed;qualityphase fails only on the pre-existing admission-closeout test above; public-boundary scan passedintegrationnot_runsmoke:docker(needs Docker + base images) andsmoke:registry(needs a release tarball) are out of scope for this client changeFrontend / Visual Evidence
changed插件/自动化任务, no LoopX row.插件and自动化任务.1440x900and1100x760(narrow; no page overflow); reachable state above; absent-service state (notice + Retry) is covered by the unit test and was captured during development. Plugin-manager install surfaces: installed list and detail.synthetic— three neutral demo goals in a temporary isolated registry; no live or private LoopX state, and the captured pages were scanned for local paths before publication. Evidence images live on a separate evidence branch so the PR diff stays source-only.Type of Change
LoopX Area
Technical Direction
docs/integrations/deepseek-harness-control-plane-adapter.md); presentation-only companion to the existing GoalBar/Driver/skills surfaces.Shared-authority RFC fixture impact
loopx-dashboard, the availability union) and copy keys, not shared LoopX state vocabulary.Boundary Checklist
.loopx/,.codex/goals/, and liveACTIVE_GOAL_STATE.md). Screenshots use a synthetic workspace; the hostname/paths of the capturing machine were scanned out.python3 scripts/check_rfc_bilingual.py --base origin/main --head HEADpassed in the canary run).none.Signed-off-bytrailer (git commit -s).