Преглед изворни кода

chore(session): refresh persistence references after master merge

Tianyi Cui пре 2 недеља
родитељ
комит
f85b328450

+ 2 - 2
docs/persistence-catalog.i18n.yaml

@@ -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
docs/persistence-catalog.md

@@ -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
docs/persistence-catalog.zh.md

@@ -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
docs/persistence-schema.json

@@ -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
scripts/persistence-schema-model.ts

@@ -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
scripts/persistence-schema.spec.ts

@@ -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
scripts/persistence-schema.ts

@@ -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
scripts/render-persistence-schema.ts

@@ -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.
  */