PageSourceSearch

https://gemini-app-lake.vercel.app/js/changelog.js

js gemini-app-lake.vercel.app collected 2026-10-03 06:59:44 UTC 4,881 bytes, 150 lines download raw bytes

1// Developed by Paramjot Singh (https://github.com/Param2596)
2// Copyright (c) 2025 Paramjot Singh. All rights reserved.
3
4// Changelog data and functionality for Retro Terminal
5
6const CHANGELOG_DATA = {
7    "1.0.0": {
8        "date": "2025-01-XX",
9        "type": "major",
10        "features": [
11            "🎨 Six retro terminal themes (Amber, Green, Blue, White, Red, Soft)",
12            "🤖 Multiple AI personas (Iris, Luna, Syntra, Captain Nova)",
13            "📁 File upload support for Gemini Vision",
14            "💾 Chat history save/reload functionality",
15            "⚙️ Comprehensive settings panel",
16            "🔐 Secure API key management",
17            "📱 Fully responsive mobile design",
18            "⌨️ Terminal command system",
19            "🎵 Sound effects and CRT animations",
20            "🧠 AI memory system for persona context"
21        ],
22        "improvements": [
23            "⚡ Optimized typing animation performance",
24            "🎯 Enhanced keyboard navigation",
25            "📊 Real-time status indicators"
26        ],
27        "fixes": [
28            "🐛 Fixed markdown rendering in chat history",
29            "🔧 Improved file upload error handling",
30            "⚙️ Resolved theme switching glitches"
31        ]
32    },
33    "1.0.1": {
34        "date": "2025-07-19",
35        "type": "minor",
36        "features": [
37            "Each persona now has a random welcome message",
38            "Added a changelog to the terminal",
39            "Added two new personas (Atlas and Captain Nova)",
40        ]
41    }
42    // Future versions can be added here
43};
44
45// Function to get changelog for a specific version
46function getVersionChangelog(version) {
47    return CHANGELOG_DATA[version] || null;
48}
49
50// Function to get all changelog versions
51function getAllVersions() {
52    return Object.keys(CHANGELOG_DATA).sort((a, b) => {
53        // Sort versions in descending order (newest first)
54        const aParts = a.split('.').map(Number);
55        const bParts = b.split('.').map(Number);
56        
57        for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
58            const aPart = aParts[i] || 0;
59            const bPart = bParts[i] || 0;
60            
61            if (aPart !== bPart) {
62                return bPart - aPart;
63            }
64        }
65        return 0;
66    });
67}
68
69// Function to format changelog for terminal display
70function formatChangelogForTerminal(version = null) {
71    let output = "RETRO TERMINAL - CHANGELOG\n";
72    output += "═".repeat(50) + "\n\n";
73    
74    const versions = version ? [version] : getAllVersions();
75    
76    for (const ver of versions) {
77        const changelog = getVersionChangelog(ver);
78        if (!changelog) continue;
79        
80        // Version header
81        output += `VERSION ${ver} - ${changelog.date}\n`;
82        output += "─".repeat(30) + "\n";
83        
84        // Type indicator
85        const typeIndicator = {
86            'major': '🚀 MAJOR RELEASE',
87            'minor': '✨ MINOR UPDATE', 
88            'patch': '🔧 PATCH'
89        };
90        output += `${typeIndicator[changelog.type] || '📦 RELEASE'}\n\n`;
91        
92        // Features
93        if (changelog.features && changelog.features.length > 0) {
94            output += "NEW FEATURES:\n";
95            changelog.features.forEach(feature => {
96                output += `  ${feature}\n`;
97            });
98            output += "\n";
99        }
100        
101        // Improvements
102        if (changelog.improvements && changelog.improvements.length > 0) {
103            output += "IMPROVEMENTS:\n";
104            changelog.improvements.forEach(improvement => {
105                output += `  ${improvement}\n`;
106            });
107            output += "\n";
108        }
109        
110        // Bug fixes
111        if (changelog.fixes && changelog.fixes.length > 0) {
112            output += "BUG FIXES:\n";
113            changelog.fixes.forEach(fix => {
114                output += `  ${fix}\n`;
115            });
116            output += "\n";
117        }
118        
119        output += "═".repeat(50) + "\n\n";
120    }
121    
122    output += "Type '/help' for available commands\n";
123    output += "Visit https://github.com/Param2596/retro-terminal for more info";
124    
125    return output;
126}
127
128// Function to get latest version
129function getLatestVersion() {
130    const versions = getAllVersions();
131    return versions.length > 0 ? versions[0] : null;
132}
133
134// Function to check if there are updates (placeholder for future use)
135function hasUpdates(currentVersion) {
136    const latest = getLatestVersion();
137    return latest && latest !== currentVersion;
138}
139
140// Export functions for use in other modules
141if (typeof module !== 'undefined' && module.exports) {
142    module.exports = {
143        CHANGELOG_DATA,
144        getVersionChangelog,
145        getAllVersions,
146        formatChangelogForTerminal,
147        getLatestVersion,
148        hasUpdates
149    };
150} 

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.