imccyu
60e44b2d78
fix: ci
...
fix: ci
fix: ci
2026-08-21 14:11:06 +08:00
Yichen Jiang
f4b080ffe0
Merge pull request #2889 from deepseek-harness/worktree/docs-ci-release-control-66e8d2
...
ci(docs): 文档站改为从发布 tag 发布
2026-08-21 13:58:57 +08:00
Yichen Jiang
fa3e37982b
ci(docs): publish the documentation site from a release tag
...
The documentation site deployed on every master push, with no reviewer and
no version check, while npm, PyPI, and the public source repository all
advance only at a release tag. The Pages site is reachable without
authentication, so a merge published documentation ahead of every artifact
readers could obtain.
docs-pages.yml now declares workflow_dispatch alone and verifies the ref
through the gate npm publication already runs, so the site and the npm
sequence share one definition of a released version.
2026-08-21 13:17:06 +08:00
Chinesezjc
b7135e6206
Merge pull request #2760 from deepseek-harness/fix/continuation-cleanup-temp-handles
...
test(subagent): close persistence handle before deleting temp root
2026-08-21 12:59:07 +08:00
_Kerman
b70f27f764
Merge pull request #2739 from deepseek-harness/xtr/speed-up-doc-sync
...
perf(infra): shorten doc-sync critical path
2026-08-21 12:36:36 +08:00
_Kerman
d72713c1b3
Merge pull request #2702 from deepseek-harness/xtr/2701-stable-session-snapshots
...
test: omit persistence envelopes from session snapshots
2026-08-21 12:35:16 +08:00
Yichen Jiang
a760c0b0f6
Merge pull request #2847 from deepseek-harness/feat/2846-doc-site-md-projection
...
docs(website): serve every page as raw Markdown with an llms.txt index
2026-08-21 12:27:51 +08:00
_Kerman
36a10618df
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2739
...
# Conflicts:
# scripts/run-gates.spec.ts
2026-08-21 12:01:02 +08:00
_Kerman
0ee3d664ba
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2702
2026-08-21 11:53:00 +08:00
imccyu
d508a09952
Merge pull request #2878 from deepseek-harness/worktree-fixpnpmwin
...
fix(build): support standalone pnpm entrypoints
2026-08-21 11:48:18 +08:00
_Kerman
6fb8e9a4b9
Merge remote-tracking branch 'origin/master' into xtr/2701-stable-session-snapshots
2026-08-21 11:43:58 +08:00
Yichen Jiang
e637bcfb98
Merge pull request #2726 from deepseek-harness/worktree/deepseek-vision-model-catalog
...
feat(llm-deepseek): publish the vision model
2026-08-21 11:41:34 +08:00
imccyu
4b086d0a4a
test(ci): deduplicate coverage command setup
2026-08-21 11:36:57 +08:00
_Kerman
d0d5b00095
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2739
...
# Conflicts:
# .agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.i18n.yaml
# .agents/notes/implemented/process/2026-07-13-documentation-site-projection.i18n.yaml
2026-08-21 11:35:58 +08:00
Yichen Jiang
708a25a8a9
fix(llm-deepseek): address vision catalog review
2026-08-21 11:28:14 +08:00
imccyu
4f2868409d
test(ci): exercise standalone pnpm on Windows
2026-08-21 11:24:03 +08:00
imccyu
89674edc93
fix(build): support standalone pnpm entrypoints
2026-08-21 11:09:25 +08:00
Yichen Jiang
cc95d93d60
Merge remote-tracking branch 'origin/master' into worktree/deepseek-vision-model-catalog
2026-08-21 10:42:26 +08:00
Turtle
0e40664c67
Merge pull request #2862 from deepseek-harness/turtle/fix-translation-link-locale
...
docs: fix Chinese Agent Note link locale
2026-08-21 10:38:14 +08:00
Yichen Jiang
246caaba77
Merge remote-tracking branch 'origin/master' into worktree/deepseek-vision-model-catalog
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
# .agents/notes/implemented/feature/2026-08-19-direct-deepseek-vision-input.i18n.yaml
# docs/config-catalog.i18n.yaml
# packages/llm/llm-deepseek/README.i18n.yaml
2026-08-21 10:34:51 +08:00
Yichen Jiang
68d24f3237
docs(notes): localize zh note links and widen the closure walk timeout
...
The localized-link pairing rule that landed on master requires Chinese
notes to link Chinese counterparts; fix this PR's note and the
composer-edit-range note the rule landed after, so the merge ref
passes the gate. The full-manifest closure walk gets an explicit
timeout: coverage instrumentation on a loaded runner pushes it past
vitest's 5s default. Refs #2846 .
2026-08-20 22:29:32 +08:00
Turtle
d229df59dc
docs: fix Chinese Agent Note link locale
2026-08-20 22:24:16 +08:00
Yichen Jiang
17c85209a0
docs(website): serve index routes at their clean-URL .md addresses
...
Each index route also emits a parent-level alias twin, projected over
the alias route so its relative links stay correct; llms.txt and the
docs now state the drop-trailing-slash convention exactly. Frontmatter
failures name their page, the twin pass refuses to overwrite existing
build files, the dev middleware documents the deliberate in-page
fetch() divergence, and the per-locale collection order moves to one
shared export. Refs #2846 .
2026-08-20 22:10:35 +08:00
Yichen Jiang
f3ce8218cc
docs(website): serve every page as raw Markdown with an llms.txt index
...
Append .md to any published route for the page as plain Markdown: the
build emits a raw-Markdown twin of every route (frontmatter dropped,
home bodies kept, images beside pages) plus a manifest-generated
llms.txt, the dev server serves both per request, and the post-build
gate fails when either is missing. Fixes #2846 .
2026-08-20 22:10:15 +08:00
Yichen Jiang
a67b9a4d31
Merge pull request #2814 from deepseek-harness/fix/composer-edit-range-attribution
...
fix(web): carry the composer edit range from the pre-edit selection
2026-08-20 22:02:10 +08:00
Yichen Jiang
5951d19f58
Merge pull request #2844 from deepseek-harness/fix/turn-error-survives-retry-exhaustion
...
fix(web): render the terminal turn error after same-turn retries exhaust
2026-08-20 22:01:43 +08:00
Yichen Jiang
c3e35cbe95
docs(client): align turn-error prose with exhausted-retry rendering
...
Review follow-up: the consumer-facing contract still described the removed
suppression. TurnErrorNode's JSDoc, the client-runtime retry-projection
README section, and the ui-conversation chat-flow section (both languages)
now state that a terminal turn/end error always projects the node, beside
the settled retry chain when retries exhausted, and that only intermediate
failures that scheduled another retry stay retry-notice-only. The recovery
note sheds its remaining cross-turn wording (closed-step boundary, retry
turns, closed failed step/turn) for the same-turn reality.
2026-08-20 21:48:36 +08:00
Yichen Jiang
672cdf9ba1
Merge remote-tracking branch 'origin/master' into fix/turn-error-survives-retry-exhaustion
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.zh.md
# .agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.i18n.yaml
2026-08-20 21:40:44 +08:00
ihsiang
0864878cd0
Merge pull request #2856 from deepseek-harness/ihsiang/subagent-header-switcher
...
feat(web): refine nested subagent header navigation
2026-08-20 21:31:41 +08:00
yx.zhang
5f7ac9183e
fix(web): address subagent header review findings
2026-08-20 21:12:07 +08:00
yx.zhang
de572dd910
feat(web): refine subagent header switcher
2026-08-20 20:18:55 +08:00
lsdsjy
c71ff384cc
Merge pull request #2808 from deepseek-harness/fix/frontend-static-miss-404
...
fix(frontend-static): return 404 for missing paths
2026-08-20 20:13:23 +08:00
lsdsjy
600f3a3110
fix(frontend-static): return 404 for a missing index
2026-08-20 20:03:18 +08:00
lsdsjy
92723cafeb
fix(frontend-static): return 404 for missing paths
2026-08-20 20:02:11 +08:00
Turtle
ed3ef7acee
Merge pull request #1373 from deepseek-harness/codex/remove-cordis-catalog-line-numbers
...
docs: remove line numbers from subsystem catalog links
2026-08-20 19:57:50 +08:00
Turtle
93a1b569ac
Merge remote-tracking branch 'origin/master' into codex/remove-cordis-catalog-line-numbers
...
# Conflicts:
# docs/subsystems/agent-team.i18n.yaml
# docs/subsystems/approval.i18n.yaml
# docs/subsystems/client-modules.i18n.yaml
# docs/subsystems/client-modules.md
# docs/subsystems/client-modules.zh.md
# docs/subsystems/code-runtime.i18n.yaml
# docs/subsystems/commands.i18n.yaml
# docs/subsystems/commands.md
# docs/subsystems/commands.zh.md
# docs/subsystems/compaction.i18n.yaml
# docs/subsystems/compaction.md
# docs/subsystems/compaction.zh.md
# docs/subsystems/core.i18n.yaml
# docs/subsystems/core.md
# docs/subsystems/core.zh.md
# docs/subsystems/credentials.i18n.yaml
# docs/subsystems/credentials.md
# docs/subsystems/credentials.zh.md
# docs/subsystems/feedback.i18n.yaml
# docs/subsystems/filesystem.i18n.yaml
# docs/subsystems/goal.i18n.yaml
# docs/subsystems/http-server.md
# docs/subsystems/http-server.zh.md
# docs/subsystems/invariants.i18n.yaml
# docs/subsystems/invariants.md
# docs/subsystems/invariants.zh.md
# docs/subsystems/jobs.i18n.yaml
# docs/subsystems/llm-streaming.i18n.yaml
# docs/subsystems/llm-streaming.md
# docs/subsystems/llm-streaming.zh.md
# docs/subsystems/permission-presets.md
# docs/subsystems/permission-presets.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.md
# docs/subsystems/persistence.zh.md
# docs/subsystems/plan.i18n.yaml
# docs/subsystems/plan.md
# docs/subsystems/plan.zh.md
# docs/subsystems/sandbox.i18n.yaml
# docs/subsystems/sandbox.md
# docs/subsystems/sandbox.zh.md
# docs/subsystems/schedule.i18n.yaml
# docs/subsystems/session-projection.i18n.yaml
# docs/subsystems/session-projection.md
# docs/subsystems/session-projection.zh.md
# docs/subsystems/session-query.i18n.yaml
# docs/subsystems/session-reference.i18n.yaml
# docs/subsystems/session-reference.md
# docs/subsystems/session-reference.zh.md
# docs/subsystems/session-telemetry.md
# docs/subsystems/session-telemetry.zh.md
# docs/subsystems/session-title.i18n.yaml
# docs/subsystems/session.i18n.yaml
# docs/subsystems/session.md
# docs/subsystems/session.zh.md
# docs/subsystems/settings.i18n.yaml
# docs/subsystems/settings.md
# docs/subsystems/settings.zh.md
# docs/subsystems/shell.i18n.yaml
# docs/subsystems/shell.md
# docs/subsystems/shell.zh.md
# docs/subsystems/skills.i18n.yaml
# docs/subsystems/skills.md
# docs/subsystems/skills.zh.md
# docs/subsystems/spill.i18n.yaml
# docs/subsystems/storage.i18n.yaml
# docs/subsystems/subagent.i18n.yaml
# docs/subsystems/subagent.md
# docs/subsystems/subagent.zh.md
# docs/subsystems/subprocess.i18n.yaml
# docs/subsystems/system-prompt.i18n.yaml
# docs/subsystems/system-prompt.md
# docs/subsystems/system-prompt.zh.md
# docs/subsystems/tasks.md
# docs/subsystems/tasks.zh.md
# docs/subsystems/terminal.md
# docs/subsystems/terminal.zh.md
# docs/subsystems/token-meter.i18n.yaml
# docs/subsystems/tools.i18n.yaml
# docs/subsystems/tools.md
# docs/subsystems/tools.zh.md
# docs/subsystems/typert.i18n.yaml
# docs/subsystems/typert.md
# docs/subsystems/typert.zh.md
# docs/subsystems/user-interaction.i18n.yaml
# docs/subsystems/user-questions.i18n.yaml
# docs/subsystems/user-questions.md
# docs/subsystems/user-questions.zh.md
# docs/subsystems/web.i18n.yaml
# docs/subsystems/workflow.i18n.yaml
# docs/subsystems/workflow.md
# docs/subsystems/workflow.zh.md
# docs/subsystems/workspace.i18n.yaml
# docs/subsystems/workspace.md
# docs/subsystems/workspace.zh.md
# packages/typert/generator/tests/cordis-catalog.spec.ts
2026-08-20 19:48:43 +08:00
pku-xht
e3248cc893
Merge pull request #2708 from deepseek-harness/codex/localized-chinese-doc-links
...
docs(i18n): localize links and fix capability-page targets
2026-08-20 19:28:01 +08:00
pku-xht
84cbec28e9
Merge remote-tracking branch 'origin/master' into codex/localized-chinese-doc-links
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md
# .agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md
# .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.zh.md
# .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.zh.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# .agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md
# .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml
# .agents/notes/implemented/feature/2026-07-31-permission-default-for-new-sessions.i18n.yaml
# .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml
# .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.zh.md
# .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml
# .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md
# .agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml
# .agents/notes/implemented/feature/2026-08-05-agent-teams.zh.md
# .agents/notes/implemented/feature/2026-08-11-workspace-sidebar-order-and-folding.i18n.yaml
# .agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml
# .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml
# .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.zh.md
# .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.i18n.yaml
# .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.zh.md
# .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.i18n.yaml
# .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.zh.md
# .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml
# .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.zh.md
# .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml
# .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md
# .agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml
# README.i18n.yaml
# README.zh.md
# docs/architecture.i18n.yaml
# docs/architecture.zh.md
# docs/development.i18n.yaml
# docs/development.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.zh.md
# docs/subsystems/README.i18n.yaml
# docs/subsystems/README.zh.md
# docs/subsystems/agent-team.i18n.yaml
# docs/subsystems/agent-team.zh.md
# docs/subsystems/client-modules.i18n.yaml
# docs/subsystems/client-modules.zh.md
# docs/subsystems/commands.i18n.yaml
# docs/subsystems/commands.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.zh.md
# docs/subsystems/session-reference.i18n.yaml
# docs/tool-catalog.i18n.yaml
# docs/tool-catalog.zh.md
# docs/user/guide/providers.i18n.yaml
# docs/user/guide/providers.zh.md
# packages/README.i18n.yaml
# packages/README.zh.md
# packages/bundle/web-app/README.i18n.yaml
# packages/bundle/web-app/README.zh.md
# packages/client/README.i18n.yaml
# packages/client/README.zh.md
# packages/client/connection/README.i18n.yaml
# packages/client/connection/README.zh.md
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/README.zh.md
# packages/client/ui-primitives/README.i18n.yaml
# packages/client/ui-primitives/README.zh.md
# packages/client/ui-sidebar/README.i18n.yaml
# packages/client/ui-sidebar/README.zh.md
# packages/client/ui-workspace/README.i18n.yaml
# packages/client/ui-workspace/README.zh.md
# packages/context/README.i18n.yaml
# packages/context/README.zh.md
# packages/core/agent-loop/README.i18n.yaml
# packages/credentials/README.i18n.yaml
# packages/credentials/README.zh.md
# packages/experimental/agent-team/README.i18n.yaml
# packages/experimental/agent-team/README.zh.md
# packages/experimental/tool-agent-team/README.i18n.yaml
# packages/experimental/tool-agent-team/README.zh.md
# packages/host/frontend-static/README.i18n.yaml
# packages/host/frontend-static/README.zh.md
# packages/host/webserver/README.i18n.yaml
# packages/host/webserver/README.zh.md
# packages/interaction/commands/README.i18n.yaml
# packages/interaction/commands/README.zh.md
# packages/plan/plan-mode/README.i18n.yaml
# packages/plan/plan-mode/README.zh.md
# packages/sandbox/sandbox-local/README.i18n.yaml
# packages/sandbox/sandbox-local/README.zh.md
# packages/session/README.i18n.yaml
# packages/session/README.zh.md
# packages/session/session-persistence-sqlite/README.i18n.yaml
# packages/session/session-persistence-sqlite/README.zh.md
# packages/session/session-projection-cache/README.i18n.yaml
# packages/session/session-projection-cache/README.zh.md
# packages/shell/tool-pwsh/README.i18n.yaml
# packages/shell/tool-pwsh/README.zh.md
# packages/subagent/subagent-codex/README.i18n.yaml
# packages/subagent/subagent-codex/README.zh.md
# packages/subagent/subagent/README.i18n.yaml
# packages/subagent/subagent/README.zh.md
# packages/web/tool-web/README.i18n.yaml
# packages/web/tool-web/README.zh.md
# scripts/snapshots/translation-prompt-v4/request-response.expected.json
2026-08-20 19:15:33 +08:00
Yichen Jiang
daaede29a5
fix(ui-conversation): render the terminal turn error after same-turn retries exhaust
...
The turn-error Definition suppressed its node permanently once the owning
turn carried any llm/retry event — a rule from the retired model where a
retry opened a new numbered turn. Retries now run inside the failing turn,
so the suppression hid exactly the exhausted terminal failure it existed
to defer to: spending every transient retry left the conversation with a
neutral collapsed retry row and no error row at all.
Delete the suppression: turn-error matches only turn/start and error-reason
turn/end, and renders whenever its turn recorded a terminal error; the
settled retry chain renders beside it through the separate model-retry
node. The Definition suite now asserts the exhausted-retry error node in
full history, tail-only windows, and after prepending the chain, and a new
keyless live e2e scenario exhausts a scenario-owned two-retry policy and
pins the terminal error row beside the settled retry row (the scaffold
gains replayRetryPolicy so exhaustion runs in milliseconds).
Both stale notes are corrected to the same-turn retry reality, and the new
bug-fix note owns the removal rationale.
2026-08-20 18:19:30 +08:00
Yichen Jiang
aef4e1c9b7
Merge pull request #2509 from deepseek-harness/feat/pi-ai-auth-alignment
...
feat(credentials): abstract credentials service and support OAuth login
2026-08-20 18:08:15 +08:00
Yichen Jiang
30289d6320
chore(release): carry dsh-authorization to the rc.8 family version
2026-08-20 17:58:39 +08:00
Yichen Jiang
564e4d1610
chore(sync): regenerate the module graph after the projection merges
2026-08-20 17:58:39 +08:00
Yichen Jiang
933d1f2ab2
feat(credentials): upgrade the pre-release flat document at boot
...
Internal builds before the versioned layout wrote .credentials.yaml as a flat
mapping; refusing it outright would strand every key stored through the Models
page and fail the next model request. Boot now recognizes exactly that layout
- addressable names over non-empty string scalars, no directives - and
rewrites it under the writer lock, nesting the original lines verbatim under
refs: with the values byte for byte unchanged. Everything the recognizer
declines keeps the loud by-name refusal, a live reload still never migrates,
and the parser continues to read exactly one layout. The migration step
retires with the pre-release stance at the first tagged release.
2026-08-20 17:58:39 +08:00
Yichen Jiang
7d04a0235c
chore(sync): regenerate the event matrix after the command-envelope merge
2026-08-20 17:58:39 +08:00
Yichen Jiang
120097e266
chore(sync): restore the image-budget README merge on llm-pi-ai
2026-08-20 17:58:39 +08:00
Yichen Jiang
fecfabcac4
fix(credentials): name reference update event explicitly
2026-08-20 17:58:39 +08:00
Yichen Jiang
a190ef580c
chore(release): carry dsh-authorization to the rc.7 family version
2026-08-20 17:58:38 +08:00
Yichen Jiang
29a82543ed
chore(sync): re-record the packages README pairing after the cascade
2026-08-20 17:58:38 +08:00
Yichen Jiang
0b2bc3d651
fix(llm-pi-ai): stub both home spellings in the tilde-expansion test
...
os.homedir() reads HOME on POSIX and USERPROFILE on Windows; stubbing
only HOME left the Windows lane expanding ~ into the real profile
directory and failing the fileExists assertions.
2026-08-20 17:58:38 +08:00
Yichen Jiang
6428b844ef
fix(ci): catch the branch up with the static and smoke gates
...
- dsh-authorization's manifest becomes a release member on current
master's terms: version matches the root 0.1.0-rc.6 and
publishConfig.access is public, which the constraints gate and the
tarball pack's version verify both enforce after the master merge.
- Regenerate docs/module-graph (zh mirror included) for the
authorization package and the llm-pi-ai -> authorization edge; the
graph gate lives outside doc-sync and was never regenerated when the
package was added.
- The built-bin smoke seeds the versioned credentials document; this
branch's provider refuses the pre-release flat layout by design, and
the master-side test still wrote the old shape.
2026-08-20 17:58:38 +08:00