mirror of
https://github.com/openclaw/openclaw.git
synced 2026-10-03 01:29:56 +00:00
* fix(ui): keep the transcript end above the PR chip and let Side chat questions wrap Users following a long coding session saw the newest transcript rows clipped behind the pull-request chip and task-progress dock while the view believed it was at the end and hid the scroll-to-latest button; a width change "fixed" it. Live on a stable team instance the thread rested 48px short with the last row 25px under the PR chip. End-follow runs in a requestAnimationFrame after the commit that grows a row. For task-driven commits (tool-stream sync, session events) that frame precedes the row's ResizeObserver, so the follow scrolled to a stale maximum, and the outstanding end command never settled. The transcript host now records the maximum an end command targeted and re-targets it after commits when the committed maximum moved. The render-lifecycle change capture also tracks chatStreamSegments identity, so Codex-harness preamble growth schedules a follow at all. Pending-offset restoration moves to a sibling module to stay under the file-length cap. The Side chat prompt becomes an auto-growing textarea that reuses the main composer's sizing owner and send-key rule (Enter or the configured modifier shortcut asks, Shift+Enter adds a line); its composer lifecycle lives in chat-session-rail-composer.ts. Proof: chat-transcript-end-follow.browser.test.ts fails on the previous host (distance 48, programmatic true) and passes now; chat-scroll-dock.e2e.test.ts rests 181-601px short without the stream-segment capture and at 0 with it; chat-session-companion-composer.e2e.test.ts covers wrapping, Shift+Enter, verbatim multi-line asks, shrink-back, and modifier shortcuts. * test(ui): initialize settings in retained panel fixture Repair the exact-head CI failures in checks-ui (1/3) and checks-node-compact-large-9. The retained Review fixture must initialize settings before the Side chat shortcut binding reads them. Reuse loadSettings as production does; preserve runtime code and assertions. * test(ui): use reader input before transcript scroll assertions Exact-head CI exposed synthetic scrollTop writes racing outstanding end commands in position-rail, focused-row, and native-history scenarios. Send real wheel input through the existing cancellation owner before asserting reader geometry. Preserve all assertions, timeouts, and runtime behavior. The ten targeted E2E cases, changed checks, and scoped autoreview pass. * fix(ui): re-pin only a reader still resting at the transcript end The first end-follow repair re-targeted any outstanding end command when the committed maximum moved. An instant follow that does not move emits no scroll event, so that command lingered, and a reader who later left the end without an input event (find-in-page, focus navigation, programmatic scroll) was pulled back by the next growth; three e2e tests had been switched to wheel input to hide exactly that. The host now keeps an explicit end anchor: the maximum a reader is known to rest at, set by an instant end-follow or observed after any commit. A commit that moves the end while the reader still sits at the previous end re-pins them; a reader found anywhere else clears the anchor and is never pulled back. The three e2e tests return to their original programmatic scrolls. Proof: chat-transcript-end-follow.browser.test.ts adds a programmatic departure case (348px yank on the previous retarget, 0 now) and an observed-at-end growth case (48px short without the anchor, 0 now); the restored e2e files pass unmodified. * fix(ui): preserve disclosure anchors during end-follow Exact-head CI exposed transcript disclosure expansion moving the clicked row by 120-357 px. Retire the end anchor when the interaction captures its row and defer end reconciliation during its measurement commit, so the pending virtual sizer cannot re-arm a stale end. The three existing disclosure cases fail before and pass after. All three browser end-follow regressions and 20 focused E2E cases pass; changed checks and scoped P0-P2 autoreview are clean.
239 lines
5.4 KiB
Text
239 lines
5.4 KiB
Text
node_modules
|
|
**/node_modules/
|
|
.env
|
|
docker-compose.override.yml
|
|
docker-compose.extra.yml
|
|
docker-compose.sandbox.yml
|
|
dist
|
|
dist-runtime/
|
|
dist-sea/
|
|
pnpm-lock.yaml
|
|
bun.lock
|
|
bun.lockb
|
|
coverage
|
|
__openclaw_vitest__/
|
|
__pycache__/
|
|
*.pyc
|
|
*.tsbuildinfo
|
|
.pnpm-store
|
|
.worktrees/
|
|
.DS_Store
|
|
**/.DS_Store
|
|
ui/src/ui/__screenshots__/
|
|
ui/playwright-report/
|
|
ui/test-results/
|
|
packages/dashboard-next/.next/
|
|
packages/dashboard-next/out/
|
|
|
|
# Mise configuration files
|
|
mise.toml
|
|
|
|
# Android build artifacts
|
|
apps/android/.gradle/
|
|
apps/android/app/build/
|
|
apps/android/.cxx/
|
|
apps/android/.kotlin/
|
|
apps/android/benchmark/results/
|
|
|
|
# Bun build artifacts
|
|
*.bun-build
|
|
apps/macos/.build/
|
|
apps/macos-mlx-tts/.build/
|
|
apps/shared/MoltbotKit/.build/
|
|
apps/shared/OpenClawKit/.build/
|
|
apps/shared/*/.build/
|
|
packages/*/dist/
|
|
apps/shared/OpenClawKit/Package.resolved
|
|
# Xcode rewrites local-package Package.resolved with the iOS app supergraph on
|
|
# every resolve; swabble's only runtime dep is exact-pinned in Package.swift.
|
|
apps/swabble/Package.resolved
|
|
**/ModuleCache/
|
|
bin/
|
|
bin/clawdbot-mac
|
|
apps/macos/.build-local/
|
|
apps/macos/.swiftpm/
|
|
apps/shared/MoltbotKit/.swiftpm/
|
|
apps/shared/OpenClawKit/.swiftpm/
|
|
apps/shared/*/.swiftpm/
|
|
Core/
|
|
apps/ios/*.xcodeproj/
|
|
apps/ios/*.xcworkspace/
|
|
apps/ios/.swiftpm/
|
|
apps/ios/.derivedData/
|
|
apps/ios/.local-signing.xcconfig
|
|
vendor/
|
|
apps/ios/Clawdbot.xcodeproj/
|
|
apps/ios/Clawdbot.xcodeproj/**
|
|
apps/macos/.build/**
|
|
apps/macos-mlx-tts/.build/**
|
|
**/*.bun-build
|
|
apps/ios/*.xcfilelist
|
|
|
|
# Vendor build artifacts
|
|
vendor/a2ui/renderers/lit/dist/
|
|
src/canvas-host/a2ui/*.bundle.js
|
|
src/canvas-host/a2ui/*.map
|
|
extensions/canvas/src/host/a2ui/*.bundle.js
|
|
extensions/canvas/src/host/a2ui/*.map
|
|
.bundle.hash
|
|
|
|
# fastlane (iOS)
|
|
apps/ios/fastlane/README.md
|
|
apps/android/fastlane/README.md
|
|
apps/ios/fastlane/report.xml
|
|
apps/ios/fastlane/Preview.html
|
|
apps/ios/fastlane/screenshots/
|
|
apps/ios/fastlane/metadata/*/release_notes.txt
|
|
apps/ios/fastlane/test_output/
|
|
apps/ios/fastlane/logs/
|
|
apps/ios/fastlane/.env
|
|
apps/android/fastlane/report.xml
|
|
apps/android/fastlane/Preview.html
|
|
apps/android/fastlane/test_output/
|
|
apps/android/fastlane/logs/
|
|
apps/android/fastlane/.env
|
|
apps/android/fastlane/metadata/android/**/images/
|
|
|
|
# fastlane build artifacts (local)
|
|
apps/ios/*.ipa
|
|
apps/ios/*.dSYM.zip
|
|
|
|
# provisioning profiles (local)
|
|
apps/ios/*.mobileprovision
|
|
|
|
# Local untracked files
|
|
.local/
|
|
docs/.local/
|
|
docs/internal/
|
|
tmp/
|
|
IDENTITY.md
|
|
USER.md
|
|
# Keep packaged workspace templates visible to Git-aware remote syncs.
|
|
!docs/reference/templates/IDENTITY.md
|
|
!docs/reference/templates/USER.md
|
|
# Exception: oc-path real-world test fixtures need to be tracked even
|
|
# though the bare names match the local-untracked rule above.
|
|
!extensions/oc-path/src/oc-path/tests/fixtures/real/IDENTITY.md
|
|
!extensions/oc-path/src/oc-path/tests/fixtures/real/USER.md
|
|
*.tgz
|
|
*.tar.gz
|
|
*.zip
|
|
.idea
|
|
.vscode/
|
|
|
|
# local tooling
|
|
.antigravitycli/
|
|
.serena/
|
|
.crabbox/
|
|
/.openclaw/trajectory-exports/
|
|
|
|
# local QA evidence mirrors; CI publishes canonical Mantis files as Actions artifacts
|
|
/mantis/
|
|
|
|
# Keep repository skills visible to Git-aware syncs; local-only skill ignores
|
|
# belong in .git/info/exclude.
|
|
.agents/skills/**/*.orig
|
|
.agents/skills/**/__pycache__/
|
|
.agents/skills/**/*.py[cod]
|
|
|
|
# Agent credentials and memory (NEVER COMMIT)
|
|
/memory/
|
|
.agent/*.json
|
|
!.agent/workflows/
|
|
/local/
|
|
/client_secret_*.json
|
|
package-lock.json
|
|
!.github/release/clawhub-cli/package-lock.json
|
|
!src/commands/copilot-sdk-install-manifest/package-lock.json
|
|
.claude/*
|
|
# Track the shared Claude Code project config (worktree auto-install hook) and the
|
|
# skills symlink into .agents/skills; keep everything else under .claude/
|
|
# (worktrees, settings.local.json) ignored.
|
|
!.claude/settings.json
|
|
!.claude/skills
|
|
.agent/
|
|
skills-lock.json
|
|
|
|
# Local iOS signing overrides
|
|
apps/ios/LocalSigning.xcconfig
|
|
|
|
# Xcode build directories (xcodebuild output)
|
|
apps/ios/build/
|
|
apps/shared/OpenClawKit/build/
|
|
apps/swabble/build/
|
|
*.xcresult
|
|
*.trace
|
|
*.profraw
|
|
|
|
# Generated protocol schema (produced via pnpm protocol:gen)
|
|
dist/protocol.schema.json
|
|
packages/gateway-protocol/protocol.schema.json
|
|
.ant-colony/
|
|
|
|
# Eclipse
|
|
**/.project
|
|
**/.classpath
|
|
**/.settings/
|
|
**/.gradle/
|
|
|
|
# Synthing
|
|
**/.stfolder/
|
|
.dev-state
|
|
docs/superpowers
|
|
.superpowers/
|
|
test/config-form.analyze.telegram.test.ts
|
|
ui/src/ui/theme-variants.browser.test.ts
|
|
ui/src/ui/__screenshots__
|
|
ui/src/ui/views/__screenshots__
|
|
ui/.vitest-attachments
|
|
ui/.vitest/
|
|
|
|
# Generated docs baseline artifacts (locally generated, only drift detectors tracked)
|
|
docs/.generated/*.json
|
|
!docs/.generated/config-baseline.counts.json
|
|
docs/.generated/*.jsonl
|
|
!docs/.generated/plugin-sdk-api-baseline/
|
|
!docs/.generated/plugin-sdk-api-baseline/*.json
|
|
|
|
# Deprecated changelog fragment workflow
|
|
changelog/fragments/
|
|
|
|
# Local scratch workspace
|
|
.tmp/
|
|
.cache/
|
|
.pytest_cache/
|
|
.ruff_cache/
|
|
.mypy_cache/
|
|
.vmux*
|
|
.artifacts/
|
|
.amp/portals/
|
|
.openclaw-config-doc-cache/
|
|
openclaw-path-alias-*/
|
|
/.pi/
|
|
/C:\\openclaw/
|
|
*.log
|
|
*.tmp
|
|
*.heapsnapshot
|
|
*.cpuprofile
|
|
*.prof
|
|
test/fixtures/openclaw-vitest-unit-report.json
|
|
analysis/
|
|
.artifacts/qa-e2e/
|
|
/runs/
|
|
/data/rtt.jsonl
|
|
extensions/qa-lab/web/dist/
|
|
|
|
# Generated bundled plugin runtime dependency manifests
|
|
extensions/**/.openclaw-runtime-deps.json
|
|
extensions/**/.openclaw-runtime-deps-stamp.json
|
|
extensions/diffs/assets/viewer-runtime.js
|
|
extensions/diffs-language-pack/assets/viewer-runtime.js
|
|
extensions/discord/assets/embedded-app-sdk.mjs
|
|
|
|
# Output dir for scripts/run-opengrep.sh (local opengrep scans)
|
|
/.opengrep-out/
|
|
/.crabbox-artifacts
|
|
.comux*
|
|
|
|
# Pinned Swift lint/format tools installed by scripts/install-swift-tools.sh
|
|
.build/
|