Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 5 additions & 6 deletions .github/workflows/cross-repo-python-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,11 @@ jobs:
test_command: xvfb-run --auto-servernum pytest tests/shared_contracts/ --timeout=60 --timeout-method=thread -v --tb=short
env_name: REQUIRE_REAL_TOOLS_REPO
sparse_checkout: |
chat
contracts.py
python/src/utils
shared
sidekick
src/shared/python
src/chat
src/contracts.py
src/python/src/utils
src/shared
src/sidekick
Comment on lines +85 to +89

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the sparse-checkout contract in sync

When the repository's workflow-contract tests run, these renamed UpstreamDrift roots make tests/ops/test_cross_repo_python_integration.py fail because REQUIRED_SPARSE_PATHS and test_upstream_scope_includes_every_release_build_package_root still require the unprefixed package roots plus src/shared/python. Running python -m pytest -q -o addopts='' -p no:pytest-qt tests/ops/test_cross_repo_python_integration.py produces two assertion failures, so either preserve the contracted paths or update the contract tests together with the downstream layout change.

Useful? React with 👍 / 👎.

tests/shared_contracts
tests/support

Expand Down
3 changes: 3 additions & 0 deletions .jules/bolt.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,6 @@
## 2025-05-18 - Avoid array methods for small static arrays in frequently called initializers
**Learning:** Using `.reduce()` or `.map()` on static arrays like tabs definitions inside frequently called functions (e.g. state initializers or local storage hydration) incurs unnecessary closure and function call overhead.
**Action:** Replace `.reduce()` and `.map()` with single-pass `for` loops in simple data transformation functions (like `defaultTabVisibility`) to eliminate closure allocations.
## 2026-08-13 - Replace chained .map().join() in CSV generation
**Learning:** Using chained array methods like `.map().join()` for large data serialization (like CSV exports) allocates intermediate arrays for every row, putting immense pressure on the garbage collector and stalling the main thread.
**Action:** Replace chained array map/join operations in data serialization hot paths with single-pass `for` loops and string concatenation to eliminate intermediate allocations.
3 changes: 3 additions & 0 deletions .jules/palette.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,6 @@
## 2024-05-31 - Tab Roles vs aria-pressed
**Learning:** When implementing custom tab components in React, use `role="tab"` paired strictly with `aria-selected` (not `aria-pressed`, which is intended for toggle buttons) and ensure `aria-controls` points to a valid `role="tabpanel"` container whose `aria-labelledby` points back to the tab.
**Action:** When adding accessible properties to custom tabs, replace `aria-pressed` with `aria-selected`, ensure a `role="tablist"` wrapper is present, and correctly cross-reference `aria-controls` with the tab panel IDs.
## 2024-05-31 - React `useId()` for Input Labels
**Learning:** When improving accessibility for React form inputs where explicit IDs are missing, using hardcoded IDs can cause conflicts if components render multiple times.
**Action:** When improving accessibility for React form inputs where explicit IDs are missing, use the `useId()` hook to safely generate unique, deterministic identifiers for reliably mapping `<label htmlFor={...}>` to `<input id={...}>` elements.
Loading
Loading