Conversation
|
This PR is stale because it has been open for 14 days with no activity. |
|
This PR was closed because it has been inactive for 7 days since being marked as stale. |
# Conflicts: # backend/chainlit/langchain/callbacks.py # backend/tests/data/storage_clients/test_gcs.py
Co-Authored-By: Cursor <cursoragent@cursor.com> Made-with: Cursor
Co-Authored-By: Cursor <cursoragent@cursor.com> Made-with: Cursor
Co-Authored-By: Cursor <cursoragent@cursor.com> Made-with: Cursor
|
@hayescode @sandangel It's ready for review now. There are still room for improvement, especially regardless E2E tests, but I think it's better to merge this "as is" and then contribute separate PRs after. If you have any questions - please write here. |
Earlier restores used the local main ref, which diverged from origin/main. Co-Authored-By: Cursor <cursoragent@cursor.com> Made-with: Cursor
hayescode
left a comment
There was a problem hiding this comment.
Well done @asvishnyakov much faster!
There was a problem hiding this comment.
8 issues found across 51 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="CONTRIBUTING.md">
<violation number="1" location="CONTRIBUTING.md:174">
P2: Use shell comment syntax (`#`) or separate explanatory text; `//` inline comments make these documented commands invalid when copy-pasted.</violation>
</file>
<file name="scripts/lint.py">
<violation number="1" location="scripts/lint.py:9">
P3: Function docstring is inaccurate: `main()` runs Ruff, not pytest.</violation>
</file>
<file name="package.json">
<violation number="1" location="package.json:33">
P1: `format:files`/`format` combine Prettier `--check` with `--write`, so format commands fail instead of writing fixes.</violation>
</file>
<file name="libs/copilot/package.json">
<violation number="1" location="libs/copilot/package.json:10">
P2: This `type-check` script silently skips TypeScript validation while still returning success, so workspace type-checking can pass with unchecked copilot type errors.</violation>
</file>
<file name="docs/plans/2026-03-31-eslint-v9-migration.md">
<violation number="1" location="docs/plans/2026-03-31-eslint-v9-migration.md:319">
P2: The added glob explanation line is malformed and uses an incorrect pattern (`backend/**/_.py`), which can misdocument the intended lint scope.</violation>
</file>
<file name="libs/react-client/package.json">
<violation number="1" location="libs/react-client/package.json:6">
P1: `preinstall` enforces pnpm in a published library package, which blocks npm/yarn users from installing `@chainlit/react-client`.</violation>
</file>
<file name="scripts/format.py">
<violation number="1" location="scripts/format.py:9">
P3: The function docstring is incorrect: this script runs `ruff format`, not pytest.</violation>
</file>
<file name="docs/research/ci-cache-optimization.md">
<violation number="1" location="docs/research/ci-cache-optimization.md:243">
P2: The added CI example uses removed workflow names/paths (`lint-ui.yaml`, `lint-backend.yaml`), so the snippet is incorrect and not runnable as written.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
@hayescode I forgot to dry run publish workflows to make sure nothing breaks on publishing, please don't merge before I do it UPD. Done
|
Keep reusable child workflows from cancelling each other so publish and publish-libs can run side by side while ci.yaml remains the single concurrency gate. Co-Authored-By: GPT-5.4 <noreply@openai.com> Made-with: Cursor
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="CONTRIBUTING.md">
<violation number="1" location="CONTRIBUTING.md:86">
P3: The new root-level run command makes the subsequent sample-file path guidance inconsistent; update that guidance to `backend/chainlit/sample/hello.py` to avoid contributor confusion.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/publish.yaml">
<violation number="1" location=".github/workflows/publish.yaml:70">
P1: `packages-dir` now points to `dist` at repo root, but artifacts are still built under `backend/dist`, so publish will fail to find packages.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.


PR summary
What
Completes the developer tooling refactor: unified workspace commands, Python tooling parity, CI restructure, parallel E2E, and shared agent config.
Frontend commands — root
package.jsonnow owns all entrypoints:pnpm lintpnpm lint:fixpnpm format-checkpnpm formatpnpm type-checkpnpm buildpnpm testpnpm test:e2epnpm test:e2e:interactiveNote:
Copilotis excluded from type checking because of its unusual structure: it depends directly on frontend sources rather than on a shared package.Python tooling — mirrors the JS side; all run from repo root:
uv run scripts/lint.pyuv run scripts/lint.py --fixuv run scripts/format.py --checkuv run scripts/format.pyuv run scripts/type_check.pypyproject.tomladded:ruff,mypy, andpytestconfig moved here frombackend/pyproject.tomluv.lockpromoted to repo root<3.14now explicitly declared.Other changes
CI — restructure checks so CI, lint-staged, and local dev all call the same entrypoints, eliminating the class of "works locally but fails in CI" bugs:
lint-backendcheck-backendscripts/lint.py-
scripts/format.py --check-
scripts/type_check.pylint-uicheck-frontendpnpm lint-
pnpm format-check-
pnpm type-checkpytest.yaml→tests.yaml; addpnpm testalongside pytest so frontend unit tests run in CI tooE2E — reduce CI time and improve isolation:
cypress-splitto distribute specs across configurable parallel shards per OSpnpm installlint-staged — use new root commands for all pre-commit checks:
pnpmcommands as CIactionlintfor.github/workflows/changesAI agent config — introduce
.shared/so Claude, Cursor, and Copilot read agent settings, rules, and skills from one place:AGENTS.mdCONTRIBUTING.mdand Copilot instructions to match new commandsDocs — add CI cache P2 implementation plan
Why
check-backend/check-frontendsurface individual failures faster than the old monolithic lint jobs..shared/removes copy-paste drift across Claude, Cursor, and Copilot configurations.