chore(session): refresh persistence references after master merge

This commit is contained in:
Tianyi Cui committed 2026-09-12 00:13:33 +08:00
1 parent 7bbd7ef85c
commit f85b328450
8 files changed
+25 -25

No files matched your search

+2 -2
View File
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/persistence-catalog.md
persistence-catalog.md: 99bd075eeabde138bcf258340a42380995bff5cb
persistence-catalog.zh.md: a2ed30012e3ed70c1190ed3a64cdc9639a24109b
persistence-catalog.md: 4f8f9cee3d7139bd829eb155628d727e6451c772
persistence-catalog.zh.md: 49417f7247dcf86172cc64a8dc4ff6539c43e906
+5 -5
View File
@@ -3128,7 +3128,7 @@ Sources: [`packages/session/session-title/src/types.ts:30`](../packages/session/
| Property | Presence | Type |
|---|---|---|
| `kind` | required | `"provider"` |
| `model` | optional | [`packages/session/session-title/src/types.ts#SessionTitleModelProvenance`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance) |
| `model` | optional | [`packages/session/session-title/src/types.ts#SessionTitleModelIdentity`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity) |
| `provider` | required | `string` |
<a id="persistence-type-eventstepend"></a>
@@ -3260,7 +3260,7 @@ Sources: [`packages/subagent/tool-subagent/src/model-selection-state.ts:17`](../
SHA-256: `ba77b58995e36f14bb13886b0493d0a1a63d5db10b1a6cd9f6ac65a72cf832ec`
Array of [`packages/session/session-title/src/types.ts#SessionTitleModelProvenance`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance).
Array of [`packages/session/session-title/src/types.ts#SessionTitleModelIdentity`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity).
<a id="persistence-type-eventsystemmessage"></a>
@@ -5528,7 +5528,7 @@ Sources: [`packages/session/session-title-llm/src/index.ts:27`](../packages/sess
| `maxTokens` | required | `number` |
| `messageSeqs` | required | [`SessionEventEnvelope[38].sourceEventSeqs`](#persistence-type-sessioneventenvelope38sourceeventseqs) |
| `messages` | required | [`event:session/title-llm-request.data.messages`](#persistence-type-eventsessiontitle-llm-requestdatamessages) |
| `route` | required | [`packages/session/session-title/src/types.ts#SessionTitleModelProvenance`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance) |
| `route` | required | [`packages/session/session-title/src/types.ts#SessionTitleModelIdentity`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity) |
| `system` | required | `string` |
| `titleProvider` | required | `string` |
@@ -5546,9 +5546,9 @@ Sources: [`packages/session/session-title/src/types.ts:41`](../packages/session/
| `source` | required | [`packages/session/session-title/src/types.ts#SessionTitleSource`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlesource) |
| `title` | required | `string` |
<a id="persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance"></a>
<a id="persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity"></a>
### `packages/session/session-title/src/types.ts#SessionTitleModelProvenance`
### `packages/session/session-title/src/types.ts#SessionTitleModelIdentity`
SHA-256: `07e1a58c58b593f507b8e7f25723bb0aa42baae6e00f5ecfddf28cb1e64d3235`
+5 -5
View File
@@ -3130,7 +3130,7 @@ SHA-256: `b81e9de81a481b24e1e1f9adf038bfc59e57b4f35ce62f8f1e45284186f4f812`
| 属性 | 存在性 | 类型 |
|---|---|---|
| `kind` | 必需 | `"provider"` |
| `model` | 可选 | [`packages/session/session-title/src/types.ts#SessionTitleModelProvenance`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance) |
| `model` | 可选 | [`packages/session/session-title/src/types.ts#SessionTitleModelIdentity`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity) |
| `provider` | 必需 | `string` |
<a id="persistence-type-eventstepend"></a>
@@ -3262,7 +3262,7 @@ SHA-256: `0d47a8f3d847243c4488e755ad4cab7a04ac5d4621b9c81865524cf3f4d8536f`
SHA-256: `ba77b58995e36f14bb13886b0493d0a1a63d5db10b1a6cd9f6ac65a72cf832ec`
[`packages/session/session-title/src/types.ts#SessionTitleModelProvenance`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance) 的数组。
[`packages/session/session-title/src/types.ts#SessionTitleModelIdentity`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity) 的数组。
<a id="persistence-type-eventsystemmessage"></a>
@@ -5530,7 +5530,7 @@ SHA-256: `08936f7648f573f7539800e1ec2852fbbcba05e1a20487a1e5acf2a0fce1e2de`
| `maxTokens` | 必需 | `number` |
| `messageSeqs` | 必需 | [`SessionEventEnvelope[38].sourceEventSeqs`](#persistence-type-sessioneventenvelope38sourceeventseqs) |
| `messages` | 必需 | [`event:session/title-llm-request.data.messages`](#persistence-type-eventsessiontitle-llm-requestdatamessages) |
| `route` | 必需 | [`packages/session/session-title/src/types.ts#SessionTitleModelProvenance`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance) |
| `route` | 必需 | [`packages/session/session-title/src/types.ts#SessionTitleModelIdentity`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity) |
| `system` | 必需 | `string` |
| `titleProvider` | 必需 | `string` |
@@ -5548,9 +5548,9 @@ SHA-256: `b56f6a885da3dc394c69a3e3cc5c0cfc4da15601b63fda4989eee8f40efc5be4`
| `source` | 必需 | [`packages/session/session-title/src/types.ts#SessionTitleSource`](#persistence-type-packagessessionsession-titlesrctypestssessiontitlesource) |
| `title` | 必需 | `string` |
<a id="persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelprovenance"></a>
<a id="persistence-type-packagessessionsession-titlesrctypestssessiontitlemodelidentity"></a>
### `packages/session/session-title/src/types.ts#SessionTitleModelProvenance`
### `packages/session/session-title/src/types.ts#SessionTitleModelIdentity`
SHA-256: `07e1a58c58b593f507b8e7f25723bb0aa42baae6e00f5ecfddf28cb1e64d3235`
+1 -1
View File
@@ -13686,7 +13686,7 @@
]
},
"names": [
"packages/session/session-title/src/types.ts#SessionTitleModelProvenance",
"packages/session/session-title/src/types.ts#SessionTitleModelIdentity",
"packages/subagent/tool-subagent/src/model-selection.ts#AllowedModelRoute"
],
"sources": [
+1 -1
View File
@@ -45,7 +45,7 @@ export interface PersistenceRoot {
readonly schema: CanonicalSchema
}
/** One reachable structural type and its non-fingerprinted source provenance. */
/** One reachable structural type and its non-fingerprinted source declaration metadata. */
export interface PersistenceType {
readonly digest: string
readonly schema: CanonicalSchema
+1 -1
View File
@@ -185,7 +185,7 @@ interface SessionEventMap {
expect(detail?.sources).toEqual(['packages/domain/payload/src/detail.ts:2'])
})
it('keeps shared scalar provenance at real aliases and omits plain property references', () => {
it('keeps shared scalar declaration metadata at real aliases and omits plain property references', () => {
const root = fixture([
'type Label = string',
"type Done = 'done'",
+8 -8
View File
@@ -15,7 +15,7 @@ import {
type SchemaProperty,
} from './persistence-schema-model.ts'
interface Provenance {
interface DeclarationMetadata {
readonly names: Set<string>
readonly sources: Set<string>
}
@@ -204,7 +204,7 @@ function validateReachableDeclarations(
class SchemaExtractor {
readonly nodes: SchemaNode[] = []
private readonly cache = new Map<ts.Type, number>()
private readonly provenance = new Map<number, Provenance>()
private readonly declarationMetadata = new Map<number, DeclarationMetadata>()
private readonly checker: ts.TypeChecker
@@ -387,11 +387,11 @@ class SchemaExtractor {
const schema = canonicalizeSchema(this.nodes, id)
const digest = schemaDigest(schema)
const item = types.get(digest) ?? { schema, names: new Set<string>(), sources: new Set<string>() }
const provenance = this.provenance.get(id)
for (const name of provenance?.names ?? []) item.names.add(name)
for (const source of provenance?.sources ?? []) item.sources.add(source)
const declarationMetadata = this.declarationMetadata.get(id)
for (const name of declarationMetadata?.names ?? []) item.names.add(name)
for (const source of declarationMetadata?.sources ?? []) item.sources.add(source)
const kind = schema.nodes[0]?.kind
if (kind !== 'primitive' && kind !== 'literal' && (provenance === undefined || provenance.names.size === 0)) {
if (kind !== 'primitive' && kind !== 'literal' && (declarationMetadata === undefined || declarationMetadata.names.size === 0)) {
for (const path of paths.get(id) ?? []) item.names.add(path)
}
types.set(digest, item)
@@ -409,7 +409,7 @@ class SchemaExtractor {
}
private record(id: number, type: ts.Type): void {
const item = this.provenance.get(id) ?? { names: new Set<string>(), sources: new Set<string>() }
const item = this.declarationMetadata.get(id) ?? { names: new Set<string>(), sources: new Set<string>() }
const declarations = new Set([
...this.declarationSources.get(type) ?? [],
...type.aliasSymbol?.declarations ?? [],
@@ -424,7 +424,7 @@ class SchemaExtractor {
const position = source.getLineAndCharacterOfPosition(declaration.getStart())
item.sources.add(`${file}:${String(position.line + 1)}`)
}
this.provenance.set(id, item)
this.declarationMetadata.set(id, item)
}
private fail(type: ts.Type, site: ts.Node, reason: string): never {
+2 -2
View File
@@ -144,7 +144,7 @@ function definition(entry: TypeDisplay, entries: ReadonlyMap<string, TypeDisplay
/**
* Render every tracked root with its exact digest and resolved type reference.
* @param inventory - complete current-source schemas and provenance.
* @param inventory - complete current-source schemas and declaration metadata.
* @param locale - generated document language.
* @returns Markdown index including the history and contributor workflow links.
*/
@@ -160,7 +160,7 @@ export function renderPersistenceSchemaIndex(inventory: PersistenceSchemaInvento
/**
* Render every reachable type once, with links for shared and recursive definitions.
* @param inventory - complete current-source schemas and provenance.
* @param inventory - complete current-source schemas and declaration metadata.
* @param locale - generated document language.
* @returns Markdown definitions whose anchors use names or owning paths instead of hashes.
*/