mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-11-08 20:10:34 +00:00
* feat(knowledge): add optional ingestion and status center * docs(knowledge): record upstream CI budget fix and regression results --------- Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
84 lines
6.3 KiB
Markdown
84 lines
6.3 KiB
Markdown
# Phase-4 knowledge center validation
|
|
|
|
## CI follow-up on 2026-10-26
|
|
|
|
The initial GitHub run passed frontend unit tests, all four browser shards,
|
|
both replay-contract layers, package checks, blocking-I/O, lint, and backend
|
|
shards 1/2/4. Backend shard 3 reported 9,607 passed and one guidance-budget
|
|
failure: the merged runtime chain was 99,004 bytes against the 98,304-byte limit.
|
|
Upstream reproduced and fixed that same failure in #7522. Main at
|
|
`3d5107dc0dd13a1f83b696b6682483aea64da896` was merged into this branch;
|
|
the guidance checker now reports **0 errors and 0 warnings**. The combined
|
|
guidance/extension/auth/platform/bookmark regression passes **139 tests**;
|
|
backend Ruff formatting and lint pass. Frontend extension unit tests remain
|
|
**100 passed**. This records local follow-up evidence;
|
|
the new head's remote CI result must be checked separately.
|
|
|
|
Validated on 2026-10-25 on Windows with Python 3.12.15, Node 24.16.0 and pnpm 10.26.2, based on `885062e197d53abb771e6c3cd1fb1223e45e9bbb` (including phase 3, #7417).
|
|
|
|
## Passing checks
|
|
|
|
| Check | Actual result |
|
|
| --- | --- |
|
|
| Backend extension, authentication, platform, bookmark and platform blocking-I/O tests | 125 passed |
|
|
| Complete strict blocking-I/O suite | 277 passed, 8 skipped |
|
|
| Guidance and new knowledge-center tests after registering the new guide | 23 passed |
|
|
| Frontend extension unit tests (11 files) | 100 passed |
|
|
| Frontend API unit tests | 87 passed |
|
|
| `pnpm check` | Passed: ESLint and TypeScript |
|
|
| Changed TypeScript and shipped native-module/style formatting | Passed |
|
|
| Backend `ruff format .` and `ruff check .`, plus new package | Passed |
|
|
| `next build --webpack`, then `node scripts/build-search-index.mjs` | Passed; search index scanned 137 pages |
|
|
| Knowledge-center Chromium tests against production server | 11 passed |
|
|
| Existing bookmark, business-plugin and plugin-icon browser regressions | 19 passed |
|
|
| `scripts/check_agent_guidance.py` | 0 errors, 7 soft-limit warnings |
|
|
| `git diff --check` | Passed |
|
|
| Wheel and sdist build; isolated wheel installation and entry-point registration | Passed; all four manifest assets included and compared with source |
|
|
|
|
The new browser suite covers English desktop and Chinese 375px mobile, dark theme, manual/URL/raw-file imports, explicit false processing fields, invalid inputs, status lookup, confirmed reprocess/cancel, revoked capabilities, browse-only membership, uncertain writes without replay, delayed read/write ordering, resource switching, disabled/empty/unavailable states and recovery. Screenshots in `screenshots/` show synthetic data rendered through the actual host.
|
|
|
|
Backend HTTP tests prove mismatched descriptor viewers cannot reach contributed GET/POST handlers, including a proxy root path. Same-viewer and headerless clients retain existing behavior. The initial extension tests and stale-viewer tests failed before their corresponding implementation; the delayed-status browser regression also failed with the read-order guard removed.
|
|
|
|
## Broader-suite limitations
|
|
|
|
The whole local test run is **not green**:
|
|
|
|
- Backend offline attempt: **4,224 passed, 172 skipped, 14 deselected, 10 failed**, stopped by `--maxfail=10`. One failure was the newly added guide missing from the approved guidance inventory; fixed and verified by the 23-test run above. Other failures were an atomic worker timeout, a quantized-clock benchmark precondition and seven credential-staging cases using unsupported Windows `os.utime(..., follow_symlinks=False)`.
|
|
- The worker timeout and credential-staging failures were reproduced in a separate, unchanged worktree at the exact base commit. The quantized-clock case passed alone on this branch and on the unchanged base. These results do not establish that the rest of the unexecuted backend suite passes.
|
|
- Frontend full unit run: **3,544 passed, 5 failed** from five-second timeouts in the unchanged scheduled-task schedule-input and task-form-dialog tests. Rerunning those two files gave **45 passed, 1 timeout**; that remaining task-form case passed when run alone. No scheduled-task production or test files were changed. The complete suite was not rerun to claim an all-green result.
|
|
- The first production-build attempt used dependencies from an older worktree and failed on missing `@headlessui/react`. After a local `pnpm install --frozen-lockfile`, the production Webpack build and `pnpm check` both passed. No dependency manifests or locks changed.
|
|
|
|
Native Windows SWC is blocked by this machine's application-control policy, so the production build uses the supported Webpack option. `make` is unavailable locally; the equivalent formatter, linter and test commands were run directly.
|
|
|
|
## Reproduction
|
|
|
|
From `backend/`:
|
|
|
|
```sh
|
|
uv run --no-sync pytest tests/test_knowledge_center_extension.py tests/test_auth_middleware.py tests/test_knowledge_platform_extension.py tests/test_bookmark_plugin.py tests/blocking_io/test_knowledge_platform_extension.py -q
|
|
uv run --no-sync pytest tests/blocking_io -q
|
|
uv run --no-sync pytest tests/test_agent_guidance_check.py tests/test_knowledge_center_extension.py -q
|
|
uv run --no-sync ruff format .
|
|
uv run --no-sync ruff check .
|
|
```
|
|
|
|
From `frontend/`:
|
|
|
|
```sh
|
|
pnpm check
|
|
pnpm exec rstest run tests/unit/core/extensions
|
|
pnpm exec rstest run tests/unit/core/api
|
|
# Set BETTER_AUTH_SECRET=local-dev-secret, SKIP_ENV_VALIDATION=1,
|
|
# DEER_FLOW_AUTH_DISABLED=1 in the shell before building/starting.
|
|
pnpm exec next build --webpack
|
|
node scripts/build-search-index.mjs
|
|
pnpm exec next start --hostname 127.0.0.1 --port 3016
|
|
# In another shell, set PLAYWRIGHT_BASE_URL=http://127.0.0.1:3016
|
|
# and PLAYWRIGHT_SKIP_WEB_SERVER=1. Direct Node avoids a local Windows
|
|
# pnpm argument-forwarding issue with Playwright filename filters.
|
|
node node_modules/@playwright/test/cli.js test tests/e2e/knowledge-center.spec.ts --workers=2 --reporter=line
|
|
node node_modules/@playwright/test/cli.js test tests/e2e/bookmark-plugin.spec.ts tests/e2e/business-plugins.spec.ts tests/e2e/plugin-icons.spec.ts --workers=2 --reporter=line
|
|
```
|
|
|
|
From this package directory, `uv build` builds the independently installable wheel and sdist. Tests exercise the real extension loader/static registry, authentication middleware and native browser modules; management HTTP responses in the browser suite are mocked. No live WeKnora connection, production deployment, persistent task ledger, multi-user acceptance, complete phase-4 implementation or phase-5 Trace is claimed.
|