Sessions could be archived from the sidebar row menu but never restored: the registry-global archive set was a one-way display filter with no inverse RPC and no surface listing its members. WorkspaceRegistry.unarchiveSession drops one id from archivedSessionIds in one durable write on the same operation chain as archive, with no session-existence probe because a removal cannot introduce an unknown referent. The Workspace controller exposes it as workspace.unarchiveSession returning the complete archive set, which the existing archived follow increment already propagates, so no frame type and no persisted field changes. The new client package dsh-client-ui-settings-unarchive-sessions owns the restore surface: one localized settings.section page listing the archive set joined with loaded session summaries, newest archive first, searchable by title or workspace, with one Unarchive action per row.
124 lines
6.2 KiB
JSON
124 lines
6.2 KiB
JSON
{
|
|
// Client-side typecheck aggregate: packages/client tests and top-level Client benchmarks.
|
|
// 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/...) 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",
|
|
"benchmarks/**/*.client.ts",
|
|
"benchmarks/**/*.client.tsx",
|
|
"benchmarks/support/**/*.ts",
|
|
"packages/*/*/tests/**/*.client.spec.ts",
|
|
"packages/*/*/tests/**/*.client.spec.tsx",
|
|
"packages/*/*/tests/**/*.client.tsx",
|
|
"packages/*/*/tests/**/*.client.ts",
|
|
// Client package outside packages/client with a local CSS module face.
|
|
"packages/extensions/ui-cordis/src/css-modules.d.ts",
|
|
"packages/client/tsdown.client.ts",
|
|
"scripts/client-build-environment.ts",
|
|
"scripts/bundle-input-isolation.ts",
|
|
"scripts/*.client.spec.ts",
|
|
"scripts/client-bundle-css.spec.ts",
|
|
"scripts/client-bundle-purity.spec.ts"
|
|
],
|
|
// A `*.host.spec.ts` covers the Host half of a split client package and
|
|
// belongs to the host aggregate, which excludes this program's `*.client.*`
|
|
// in turn. `exclude` wins over `include`, so the test glob above stays broad.
|
|
"exclude": [
|
|
"packages/client/*/tests/**/*.host.spec.ts"
|
|
],
|
|
"references": [
|
|
// Producer-to-UI spill tests use the ptc-runtime contract with the real tool registry.
|
|
{ "path": "./packages/ptc-runtime/ptc-runtime" },
|
|
// 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" },
|
|
// Compaction seam: ui-chat type-imports the canonical checkpoint contract
|
|
// from the cordis-free dsh-compaction/checkpoint leaf. Composite rootDir
|
|
// rules make that path depend on this project reference.
|
|
{ "path": "./packages/compaction/compaction" },
|
|
{ "path": "./packages/client/store" },
|
|
{ "path": "./packages/client/ui-slots" },
|
|
{ "path": "./packages/client/ui-attachment" },
|
|
{ "path": "./packages/client/ui-primitives" },
|
|
{ "path": "./packages/client/modules" },
|
|
{ "path": "./packages/experimental/inspector/tsconfig.client.json" },
|
|
{ "path": "./packages/client/hmr" },
|
|
{ "path": "./packages/client/connection/tsconfig.client.json" },
|
|
{ "path": "./packages/client/file-upload/tsconfig.client.json" },
|
|
{ "path": "./packages/typert/registry" },
|
|
{ "path": "./packages/api/gateway/tsconfig.client.json" },
|
|
{ "path": "./packages/api/session-controller/tsconfig.client.json" },
|
|
{ "path": "./packages/api/workspace-controller/tsconfig.client.json" },
|
|
{ "path": "./packages/api/remotes/tsconfig.client.json" },
|
|
{ "path": "./packages/extensions/cordis-client-runner" },
|
|
{ "path": "./packages/extensions/ui-cordis" },
|
|
{ "path": "./packages/test-support/client-runtime" },
|
|
{ "path": "./packages/test-support/remote-mock" },
|
|
{ "path": "./packages/client/ui-layout" },
|
|
{ "path": "./packages/client/ui-sidebar" },
|
|
{ "path": "./packages/client/ui-brand-official" },
|
|
{ "path": "./packages/client/ui-approval" },
|
|
{ "path": "./packages/client/ui-chat" },
|
|
{ "path": "./packages/client/ui-conversation" },
|
|
{ "path": "./packages/client/ui-tool" },
|
|
{ "path": "./packages/client/ui-deliverables/tsconfig.client.json" },
|
|
{ "path": "./packages/client/ui-workflow-run" },
|
|
{ "path": "./packages/client/ui-workspace" },
|
|
{ "path": "./packages/client/ui-input-trigger" },
|
|
{ "path": "./packages/client/ui-commands" },
|
|
{ "path": "./packages/client/ui-skill" },
|
|
{ "path": "./packages/client/ui-reference" },
|
|
{ "path": "./packages/client/ui-subagent" },
|
|
{ "path": "./packages/experimental/client-ui-agent-team" },
|
|
{ "path": "./packages/client/ui-dockkit" },
|
|
{ "path": "./packages/client/ui-sidebar-right" },
|
|
{ "path": "./packages/client/ui-sidebar-documentpreview" },
|
|
{ "path": "./packages/client/ui-sidebar-files" },
|
|
{ "path": "./packages/client/ui-jobs" },
|
|
{ "path": "./packages/client/ui-schedule" },
|
|
{ "path": "./packages/client/ui-directory-picker-browse" },
|
|
{ "path": "./packages/client/ui-directory-picker-native" },
|
|
{ "path": "./packages/client/ui-goal" },
|
|
{ "path": "./packages/client/ui-message-feedback" },
|
|
{ "path": "./packages/client/ui-model-selection" },
|
|
{ "path": "./packages/client/ui-agent-preset" },
|
|
{ "path": "./packages/client/ui-permission-presets" },
|
|
{ "path": "./packages/client/ui-plan" },
|
|
{ "path": "./packages/client/ui-settings-plugins" },
|
|
{ "path": "./packages/client/ui-user-questions" },
|
|
{ "path": "./packages/client/ui-trajectory" },
|
|
{ "path": "./packages/session-query/session-log-export/tsconfig.client.json" },
|
|
{ "path": "./packages/client/ui-open-in-app" },
|
|
{ "path": "./packages/client/ui-theme" },
|
|
{ "path": "./packages/client/ui-settings" },
|
|
{ "path": "./packages/client/ui-settings-general" },
|
|
{ "path": "./packages/client/ui-settings-models" },
|
|
{ "path": "./packages/client/ui-settings-plugin-inventory" },
|
|
{ "path": "./packages/client/ui-settings-unarchive-sessions" },
|
|
{ "path": "./packages/client/locale" },
|
|
{ "path": "./packages/client/ui-renderer" },
|
|
{ "path": "./packages/client/ui-session" },
|
|
{ "path": "./packages/client/resources" },
|
|
{ "path": "./packages/api/workspace-files/tsconfig.client.json" },
|
|
{ "path": "./packages/client/web" },
|
|
{ "path": "./packages/context/file-reference" },
|
|
{ "path": "./apps/web" }
|
|
]
|
|
}
|