chore(env): add Cursor Cloud Agent development environment - #216
Open
Looted wants to merge 2 commits into
Open
Conversation
Adds a repo-managed Cursor Cloud Agent environment for the Kibi monorepo: - .cursor/Dockerfile bakes SWI-Prolog (stable PPA), Node.js 24, and Bun 1.3.10 - .cursor/install.sh runs an idempotent 'bun install --frozen-lockfile' - .cursor/environment.json wires the Dockerfile build + install phase Co-authored-by: Piotr Franczyk <pfranczyk87@gmail.com>
…base Use the default Cloud Agent base image plus an idempotent install script that installs SWI-Prolog (stable PPA) and pinned Bun 1.3.10, then runs the workspace 'bun install'. This is the config validated by a draft build and a fresh agent. Co-authored-by: Piotr Franczyk <pfranczyk87@gmail.com>
Looted
marked this pull request as ready for review
August 18, 2026 21:42
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
Adds a repo-managed Cursor Cloud Agent development environment so agents boot into a ready-to-work Kibi checkout.
.cursor/environment.json— uses the default base image and wires theinstallphase..cursor/install.sh— idempotent bootstrap that installs the two toolchain prerequisites missing from the default image and then installs workspace dependencies:>= 9, from the officialppa:swi-prolog/stable, matching CI) +bubblewrap1.3.10(the version CI uses), symlinked ontoPATHbun install --frozen-lockfilefor the workspace (and.opencodewhen it declares a manifest)The default base image already provides Node.js,
git,python3,curl, and passwordlesssudo, so only Prolog and Bun need to be added. The script is guarded (command -v) so re-runs are no-ops.Why
The repo requires SWI-Prolog and Bun (see
CONTRIBUTING.mdand.github/workflows/ci.yml), neither of which ships in the default Cloud Agent image. Without this, agents can'tbun install, build, run tests, or exercise the Prolog-backedkibiCLI.Validation
Validated on this VM and in a fresh Cloud Agent booted from a draft build of this branch (build
bld-20260818-1d724271-cc8f-463b-9ddf-d625f657b91b, statusSUCCEEDED).install.sh(SWI-Prolog + Bun + deps)bun install --frozen-lockfileidempotencebun run typecheck(full matrix, 15 projects)bun run build(all packages)bun run test:unitkibi syncon the real repo KBkibi check(structural + contradiction rules)kibi doctor(fresh agent)Note on unit tests
The full
test:unitorchestrator reported 3 failures, all environment artifacts rather than repo or environment-config defects (each passes in isolation / in CI):kibi init > init --github scaffolds the documented report workflow— the Cloud Agent injects a~/.gitconfiginsteadOfrewrite that turnshttps://github.com/...intohttps://x-access-token:<token>@github.com/...(required forgit push). The test's remote-URL parser doesn't expect the embedded token, so the badge isn't written. This does not affect real usage.kibi migrate > reports missing config file...andkibi branch lifecycle > rejects cross-branch copying...—beforeEach/afterEachtimeouts under the full parallel orchestrator on a cold VM (SWI-Prolog subprocess cold-start). Both pass cleanly when run in isolation.Notes
biome checkreports pre-existing style errors ondevelop; it is not a CI gate inci.yml, so it is left untouched (out of scope for environment setup).