Set up Cloud Agent dev environment + fix POSIX build/runtime bugs - #1
Draft
AMDphreak wants to merge 5 commits into
Draft
Set up Cloud Agent dev environment + fix POSIX build/runtime bugs#1AMDphreak wants to merge 5 commits into
AMDphreak wants to merge 5 commits into
Conversation
The macOS/Linux branches of openWorkflowTemplatesStore() called
spawnProcess("open"/"xdg-open", [url]), but std.process has no
(program, args) overload, so the app failed to compile on POSIX
(Windows CI never compiled these branches). Pass a single args array.
Co-authored-by: Ryan Johnson <AMDphreak@users.noreply.github.com>
detectHostContext() runs each context's detect command synchronously on the UI thread at startup. A probe like 'npx convex --version' triggers an on-demand package fetch that never returns, hanging the app before its window opens. Run each probe with a null stdin and a 4s timeout, killing it on expiry, so a slow/hanging probe can no longer block startup. Co-authored-by: Ryan Johnson <AMDphreak@users.noreply.github.com>
DecisionStepBox fires its onChange callback from its constructor (selectByIndex), which calls refreshContext() before _contextPanel is created, causing a null-dereference segfault on startup. Skip the update until the panel exists; the explicit refreshContext() after construction still performs the real initial update. Co-authored-by: Ryan Johnson <AMDphreak@users.noreply.github.com>
antora-playbook.yml requires the @antora/lunr-extension, but it was not declared in package.json, so 'pnpm install' + 'antora antora-playbook.yml' failed locally with MODULE_NOT_FOUND. Add it as a devDependency so the docs site builds from a plain checkout. Co-authored-by: Ryan Johnson <AMDphreak@users.noreply.github.com>
Add .cursor/environment.json + install.sh to provision the toolchain the DevCentr monorepo needs: system libs for dlangui (OpenGL/SDL2/FreeType/ X11), the LDC D compiler + dub (matching CI's ldc-latest), and the pnpm deps for the app catalog and Antora docs, then builds the app to verify. Also ignore the extensionless Linux build artifact app/DevCentr. Co-authored-by: Ryan Johnson <AMDphreak@users.noreply.github.com>
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.
What & why
Sets up a reproducible Cloud Agent development environment for the DevCentr monorepo and fixes the cross-platform bugs that blocked building and running the D desktop app on Linux. With these changes a fresh checkout can build the app (
app/), run it under a display, and build the Antora docs (docs/).Environment setup
.cursor/environment.json+.cursor/install.shprovision everything the repo needs on the default base image:dlangui(OpenGL, SDL2, FreeType, X11) plus fonts.dub, pinned toldc-1.42.0(matches CI'sldc-latestline inrelease.yml), symlinked ontoPATHso nosource activateis needed.pnpm installfor the root docs deps and theapp/catalog deps, then adub buildto verify the toolchain end-to-end.Code fixes (required to build/run on POSIX)
These paths are only compiled/executed on macOS/Linux, so Windows CI never exercised them:
fix(app)POSIXspawnProcess—openWorkflowTemplatesStore()usedspawnProcess("open"/"xdg-open", [url]), which has no matching Phobos overload and failed to compile. Switched to the single args-array form.fix(app)detection timeout —detectHostContext()ran catalogdetectprobes synchronously on the UI thread at startup. A probe such asnpx convex --versiontriggers an on-demand package fetch that never returns, hanging the app before its window opened. Probes now run with a null stdin and a 4s timeout.fix(app)null context panel —ToolchainAdvisorPanelsegfaulted on startup because aDecisionStepBoxfires its change callback from its constructor, reachingrefreshContext()before_contextPanelexists. Added a null guard; the explicit post-constructionrefreshContext()still performs the initial update.Docs
chore(docs)add@antora/lunr-extensiondevDependency — the committedantora-playbook.ymlrequires it, but it was missing frompackage.json, so a plainpnpm install+antora antora-playbook.ymlfailed withMODULE_NOT_FOUND.Testing / validation
Environment build: triggered a draft Cloud Agent build of this branch that ran
install.shon a fresh pod — it SUCCEEDED (~2.5 min): system libs → LDC 1.42.0 + dub → pnpm deps →dub build→ "Linking DevCentr" → "Setup complete".App: builds cleanly in
--build=debugand--build=release, launches, initializes OpenGL, and renders its full UI. Navigated Home → Browse Projects → Tool Status → Stack Advisor (the page that previously segfaulted) with no crash.devcentr_app_navigation_demo.mp4
DevCentr app home screen running on Linux
Docs:
antorabuilds 124 HTML pages from the local docs module (remaining warnings are cross-references into the two sibling doc repos, which are not part of this repo's build).DevCentr Antora docs site rendered
To show artifacts inline, enable in settings.