codemble 0.5.2__tar.gz → 0.5.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codemble-0.5.2 → codemble-0.5.3}/CHANGELOG.md +21 -0
- {codemble-0.5.2 → codemble-0.5.3}/PKG-INFO +2 -2
- {codemble-0.5.2 → codemble-0.5.3}/codemble/__init__.py +1 -1
- codemble-0.5.3/docs/releases/v0.5.3.md +50 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/package.json +1 -1
- {codemble-0.5.2 → codemble-0.5.3}/pyproject.toml +7 -2
- codemble-0.5.3/tests/test_dependency_compatibility.py +43 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/package-lock.json +2 -2
- {codemble-0.5.2 → codemble-0.5.3}/web/package.json +1 -1
- {codemble-0.5.2 → codemble-0.5.3}/.env.example +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.gitattributes +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/ISSUE_TEMPLATE/early_tester.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/dependabot.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/workflows/ci.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/workflows/pages.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.github/workflows/publish-pypi.yml +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/.gitignore +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/AGENTS.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/CLAUDE.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/CODE_OF_CONDUCT.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/CONTRIBUTING.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/LICENSE +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/NOTICE +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/README.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/SECURITY.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/TESTING.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/assets/demo.gif +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/adapters/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/adapters/base.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/adapters/discovery.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/adapters/parse_progress.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/adapters/project.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/adapters/python_ast.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/adapters/typescript_tree_sitter.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/checks/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/checks/service.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/cli.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/graph/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/graph/finalize.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/graph/layout.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/graph/mapview.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/lens/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/lens/javascript_typescript.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/lens/python.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/llm/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/llm/local_status.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/llm/providers.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/llm/structural.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/llm/study.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/paths.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/progress/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/progress/store.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/server/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/server/app.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/server/parse_job.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/server/runtime.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/index-DTjcBtZj.js +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/index-Dbk76SAB.css +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/shippori-mincho-latin-500-normal-C-QwvIb3.woff +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/shippori-mincho-latin-500-normal-XI1O8euf.woff2 +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/shippori-mincho-latin-700-normal-CkoCYOiI.woff +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/shippori-mincho-latin-700-normal-DHcmzUO5.woff2 +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/zen-kaku-gothic-new-latin-400-normal-BEdayliK.woff2 +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/assets/zen-kaku-gothic-new-latin-400-normal-CPSmNJAU.woff +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/codemble/web_dist/index.html +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/adr/README.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/plans/2026-07-19-audience-modes-and-local-narration-design.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/plans/2026-07-19-audience-modes-backend-plan.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/plans/2026-07-19-audience-modes-frontend-plan.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/plans/2026-07-19-install-ux-folder-picker-design.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/plans/2026-07-19-install-ux-folder-picker-plan.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/plans/README.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/plans/phase-1.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/releases/checklist.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/releases/v0.1.0.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/releases/v0.2.0.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/releases/v0.4.0.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/releases/v0.5.0.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/releases/v0.5.1.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/releases/v0.5.2.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/research/README.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/superpowers/plans/2026-07-19-galaxy-ux-phase-a.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/superpowers/plans/2026-07-19-galaxy-ux-phase-b.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/superpowers/plans/2026-07-19-galaxy-ux-phase-c.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/superpowers/plans/2026-07-19-galaxy-ux-shared-contract.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs/superpowers/specs/2026-07-19-galaxy-ux-overhaul-design.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/.gitignore +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/astro.config.mjs +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/design.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/favicon-16.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/favicon-32.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/icon-180.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/icon-192.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/icon-512.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/icon.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/icons/asterism.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/icons/install.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/mark-animated.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/mark.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/hero-chart.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/hero-field.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/hero-gold.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/kasumi-rule.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/plate-galaxy.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/plate-study.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/plate-system.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/brand/plates/seal.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/favicon.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/easy-mode.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/galaxy-lit.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/galaxy.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/loading.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/map-architecture.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/map-workflow.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/study-panel.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/public/shots/system.png +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/scripts/build-plates.mjs +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/assets/codemble-mark-dark.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/assets/codemble-mark-light.svg +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/components/Search.astro +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/components/Tatebanko.astro +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/architecture.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/build-from-source.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/checks-and-lighting.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/contributing.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/correctness.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/early-testing.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/installation.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/introduction.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m1-parser.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m10-polyglot-release.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m12-galaxy-look.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m13-scale.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m2-galaxy.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m3-study.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m4-lens.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m5-checks.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m6-release.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m8-typescript.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m9-typescript-lens.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/quickstart.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/roadmap.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/star-chart.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/study-panel.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/the-galaxy.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content.config.ts +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/pages/index.astro +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/styles/custom.css +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/styles/landing.css +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/docs-site/src/styles/tokens.css +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/scripts/dev.sh +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/scripts/record_demo.sh +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/conftest.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/check_suites.json +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/concepts_sample.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/impact/alpha.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/impact/beta.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/impact/gamma.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/impact/helpers.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/impact/noisy.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/python_worker.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/src/broken.ts +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/src/legacy.js +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/src/local.js +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/src/main.ts +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/src/reexport.ts +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/src/util.ts +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/polyglot/src/widget.tsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/repeated_calls.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/.gitignore +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/ambiguous.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/api.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/app.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/broken.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/cli.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/pkg/__init__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/pkg/helpers.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/pkg/service.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/pkg/util.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/runner/__main__.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/fixtures/sampleproj/shared.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_checks.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_graph_finalization.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_mapview.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_parse_job.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_parse_progress.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_progress.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_project_parser.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_providers.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_python_ast.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_server.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_smoke.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_structural.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_study.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/tests/test_typescript_tree_sitter.py +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/README.md +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/index.html +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/scripts/check_graph_data.mjs +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/scripts/check_learner_session.mjs +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/scripts/record_demo.mjs +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/App.jsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/GalaxyCanvas.jsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/GuidanceLayer.jsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/MapView.jsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/ModeControl.jsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/StudyPanel.jsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/galaxyEffects.js +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/galaxyMaterials.js +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/graphData.js +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/learnerSession.js +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/main.jsx +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/styles.css +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/src/tokens.css +0 -0
- {codemble-0.5.2 → codemble-0.5.3}/web/vite.config.js +0 -0
|
@@ -5,6 +5,27 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · Versioning:
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.5.3] - 2026-07-21
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **A fresh install crashed on every JavaScript/TypeScript project.** The
|
|
12
|
+
dependency range allowed `tree-sitter` 0.26.0, which is ABI-incompatible with
|
|
13
|
+
the newest published grammar wheels (`tree-sitter-javascript` 0.25.0,
|
|
14
|
+
`tree-sitter-typescript` 0.23.2 — the only ones that exist). Partway through a
|
|
15
|
+
real project the parser died with a SIGSEGV inside `node_get_named_children`,
|
|
16
|
+
taking the whole process down with it: `codemble <path>` exited with no
|
|
17
|
+
traceback, and the app's local server vanished mid-parse, so the loading
|
|
18
|
+
screen reported "Lost contact with the local server" and stopped there.
|
|
19
|
+
Bisected on one machine, one project, one Python: 0.26.0 crashes every run,
|
|
20
|
+
0.25.2 is clean. The core is now pinned `<0.26`.
|
|
21
|
+
An install that already had 0.25.x kept working, which is why this stayed
|
|
22
|
+
invisible from a developer checkout — it only reached people installing
|
|
23
|
+
fresh, including through the documented `uvx codemble` path.
|
|
24
|
+
- A dependency guard now asserts the resolved `tree-sitter` version stays below
|
|
25
|
+
the segfaulting release. A behavioural test cannot catch this: a small snippet
|
|
26
|
+
parses and walks fine on 0.26.0, and every fixture in the suite is small,
|
|
27
|
+
which is exactly how it reached a release.
|
|
28
|
+
|
|
8
29
|
## [0.5.2] - 2026-07-20
|
|
9
30
|
|
|
10
31
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codemble
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.3
|
|
4
4
|
Summary: A learning game that turns the code AI wrote for you into a galaxy you light up by understanding it.
|
|
5
5
|
Project-URL: Homepage, https://udhawan97.github.io/Codemble/
|
|
6
6
|
Project-URL: Repository, https://github.com/udhawan97/Codemble
|
|
@@ -22,7 +22,7 @@ Requires-Python: >=3.11
|
|
|
22
22
|
Requires-Dist: fastapi>=0.115
|
|
23
23
|
Requires-Dist: tree-sitter-javascript<0.26,>=0.25
|
|
24
24
|
Requires-Dist: tree-sitter-typescript<0.24,>=0.23.2
|
|
25
|
-
Requires-Dist: tree-sitter<0.
|
|
25
|
+
Requires-Dist: tree-sitter<0.26,>=0.25
|
|
26
26
|
Requires-Dist: uvicorn>=0.30
|
|
27
27
|
Provides-Extra: dev
|
|
28
28
|
Requires-Dist: httpx>=0.27; extra == 'dev'
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Codemble v0.5.3 — fixes a crash on every fresh install
|
|
2
|
+
|
|
3
|
+
**If you installed Codemble recently and it died on a JavaScript or TypeScript
|
|
4
|
+
project, this is why. Please upgrade.**
|
|
5
|
+
|
|
6
|
+
Codemble's dependency range allowed `tree-sitter` 0.26.0, which is
|
|
7
|
+
ABI-incompatible with the newest published grammar wheels
|
|
8
|
+
(`tree-sitter-javascript` 0.25.0 and `tree-sitter-typescript` 0.23.2 — the only
|
|
9
|
+
ones that exist). Partway through parsing a real project the parser died with a
|
|
10
|
+
segmentation fault inside `node_get_named_children`, taking the whole process
|
|
11
|
+
down with it.
|
|
12
|
+
|
|
13
|
+
What that looked like:
|
|
14
|
+
|
|
15
|
+
- `codemble ./my-project` exited partway through with no traceback.
|
|
16
|
+
- In the app, the local server vanished mid-parse, so the loading screen stopped
|
|
17
|
+
on *"Lost contact with the local server"* and never recovered.
|
|
18
|
+
|
|
19
|
+
The core is now pinned `<0.26`.
|
|
20
|
+
|
|
21
|
+
## Why it escaped every check
|
|
22
|
+
|
|
23
|
+
An environment that already had `tree-sitter` 0.25.x kept working, so it was
|
|
24
|
+
invisible from a developer checkout and from CI's cache. It only hit people
|
|
25
|
+
installing **fresh** — including through `uvx codemble`, the documented install
|
|
26
|
+
path, which resolves the newest permitted version.
|
|
27
|
+
|
|
28
|
+
It also could not be caught by a behavioural test. A small snippet parses and
|
|
29
|
+
walks its children perfectly well on 0.26.0; the crash needs a corpus of real
|
|
30
|
+
size, and every fixture in the suite is small. That is precisely how it reached
|
|
31
|
+
a release.
|
|
32
|
+
|
|
33
|
+
So the guard added here asserts the **resolved dependency version** rather than
|
|
34
|
+
the behaviour: the suite now fails if `tree-sitter` resolves to the segfaulting
|
|
35
|
+
release. Verified both ways — it passes on 0.25.2 and fails on 0.26.0.
|
|
36
|
+
|
|
37
|
+
## Upgrading
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
uvx codemble@latest # or: uv tool upgrade codemble
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
No breaking changes: the CLI, the graph/checks API, and the on-disk progress
|
|
44
|
+
format are unchanged, and existing progress in `~/.codemble/` is read as-is.
|
|
45
|
+
|
|
46
|
+
## Honest note
|
|
47
|
+
|
|
48
|
+
The upper bound is deliberate, not caution. It should be raised only once a
|
|
49
|
+
grammar release has been verified against the newer core **on a project of real
|
|
50
|
+
size** — a snippet test will not tell you anything useful here.
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "codemble"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.3"
|
|
8
8
|
description = "A learning game that turns the code AI wrote for you into a galaxy you light up by understanding it."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -26,7 +26,12 @@ classifiers = [
|
|
|
26
26
|
]
|
|
27
27
|
dependencies = [
|
|
28
28
|
"fastapi>=0.115",
|
|
29
|
-
|
|
29
|
+
# Hard upper bound, not caution: tree-sitter 0.26.0 segfaults (SIGSEGV in
|
|
30
|
+
# node_get_named_children) against the newest published grammar wheels
|
|
31
|
+
# (javascript 0.25.0, typescript 0.23.2), which are the only ones available.
|
|
32
|
+
# Bisected on one env, one project: 0.26.0 crashes every run, 0.25.2 is clean.
|
|
33
|
+
# Raise this only once a grammar release is verified against the newer core.
|
|
34
|
+
"tree-sitter>=0.25,<0.26",
|
|
30
35
|
"tree-sitter-javascript>=0.25,<0.26",
|
|
31
36
|
"tree-sitter-typescript>=0.23.2,<0.24",
|
|
32
37
|
"uvicorn>=0.30",
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Guard the tree-sitter core/grammar pairing that the parser segfaults without.
|
|
2
|
+
|
|
3
|
+
tree-sitter 0.26.0 is ABI-incompatible with the newest published grammar wheels
|
|
4
|
+
(``tree-sitter-javascript`` 0.25.0, ``tree-sitter-typescript`` 0.23.2 — the only
|
|
5
|
+
ones that exist). Paired with 0.26.0 the parser dies with SIGSEGV inside
|
|
6
|
+
``node_get_named_children`` partway through a real project, taking the whole
|
|
7
|
+
process — and, in the app, the local server — down with it.
|
|
8
|
+
|
|
9
|
+
A behavioural test cannot catch this: a small snippet parses and walks fine on
|
|
10
|
+
0.26.0, and every fixture in this suite is small. It only trips on a corpus of
|
|
11
|
+
real size, which is exactly why it reached a release. So the guard asserts the
|
|
12
|
+
resolved version instead of the behaviour.
|
|
13
|
+
|
|
14
|
+
Raise the ceiling only after verifying a grammar release against the newer core
|
|
15
|
+
on a project of real size.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
import importlib.metadata as metadata
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _version_tuple(distribution: str) -> tuple[int, ...]:
|
|
24
|
+
raw = metadata.version(distribution)
|
|
25
|
+
return tuple(int(part) for part in raw.split(".")[:3] if part.isdigit())
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def test_tree_sitter_core_stays_below_the_segfaulting_release() -> None:
|
|
29
|
+
assert _version_tuple("tree-sitter") < (0, 26), (
|
|
30
|
+
"tree-sitter >= 0.26 segfaults against the published grammar wheels; "
|
|
31
|
+
"pyproject pins <0.26 deliberately."
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_tree_sitter_core_is_new_enough_for_the_grammars() -> None:
|
|
36
|
+
assert _version_tuple("tree-sitter") >= (0, 25), (
|
|
37
|
+
"the JS/TS adapter is written against the 0.25 Language/Parser API."
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def test_grammar_wheels_are_the_pinned_pairing() -> None:
|
|
42
|
+
assert _version_tuple("tree-sitter-javascript") >= (0, 25)
|
|
43
|
+
assert _version_tuple("tree-sitter-typescript") >= (0, 23, 2)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codemble-web",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "codemble-web",
|
|
9
|
-
"version": "0.5.
|
|
9
|
+
"version": "0.5.3",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@fontsource/jetbrains-mono": "5.2.8",
|
|
12
12
|
"@fontsource/shippori-mincho": "^5.3.0",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemble-0.5.2 → codemble-0.5.3}/docs/plans/2026-07-19-audience-modes-and-local-narration-design.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemble-0.5.2 → codemble-0.5.3}/docs/superpowers/plans/2026-07-19-galaxy-ux-shared-contract.md
RENAMED
|
File without changes
|
{codemble-0.5.2 → codemble-0.5.3}/docs/superpowers/specs/2026-07-19-galaxy-ux-overhaul-design.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemble-0.5.2 → codemble-0.5.3}/docs-site/src/content/docs/progress/m10-polyglot-release.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|