@@ -5,11 +5,10 @@ import * as vscode from 'vscode';
55 */
66export class ReleaseNotesManager implements vscode . Disposable {
77 private extensionContext : vscode . ExtensionContext ;
8- private releaseNoteVersionKey : string ;
8+ private readonly zmodelPreviewReleaseNoteKey = 'zmodel-preview-release-note-shown' ;
99
1010 constructor ( context : vscode . ExtensionContext ) {
1111 this . extensionContext = context ;
12- this . releaseNoteVersionKey = `release-notes-shown:${ this . extensionContext . extension . packageJSON . version } ` ;
1312 this . initialize ( ) ;
1413 }
1514
@@ -25,12 +24,12 @@ export class ReleaseNotesManager implements vscode.Disposable {
2524 */
2625 async showReleaseNotesIfFirstTime ( ) : Promise < void > {
2726 // Show release notes if this is the first time activating this version
28- if ( ! this . extensionContext . globalState . get ( this . releaseNoteVersionKey ) ) {
27+ if ( ! this . extensionContext . globalState . get ( this . zmodelPreviewReleaseNoteKey ) ) {
2928 await this . showReleaseNotes ( ) ;
3029 // Update the stored version to prevent showing again
31- await this . extensionContext . globalState . update ( this . releaseNoteVersionKey , true ) ;
30+ await this . extensionContext . globalState . update ( this . zmodelPreviewReleaseNoteKey , true ) ;
3231 // Add this key to sync keys for cross-machine synchronization
33- this . extensionContext . globalState . setKeysForSync ( [ this . releaseNoteVersionKey ] ) ;
32+ this . extensionContext . globalState . setKeysForSync ( [ this . zmodelPreviewReleaseNoteKey ] ) ;
3433 }
3534 }
3635
@@ -39,9 +38,17 @@ export class ReleaseNotesManager implements vscode.Disposable {
3938 */
4039 async showReleaseNotes ( ) : Promise < void > {
4140 try {
41+ // Read the release notes HTML file
42+ const releaseNotesPath = vscode . Uri . joinPath (
43+ this . extensionContext . extensionUri ,
44+ 'bundle/res/zmodel-preview-release-notes.html'
45+ ) ;
46+
47+ const htmlBytes = await vscode . workspace . fs . readFile ( releaseNotesPath ) ;
48+ const htmlContent = Buffer . from ( htmlBytes ) . toString ( 'utf8' ) ;
4249 // Create and show the release notes webview
4350 const panel = vscode . window . createWebviewPanel (
44- 'zenstackReleaseNotes ' ,
51+ 'ZenstackReleaseNotes ' ,
4552 'ZenStack - New Feature Announcement!' ,
4653 vscode . ViewColumn . One ,
4754 {
@@ -50,12 +57,6 @@ export class ReleaseNotesManager implements vscode.Disposable {
5057 }
5158 ) ;
5259
53- // Read the release notes HTML file
54- const releaseNotesPath = vscode . Uri . joinPath ( this . extensionContext . extensionUri , 'src/release-notes.html' ) ;
55-
56- const htmlBytes = await vscode . workspace . fs . readFile ( releaseNotesPath ) ;
57- const htmlContent = Buffer . from ( htmlBytes ) . toString ( 'utf8' ) ;
58-
5960 panel . webview . html = htmlContent ;
6061
6162 // Optional: Close the panel when user clicks outside or after some time
0 commit comments