mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-07-09 17:19:02 +00:00
* fix(cli): drop redundant "generating more" cue from the live preview In non-VP mode the live markdown preview is clipped to a rendered-height budget so the frame never overflows the viewport and triggers ink's scroll-to-top full redraw. It used to append a "... generating more ..." cue (and code/math/mermaid blocks appended their own) to signal that the clipped tail was still coming. Since #6170 landed the incremental scrollback commit, that tail is streamed into <Static> in real time — clipped content is "still streaming" and reappears within a commit cycle, not "delayed output". The cue is therefore redundant noise that flickers in step with the commit cycle, so remove all four occurrences (outer preview clip, code block, mermaid block, math block). The row each cue used to occupy is reclaimed for content, so the total rendered height is unchanged: the code/math/mermaid RESERVED_LINES drop by one and the outer slice trigger switches from the (now-inlined) `clipped` flag to `keptLines < allLines.length`. The TableRenderer "… more rows streaming …" clamp is intentionally kept — an in-progress oversized table is not yet in scrollback, so that cue still carries information. Also gitignore the nested `.qwen/computer-use/` marker so the auto-generated artifact stops showing up as untracked. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(cli): hold back the unterminated table row while streaming While a markdown table streams, the frontier line is often a half-typed row like `| a | b` with no closing `|` yet. Because TABLE_ROW_RE requires both a leading and trailing pipe, that partial line does not match, so the parser closed the table and rendered the partial as a plain text line below it — then, once the closing `|` arrived, flipped it into the table. This per-token flip changed the frame height and re-ran column autosizing on every keystroke, jittering the live table. Hold the partial row back instead: when pending, if the final line is an unterminated table row and at least one complete row already exists, skip it so `inTable` stays set and the end-of-content handler keeps rendering the accumulated rows as a live table. The row appears the moment it terminates. The `tableRows.length > 0` guard keeps the header + separator from blanking out while the very first row is still being typed. Note: this smooths the table content itself; it does not change the streaming repaint frequency, so the fixed bottom controls still repaint on each tick (that is the domain of the flicker-reduction work, e.g. #5396). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(cli): fix two stale "generating more" cue references in comments Review follow-up: two comments still referenced the removed outer cue. - TABLE_PENDING_RESERVED_ROWS: reword "marginY 2 + the outer cue" to "marginY 2 + one row of wrapped-cell safety headroom". The reserve stays at 3 on purpose — tables under-estimate their rendered height the most (wrapped cells), so they keep one more backstop row than the other blocks; lowering it would shrink that safety margin. - pending-rendered-height PendingSliceResult.keptLines JSDoc: drop the "plus a 'more' cue" phrasing — the caller now renders nothing rather than an oversized row. Comment-only; no behaviour change. 155 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(cli): hold back the partial first table row too; de-dup reserve constant Review follow-up on the streaming table hold-back. - The `tableRows.length > 0` guard skipped the hold-back for the FIRST data row: a partial first row fell through to the table-closing branch, which also requires a row, so the header + separator were dropped and the partial rendered as a stray text line — the same per-token flip the change is meant to remove, just for the first row. Relax the guard to `tableHeaders.length > 0` so an unterminated first row/separator is held back too; the table is simply not drawn until its first row terminates, then pops in complete and grows one row at a time. Comment corrected to describe the actual behaviour. - Add a test for that edge case (partial first row held back, table appears once the row terminates). - De-duplicate the magic `3`: the slice-side `tableClampRows` estimate now references `TABLE_PENDING_RESERVED_ROWS` (moved to the top-of-file constants) instead of a literal, so the estimate and RenderTable's render-side `maxHeight` cap can never diverge. 157 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
132 lines
2.9 KiB
Text
132 lines
2.9 KiB
Text
# API keys and secrets
|
|
.env
|
|
.env~
|
|
|
|
# gemini-cli settings
|
|
# We want to keep the .gemini in the root of the repo and ignore any .gemini
|
|
# in subdirectories. In our root .gemini we want to allow for version control
|
|
# for subcommands.
|
|
**/.gemini/
|
|
!/.gemini/
|
|
.gemini/*
|
|
!.gemini/config.yaml
|
|
!.gemini/commands/
|
|
|
|
# Note: .qwen-clipboard/ is NOT in gitignore so Gemini can access pasted images
|
|
|
|
# Dependency directory
|
|
node_modules
|
|
bower_components
|
|
package-lock.json
|
|
|
|
# Editors
|
|
.idea
|
|
*.iml
|
|
.cursor
|
|
.qoder
|
|
.claude
|
|
.codex
|
|
.worktrees/
|
|
.atlarix/
|
|
|
|
# Qwen Code Configs
|
|
.qwen/*
|
|
!.qwen/commands/
|
|
!.qwen/commands/**
|
|
!.qwen/skills/
|
|
!.qwen/skills/**
|
|
# Re-ignore auto-generated skills (created by the managed-skill-extractor
|
|
# agent with the mandatory `auto-skill-` directory prefix). Git's last-rule-
|
|
# wins semantics keep hand-authored project skills tracked while excluding
|
|
# these transient, session-specific directories. The `auto-skill-` prefix is
|
|
# reserved for auto-generated skills — do not hand-author a project skill with
|
|
# this prefix, or its directory will be ignored here.
|
|
.qwen/skills/auto-skill-*/
|
|
# Staging area for auto-skills awaiting confirmation (memory.autoSkillConfirm).
|
|
# Already covered by `.qwen/*` above since it's never re-included, but listed
|
|
# explicitly alongside auto-skill-*/ so the intent is obvious.
|
|
.qwen/pending-skills/
|
|
!.qwen/agents/
|
|
!.qwen/agents/**
|
|
# Team memory (memory.enableTeamMemory) is shared with collaborators THROUGH
|
|
# git, so it must be tracked despite the `.qwen/*` ignore above.
|
|
!.qwen/team-memory/
|
|
!.qwen/team-memory/**
|
|
|
|
# Developer-local session identifier (auto-generated by qwen serve).
|
|
.qwen-session
|
|
|
|
# OS metadata
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# TypeScript build info files
|
|
*.tsbuildinfo
|
|
|
|
# Ignore built ts files
|
|
dist
|
|
packages/audio-capture/build/
|
|
packages/audio-capture/prebuilds/
|
|
|
|
# Docker folder to help skip auth refreshes
|
|
.docker
|
|
|
|
bundle
|
|
|
|
# Test report files
|
|
junit.xml
|
|
packages/*/coverage/
|
|
|
|
# PR body draft
|
|
pr_body.md
|
|
|
|
# Generated files
|
|
packages/cli/src/generated/
|
|
packages/core/src/generated/
|
|
packages/web-templates/src/generated/
|
|
.integration-tests/
|
|
packages/vscode-ide-companion/*.vsix
|
|
|
|
logs/
|
|
.repro-runs/
|
|
# GHA credentials
|
|
gha-creds-*.json
|
|
|
|
# Log files
|
|
patch_output.log
|
|
|
|
# docs build
|
|
docs-site/.next
|
|
# content is a symlink to ../docs
|
|
docs-site/content
|
|
|
|
# python cache
|
|
__pycache__/
|
|
|
|
integration-tests/concurrent-runner/output/
|
|
integration-tests/concurrent-runner/task-*
|
|
|
|
integration-tests/terminal-capture/scenarios/screenshots/
|
|
|
|
# Test-built worker artifact (fzfWorkerHandle.test.ts builds this on-the-fly)
|
|
packages/core/src/utils/filesearch/fzfWorker.js
|
|
|
|
# storybook
|
|
*storybook.log
|
|
storybook-static
|
|
|
|
# test
|
|
coverage/
|
|
|
|
# Dev symlink: qc-helper bundled skill docs (created by scripts/dev.js)
|
|
packages/core/src/skills/bundled/qc-helper/docs
|
|
tmp/
|
|
.worktrees/
|
|
|
|
# code graph skills
|
|
.venv
|
|
.codegraph
|
|
.qwen/computer-use/installed.json
|
|
# Auto-generated computer-use marker can also appear under nested packages.
|
|
**/.qwen/computer-use/
|
|
.playwright-mcp/
|