Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
70eb449
refactor(harmonyos): split the app shell into MVVM layers
wgqqqqq Aug 7, 2026
61a957b
chore(scripts): check HarmonyOS architecture boundaries
wgqqqqq Aug 7, 2026
92a6203
chore(i18n): unify copy wording in zh-CN and zh-TW locale
liao-zh Aug 9, 2026
8a5dbaa
Merge pull request #2172 from liao-zh/main
GCWing Aug 9, 2026
a86e191
refactor(external-sources): simplify integration controls
limityan Aug 9, 2026
70c5a07
fix(agent): include goal lifecycle tools in Cowork
bobleer Aug 9, 2026
1f538b9
Merge pull request #2178 from bobleer/bob/fix-cowork-goal-tools
bobleer Aug 9, 2026
145651d
fix(remote-ssh): restore target selection and container stdin
bobleer Aug 9, 2026
140b872
fix(agent): enforce goal tools for primary sessions
bobleer Aug 9, 2026
d70cbbc
Merge pull request #2179 from bobleer/bob/fix-remote-connection-mode
bobleer Aug 9, 2026
c6badb7
Merge pull request #2180 from bobleer/bob/fix-primary-agent-goal-tools
bobleer Aug 9, 2026
ae6b6a8
Merge pull request #2160 from wgqqqqq/feat/mobile-agent-chat
wgqqqqq Aug 10, 2026
d05480e
refactor(account): centralize account runtime ownership
zvzuola Aug 9, 2026
3c8fb1b
perf(desktop): coalesce streamed text chunks before transport emit
Aug 7, 2026
9edf754
perf(desktop): adapt coalescing window to stream rate and honor deadl…
Aug 9, 2026
e8e8e16
fix(acp-agents): hide remote servers without deleting
wgqqqqq Aug 10, 2026
f932db6
feat(web-ui): add pet switch settings action
bobleer Aug 10, 2026
cb2215f
fix(acp-agents): register hidden remote appearance parts
wgqqqqq Aug 10, 2026
89890ec
fix(ai): route subscription auth through the configured proxy
guan Aug 10, 2026
0a01af4
Merge pull request #2183 from bobleer/bob/pet-context-switch-settings
bobleer Aug 10, 2026
4781e45
Merge pull request #2182 from wgqqqqq/fix/acp-hide-remote-servers
wgqqqqq Aug 10, 2026
0fba60c
chore(release): bump version to 0.2.17
wgqqqqq Aug 10, 2026
dcb2e22
fix(settings): refine session title model configuration
wsp1911 Aug 10, 2026
7bd4b3d
Merge pull request #2185 from wgqqqqq/chore/bump-version-0.2.17
wgqqqqq Aug 10, 2026
36a4793
fix(ai): preserve subscription proxy compatibility
bobleer Aug 10, 2026
bffe514
Merge pull request #2184 from guantw/fix/subscription-auth-proxy
bobleer Aug 10, 2026
a28b141
fix(ci): generate web bindings in nightly build
wgqqqqq Aug 10, 2026
5700984
fix(dispatch): keep model and approval in the composer, provision the…
bobleer Aug 10, 2026
1d327f4
fix(ci): pass public key when signing Windows installer
wgqqqqq Aug 10, 2026
ae12a76
taiji fork customizations (squashed, single-commit delivery form)
1688mengdie Aug 10, 2026
fd2e87e
Merge pull request #2189 from wgqqqqq/agent/fix-desktop-package-signi…
wgqqqqq Aug 10, 2026
c326156
fix(appearance): skip dependency dirs in contract audit walks
bobleer Aug 10, 2026
909eea6
Merge remote-tracking branch 'upstream/main' into fix/nightly-generat…
wgqqqqq Aug 10, 2026
e63084b
Merge pull request #2187 from wgqqqqq/fix/nightly-generate-web-api-bi…
wgqqqqq Aug 10, 2026
b1b5f0f
fix(ci): core boundary steering ownership + legion appearance part
1688mengdie Aug 10, 2026
a73040d
Merge upstream/main (CI: appearance audit dep-dir skip + Windows inst…
1688mengdie Aug 10, 2026
6ad39c2
fix(i18n): remove CJK from config component comments
1688mengdie Aug 10, 2026
144b236
fix(theme): replace undefined appearance var with standard token and …
1688mengdie Aug 10, 2026
54e4fcd
fix(engine): remove dead finalize_rounds_completed counter
1688mengdie Aug 10, 2026
129e6ad
feat(remote): mint account credentials for keyboard-less peer devices
wgqqqqq Aug 10, 2026
c04086e
feat(mobile): relay watch provisioning and hand the credential over
wgqqqqq Aug 10, 2026
7cc1a68
fix(core): remove dead code left by threshold config-parameterization…
1688mengdie Aug 10, 2026
8fd0ae3
fix(release): reject duplicate asset names before upload
wgqqqqq Aug 10, 2026
332f640
Merge pull request #2194 from wgqqqqq/fix/release-asset-name-collisions
wgqqqqq Aug 10, 2026
a1268b5
perf(build): shrink capability and validation closures
limityan Aug 9, 2026
0102b76
feat(browser): connect CDP to real user profiles
bobleer Aug 10, 2026
a4fc4c2
fix(browser): open the real remote debugging page for default CDP
bobleer Aug 10, 2026
b30cda4
fix(browser): reattach to the running browser on startup
bobleer Aug 10, 2026
807aaa7
fix(security): SessionHistory authorization check
1688mengdie Aug 10, 2026
6bd46cd
fix(ai): retry transient gateway model loss
bobleer Aug 10, 2026
d3cceb3
fix(config): document ai.legion_* top-level keys
1688mengdie Aug 10, 2026
14bc925
fix(web-ui): add subagent dispatch fields to ThresholdsConfig
1688mengdie Aug 10, 2026
c2272c8
fix(goal): prepare worktree before goal turns
bobleer Aug 10, 2026
573054c
fix(security): explicit allowlists for Executor/Reviewer templates an…
1688mengdie Aug 10, 2026
28b9849
fix(reliability): quarantine corrupt shame-wall registry before fallback
1688mengdie Aug 10, 2026
bb960f4
fix(ci): preserve sherpa native cache artifacts
bobleer Aug 10, 2026
0e20d9d
fix(perf): debounce turn-context snapshot writes (PERF-01)
1688mengdie Aug 10, 2026
3dfc372
Merge pull request #2193 from wgqqqqq/feat/watch-provisioning
wgqqqqq Aug 10, 2026
734e5b0
Merge pull request #2197 from bobleer/bob/retry-transient-invalid-mod…
bobleer Aug 10, 2026
b5939d7
fix(cli): inject ai.knowledge_base_root into BITFUN_KNOWLEDGE_BASE_RO…
1688mengdie Aug 10, 2026
3d98408
fix(persistence): publish session transcripts atomically (UX-P1-7)
1688mengdie Aug 10, 2026
9f2c243
fix(legion): serialize frequency check/reserve and use workspace-wide…
1688mengdie Aug 10, 2026
dfa0c96
fix(web-ui): knowledge base root field and legionRole display-only an…
1688mengdie Aug 10, 2026
d8698a0
fix(token): dedup UserSteering by steering-id metadata (TOKEN-01)
1688mengdie Aug 10, 2026
57ed0bb
fix(web-ui): complete thresholds render + legion a11y and scene contr…
1688mengdie Aug 10, 2026
0eddea2
fix(security): P2 defense-in-depth batch (S1/S2/S4-S8 + UX-P2-2/3/4)
1688mengdie Aug 10, 2026
bca0dc7
fix(perf): event-queue lock-free stats (PERF-02) + User Context cache…
1688mengdie Aug 10, 2026
9fd4dd7
Merge remote-tracking branch 'upstream/main'
1688mengdie Aug 10, 2026
9ef2d57
fix(merge): map customized plan/workspace/acp tools to feature owners…
1688mengdie Aug 10, 2026
a945ff4
fix(web-ui): move non-component export out of ChatInput to satisfy re…
1688mengdie Aug 10, 2026
b1f3145
fix(ci): unblock frontend build - compat get_effective_session_path, …
1688mengdie Aug 10, 2026
e7a095c
fix(session): resolve cross-workspace session binding via projects-ro…
1688mengdie Aug 10, 2026
0294d40
fix(rust): gate PortResult import under ssh-remote feature to clear u…
1688mengdie Aug 10, 2026
9152af3
feat(web-ui): show paths in file mentions
kev1n77 Aug 11, 2026
bf2038f
fix(ai): retry every provider error
bobleer Aug 11, 2026
362c189
perf(core): isolate document and subscription capabilities
limityan Aug 10, 2026
5a9479f
test(cli): cover exhaustive provider retries
bobleer Aug 11, 2026
a459967
Merge pull request #2200 from kev1n77/fmy/dev
kev1n77 Aug 11, 2026
22f5411
Merge pull request #2201 from GCWing/bob/retry-all-ai-request-errors
bobleer Aug 11, 2026
e7aef63
fix(browser): make startup reattach opt-in
bobleer Aug 11, 2026
92a7aa8
Merge pull request #2203 from bobleer/bob/browser-cdp-auto-connect-op…
bobleer Aug 11, 2026
8087510
docs(agents): expand remote scenario guardrails
bobleer Aug 11, 2026
47c033b
Merge pull request #2204 from GCWing/bob/agents-remote-scenarios
bobleer Aug 11, 2026
6c517d7
Merge remote-tracking branch 'upstream/main'
1688mengdie Aug 11, 2026
c5e83c1
feat(ai): improve models.dev reasoning preset configuration
wsp1911 Aug 11, 2026
bae89a5
fix(settings): streamline copy and align controls
bobleer Aug 11, 2026
2bec893
Merge pull request #2207 from bobleer/bob/settings-ui-consistency
bobleer Aug 11, 2026
b8d6d6e
fix: 注入开关/泄露链/steering 修复 + P2/Platform-P1 批量修复
1688mengdie Aug 11, 2026
9b67ab9
Merge remote-tracking branch 'upstream/main' (20260811-02: settings …
1688mengdie Aug 11, 2026
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
  •  
  •  
  •  
86 changes: 85 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,41 @@ jobs:
cargo test --locked -p terminal-core background_only_binding_is_owned_by_the_session -- --test-threads=1

# ── Rust: build check ─────────────────────────────────────────────
# Cargo-deny gate: advisories + licenses + sources (+ bans at warn level).
# Kept on Linux only - the license/source graph is OS-independent, so a
# single check covers the whole workspace without triplicating the run.
cargo-deny:
name: Cargo Deny (advisories + licenses)
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable

- uses: swatinem/rust-cache@v2
with:
shared-key: "cargo-deny-v1"
cache-bin: false

- name: Install cargo-deny
run: cargo install cargo-deny --locked --version 0.20.2

- name: Deny advisories
run: cargo deny check advisories

- name: Deny licenses
run: cargo deny check licenses

- name: Deny sources
run: cargo deny check sources

rust-build-check:
name: Rust Build Check (${{ matrix.os }})
runs-on: ${{ matrix.os }}
# Rust workspace check + 6 test groups across 3 OS; generous but bounded
# so a wedged dependency/network cannot burn the full 6h default.
timeout-minutes: 60
env:
# Keep the workspace check plus desktop test profiles within hosted-runner disk limits.
CARGO_INCREMENTAL: "0"
Expand Down Expand Up @@ -197,13 +229,62 @@ jobs:

- uses: swatinem/rust-cache@v2
with:
shared-key: "ci-check-v3-${{ runner.os }}-no-cargo-bin-v1"
shared-key: "ci-check-v4-${{ runner.os }}-no-cargo-bin-v1-sherpa-native-v1"
cache-bin: false
# sherpa-onnx-sys stores downloaded native archives beside Cargo's
# normal artifacts. Preserve that directory with the build-script
# fingerprints that reference it, or restored test builds cannot link.
cache-directories: |
target/sherpa-onnx-prebuilt
# PR caches are scoped to merge refs; trusted main pushes own shared
# refreshes and retain completed dependency builds after late test failures.
save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
cache-on-failure: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

# sherpa-onnx-sys downloads its native static libraries from GitHub
# Releases at build time. Hosted runners intermittently fail that
# download (network/rate limits), so pre-fetch and extract the archive
# here, then point SHERPA_ONNX_LIB_DIR at the extracted lib directory.
# The build script uses that variable directly without any cache/rerun
# logic, so both `cargo check` and `cargo test` link against the same
# pre-fetched libraries. Windows is skipped: its archive is already
# cached in the rust-cache path and the previous failures were Linux and
# macOS only.
- name: Pre-download sherpa-onnx native libraries
if: runner.os != 'Windows'
shell: bash
env:
SHERPA_VERSION: "1.13.4"
run: |
set -euo pipefail
case "${{ runner.os }}" in
Linux)
archive="sherpa-onnx-v${SHERPA_VERSION}-linux-x64-static-lib.tar.bz2"
;;
macOS)
archive="sherpa-onnx-v${SHERPA_VERSION}-osx-arm64-static-lib.tar.bz2"
;;
*)
exit 0
;;
esac
mkdir -p "$RUNNER_TEMP/sherpa-onnx-libs"
archive_path="$RUNNER_TEMP/sherpa-onnx-libs/$archive"
if [ ! -f "$archive_path" ]; then
curl -fL --retry 5 --retry-all-errors \
"https://github.com/k2-fsa/sherpa-onnx/releases/download/v${SHERPA_VERSION}/${archive}" \
-o "$archive_path"
fi
lib_dir="$RUNNER_TEMP/sherpa-onnx-libs/lib"
if [ ! -d "$lib_dir" ]; then
tar -xjf "$archive_path" -C "$RUNNER_TEMP/sherpa-onnx-libs"
# The archive extracts to a versioned directory; its lib/ is the
# native library directory the build script expects.
lib_dir="$(find "$RUNNER_TEMP/sherpa-onnx-libs" -maxdepth 2 -type d -name lib | head -n 1)"
fi
test -n "$lib_dir" && test -f "$lib_dir/libsherpa-onnx-c-api.a"
echo "SHERPA_ONNX_LIB_DIR=$lib_dir" >> "$GITHUB_ENV"

- name: Check compilation
run: cargo check --locked --workspace

Expand Down Expand Up @@ -253,6 +334,9 @@ jobs:
frontend-build:
name: Frontend Build
runs-on: ubuntu-latest
# Full web-ui test + build + i18n audits; bounded so a stuck install or
# test cannot burn the full 6h default.
timeout-minutes: 40
env:
NODE_OPTIONS: --max-old-space-size=6144
steps:
Expand Down
78 changes: 48 additions & 30 deletions .github/workflows/desktop-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ jobs:
prepare:
name: Prepare
runs-on: ubuntu-latest
timeout-minutes: 10
outputs:
version: ${{ steps.meta.outputs.version }}
release_tag: ${{ steps.meta.outputs.release_tag }}
Expand Down Expand Up @@ -95,10 +96,13 @@ jobs:
runs-on: ${{ matrix.platform.os }}
needs: prepare
if: needs.prepare.outputs.relay_image_only != 'true'
# Release packaging: full release-profile build + bundles per platform.
# 6h default is far too long for a wedged job; cap it at 120m.
timeout-minutes: 120
env:
NODE_OPTIONS: --max-old-space-size=6144
BITFUN_ENABLE_UPDATER_ARTIFACTS: ${{ needs.prepare.outputs.upload_to_release }}
TAURI_UPDATER_ENDPOINT: https://github.com/GCWing/BitFun/releases/latest/download/latest.json
TAURI_UPDATER_ENDPOINT: https://github.com/${{ github.repository }}/releases/latest/download/latest.json
TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }}
# Same trust root, compiled into the Desktop binary so one-click relay
# deploy can verify the signed checksum locally and hand the remote host
Expand Down Expand Up @@ -274,6 +278,7 @@ jobs:
publish-relay-image:
name: Publish Relay Server Image
needs: [prepare, linux-binaries]
timeout-minutes: 60
if: >-
always() &&
(needs.prepare.outputs.upload_to_release == 'true' ||
Expand All @@ -285,7 +290,7 @@ jobs:
contents: write
packages: write
env:
IMAGE: ghcr.io/gcwing/bitfun-relay-server
IMAGE: ghcr.io/${{ github.repository_owner }}/bitfun-relay-server

steps:
- name: Checkout
Expand All @@ -311,7 +316,7 @@ jobs:
set -euo pipefail
mkdir -p linux-release-assets
gh release download "${RELEASE_TAG}" \
--repo GCWing/BitFun \
--repo "${{ github.repository }}" \
--dir linux-release-assets \
--pattern 'bitfun-relay-server-*.tar.gz' \
--pattern 'bitfun-relay-server-*.tar.gz.sha256'
Expand Down Expand Up @@ -359,7 +364,7 @@ jobs:
if [[ "${IMAGE_ONLY}" == "true" ]]; then
# Backfilling an older release must not roll the floating tag
# backwards. GitHub's latest endpoint excludes prereleases.
latest_release="$(gh api repos/GCWing/BitFun/releases/latest --jq .tag_name)"
latest_release="$(gh api repos/${{ github.repository }}/releases/latest --jq .tag_name)"
if [[ "${RELEASE_TAG}" == "${latest_release}" ]]; then
echo "${IMAGE}:latest"
fi
Expand Down Expand Up @@ -465,6 +470,7 @@ jobs:
upload-release-assets:
name: Upload Release Assets
needs: [prepare, package, linux-binaries, publish-relay-image]
timeout-minutes: 30
if: >-
always() &&
needs.prepare.outputs.upload_to_release == 'true' &&
Expand Down Expand Up @@ -520,6 +526,7 @@ jobs:
env:
BITFUN_SIGNING_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
BITFUN_SIGNING_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
BITFUN_SIGNING_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }}
run: bash scripts/sign-release-assets.sh release-manual-assets/*.exe

- name: Collect updater assets
Expand All @@ -537,7 +544,7 @@ jobs:
--manual-assets-dir release-manual-assets \
--version "${{ needs.prepare.outputs.version }}" \
--tag "${{ needs.prepare.outputs.release_tag }}" \
--repo "GCWing/BitFun" \
--repo "${{ github.repository }}" \
--out release-updater-assets/latest.json \
--required-platforms "${REQUIRED_UPDATER_PLATFORMS}"

Expand All @@ -555,7 +562,7 @@ jobs:
--assets-dir linux-release-assets \
--version "${{ needs.prepare.outputs.version }}" \
--tag "${{ needs.prepare.outputs.release_tag }}" \
--repo "GCWing/BitFun" \
--repo "${{ github.repository }}" \
--out linux-release-assets/linux-binaries.json

# The Tauri bundler signs the five updater artifacts during `tauri build`,
Expand Down Expand Up @@ -587,36 +594,47 @@ jobs:
# can fetch a key for is not verifiable.
printf '%s' "${BITFUN_SIGNING_PUBKEY}" | base64 -d >release-assets/minisign.pub

- name: Stage uniquely named release assets
shell: bash
run: |
set -euo pipefail
shopt -s globstar
node scripts/stage-github-release-assets.mjs \
--out-dir release-upload-assets \
release-updater-assets/* \
release-manual-assets/*.exe \
release-manual-assets/*.exe.sig \
release-assets/**/*.AppImage \
release-assets/**/*.AppImage.sig \
release-assets/**/*.deb \
release-assets/**/*.deb.sig \
release-assets/**/*.dmg \
release-assets/**/*.dmg.sig \
release-assets/**/*.rpm \
release-assets/**/*.rpm.sig \
release-assets/minisign.pub \
linux-release-assets/bitfun-cli-*.tar.gz \
linux-release-assets/bitfun-cli-*.tar.gz.sha256 \
linux-release-assets/bitfun-relay-server-*.tar.gz \
linux-release-assets/bitfun-relay-server-*.tar.gz.sha256 \
linux-release-assets/*.tar.gz.sig \
linux-release-assets/*.tar.gz.sha256.sig \
linux-release-assets/linux-binaries.json \
relay-image-assets/relay-image.json \
relay-image-assets/relay-image.json.sig

- name: Upload to release
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.prepare.outputs.release_tag }}
generate_release_notes: true
files: |
release-updater-assets/*
release-manual-assets/*.exe
release-manual-assets/*.exe.sig
release-assets/**/*.AppImage
release-assets/**/*.deb
release-assets/**/*.dmg
release-assets/**/*.rpm
release-assets/**/*.sig
release-assets/minisign.pub
linux-release-assets/bitfun-cli-*.tar.gz
linux-release-assets/bitfun-cli-*.tar.gz.sha256
linux-release-assets/bitfun-relay-server-*.tar.gz
linux-release-assets/bitfun-relay-server-*.tar.gz.sha256
linux-release-assets/*.tar.gz.sig
linux-release-assets/*.tar.gz.sha256.sig
linux-release-assets/linux-binaries.json
relay-image-assets/relay-image.json
relay-image-assets/relay-image.json.sig
files: release-upload-assets/*
fail_on_unmatched_files: true

- name: Verify published updater manifest
run: |
curl -fsSL --retry 5 --retry-delay 3 \
"https://github.com/GCWing/BitFun/releases/download/${{ needs.prepare.outputs.release_tag }}/latest.json" \
"https://github.com/${{ github.repository }}/releases/download/${{ needs.prepare.outputs.release_tag }}/latest.json" \
-o latest.published.json
node scripts/verify-tauri-latest-json.mjs \
--manifest latest.published.json \
Expand All @@ -628,7 +646,7 @@ jobs:
- name: Verify published Linux binaries manifest
run: |
curl -fsSL --retry 5 --retry-delay 3 \
"https://github.com/GCWing/BitFun/releases/download/${{ needs.prepare.outputs.release_tag }}/linux-binaries.json" \
"https://github.com/${{ github.repository }}/releases/download/${{ needs.prepare.outputs.release_tag }}/linux-binaries.json" \
-o linux-binaries.published.json
test "$(jq -r '.version' linux-binaries.published.json)" = "${{ needs.prepare.outputs.version }}"
while IFS= read -r cli_url; do
Expand All @@ -639,13 +657,13 @@ jobs:
- name: Verify published Relay image descriptor
run: |
curl -fsSL --retry 5 --retry-delay 3 \
"https://github.com/GCWing/BitFun/releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json" \
"https://github.com/${{ github.repository }}/releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json" \
-o relay-image.published.json
test "$(jq -r '.tag' relay-image.published.json)" = "${{ needs.prepare.outputs.release_tag }}"
test "$(jq -r '.image' relay-image.published.json)" = "ghcr.io/gcwing/bitfun-relay-server"
test "$(jq -r '.image' relay-image.published.json)" = "ghcr.io/${{ github.repository_owner }}/bitfun-relay-server"
jq -e '.digest | test("^sha256:[0-9a-f]{64}$")' relay-image.published.json >/dev/null
curl -fsSL --retry 5 --retry-delay 3 \
"https://github.com/GCWing/BitFun/releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json.sig" \
"https://github.com/${{ github.repository }}/releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json.sig" \
-o /dev/null

# Nudge the openbitfun.com mirror to sync now instead of on its next
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Generate web API bindings
run: pnpm --dir src/web-ui run gen:types

- name: Type-check web UI
run: pnpm run type-check:web

Expand Down
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,44 @@ dist-ssr
# Build outputs - Rust/Tauri
target/
**/target/
.target/
/.targets/
# Local evidence working dir (fully ignored; intermediate artifacts go to
# outside the repo)
target2/
# The deployable Rust services use the workspace lockfile for reproducible
# container builds.
!Cargo.lock

# Work artifacts that must never enter the repo (S-37/S-56 hygiene):
# recon/fix/verify/report/sediment intermediates, sync records, ws-check data.
/docs/plans/RECON-*
/docs/plans/FIX-*
/docs/plans/VERIFY-*
/docs/plans/REPORT-*
/docs/plans/SEDIMENT-*
/docs/plans/sync-record-*
/docs/plans/recon-*
/docs/plans/fix-*
/docs/plans/doc-governance-report-*
/docs/plans/pr-final-*
/docs/plans/ws-check-*
/docs/plans/del-*.json
/docs/plans/侦查-*
/docs/plans/核对-*
/docs/plans/核查-*
/docs/plans/*.log
/docs/plans/*.json
/docs/plans/*.cjs

# Local customization docs stay out of the repo (S-56 sanitize)

/docs/功能文档/
/交接文档-现状与决议.md
/fix-dualfeed-停止回报.md
/docs/plans/review-upstream-sync-*
/docs/features/agent-hot-reload.md

# Monaco Editor - copied from node_modules
public/monaco-editor/
src/web-ui/public/monaco-editor/
Expand Down Expand Up @@ -91,5 +124,9 @@ external/
/.bitfun/search/flashgrep-index/
.agents/
/.flashgrep-index-engine/
/src/apps/desktop/.bitfun/search/flashgrep-index/
/target/debug/.bitfun/search/flashgrep-index/

.design/
__pycache__/
*.pyc
Loading