Files
deepseek-harness/tsconfig.client.json
creatixchu e611e825b1 feat(web): align attachment display with DeepSeek Chat via ui-attachment atoms
Single-click original preview in the composer rail and chat history; remove
control inside the thumbnail, revealed on hover/focus (always on touch);
hidden-scrollbar rail overflow paged by edge arrows with wheel panning and
end-reveal on add; image-intake rejections and prompt failures announce as a
transient top-center toast instead of inline strips.

The attachment atoms move to a new zero-cordis package
@deepseek-ai/dsh-client-ui-attachment (rail, message gallery, lightbox),
seeded as a platform module; the toast is a ui-primitives atom. Strings
arrive as label props bridged from the conversation dictionary.
2026-08-11 17:01:29 +08:00

87 lines
4.2 KiB
JSON

{
// Client-side typecheck aggregate: packages/client tests (.ts and .tsx).
// Split from the host aggregate because both sides merge cordis Context
// under the same keys (sessions, loader) with different services; shared
// leaves (session/llm/tools/apiproxy/...) build once and are referenced by
// both programs through each client package's own references.
"extends": "./tsconfig.base.client.json",
"compilerOptions": {
"noEmit": true,
"rewriteRelativeImportExtensions": false,
// Tests execute under vitest on node (e2e files spawn processes); browser
// purity of package src is each package's own tsconfig plus
// scripts/client-bundle-purity.spec.ts.
"types": ["node"]
},
"include": [
// Source-subpath test imports can arrive through workspace links whose
// realpath semantics vary by host. Load package CSS declarations directly.
"packages/client/*/src/css-modules.d.ts",
"packages/client/*/tests/**/*.ts",
"packages/client/*/tests/**/*.tsx",
"packages/host/directory-picker-browse/tests/**/*.ts",
"packages/host/directory-picker-browse/tests/**/*.tsx",
"packages/host/directory-picker-native/tests/**/*.ts",
"packages/host/directory-picker-native/tests/**/*.tsx",
"packages/client/tsdown.client.ts",
"scripts/client-bundle-css.spec.ts",
"scripts/client-bundle-purity.spec.ts"
],
"references": [
// Shared leaf: web e2e boots the real host webserver (fixture + real-host
// smoke policy). webserver has zero workspace deps and no cordis merge,
// so it cannot drag host-side Context augmentation into this program.
{ "path": "./packages/host/webserver" },
// Dual-face host leaf: the node half is the native picking backend, the
// browser half registers the picking flow into ui-workspace's slot —
// client-side Context merges keep it out of the host program.
{ "path": "./packages/host/directory-picker-native" },
{ "path": "./packages/host/directory-picker-browse" },
// Compaction seam: the client-runtime pin test value-imports the canonical
// checkpoint const from the cordis-free dsh-compact/checkpoint leaf and
// deliberately never loads the dsh-compact package root or the host-side
// Context merges reachable through it. The client package pins the same
// leaf through a type-only import in transcript-adapter.ts; composite
// rootDir rules make both paths depend on this runtime project reference.
{ "path": "./packages/compact/compact" },
{ "path": "./packages/client/ui-slots" },
{ "path": "./packages/client/schema-form" },
{ "path": "./packages/client/ui-attachment" },
{ "path": "./packages/client/ui-primitives" },
{ "path": "./packages/client/web-react" },
{ "path": "./packages/client/modules" },
{ "path": "./packages/client/hmr" },
{ "path": "./packages/client/connection" },
{ "path": "./packages/typert/registry" },
{ "path": "./packages/api/gateway" },
{ "path": "./packages/api/remotes/tsconfig.client.json" },
{ "path": "./packages/client/runtime" },
{ "path": "./packages/client/test-runtime" },
{ "path": "./packages/client/ui-layout" },
{ "path": "./packages/client/ui-sidebar" },
{ "path": "./packages/client/ui-conversation" },
{ "path": "./packages/client/ui-tool" },
{ "path": "./packages/client/ui-deliverables" },
{ "path": "./packages/client/ui-workspace" },
{ "path": "./packages/client/ui-slash" },
{ "path": "./packages/client/ui-command" },
{ "path": "./packages/client/ui-skill" },
{ "path": "./packages/client/ui-subagent" },
{ "path": "./packages/client/ui-task" },
{ "path": "./packages/client/ui-goal" },
{ "path": "./packages/client/ui-model" },
{ "path": "./packages/client/ui-agent-preset" },
{ "path": "./packages/client/ui-permission" },
{ "path": "./packages/client/ui-plan" },
{ "path": "./packages/client/ui-question" },
{ "path": "./packages/client/ui-trajectory" },
{ "path": "./packages/client/ui-theme" },
{ "path": "./packages/client/ui-settings" },
{ "path": "./packages/client/ui-settings-general" },
{ "path": "./packages/client/ui-models" },
{ "path": "./packages/client/locale" },
{ "path": "./packages/client/web" },
{ "path": "./apps/web" }
]
}