Fix lockstep versioning and improve documentation

- Sync all packages to version 0.7.7
- Rewrite sync-versions.js to handle ALL inter-package dependencies automatically
- Fix web-ui dependency on pi-ai (was 0.6.0, now 0.7.7)
- Move agent fix changelog entry to coding-agent CHANGELOG
- Remove redundant agent CHANGELOG.md
- Improve README.md with clearer lockstep versioning docs
- Add /changelog command to display full changelog in TUI (newest last)
- Fix changelog description (not a scrollable viewer, just displays in chat)
- Update CHANGELOG for 0.7.7 release
This commit is contained in:
Mario Zechner 2025-11-13 23:37:43 +01:00
parent 7b347291ff
commit bc670bc63c
17 changed files with 1721 additions and 186 deletions

View file

@ -12,8 +12,10 @@ import {
TUI,
} from "@mariozechner/pi-tui";
import chalk from "chalk";
import { getChangelogPath, getNewEntries, parseChangelog } from "../changelog.js";
import { exportSessionToHtml } from "../export-html.js";
import type { SessionManager } from "../session-manager.js";
import { SettingsManager } from "../settings-manager.js";
import { AssistantMessageComponent } from "./assistant-message.js";
import { CustomEditor } from "./custom-editor.js";
import { DynamicBorder } from "./dynamic-border.js";
@ -92,9 +94,14 @@ export class TuiRenderer {
description: "Show session info and stats",
};
const changelogCommand: SlashCommand = {
name: "changelog",
description: "Show changelog entries",
};
// Setup autocomplete for file paths and slash commands
const autocompleteProvider = new CombinedAutocompleteProvider(
[thinkingCommand, modelCommand, exportCommand, sessionCommand],
[thinkingCommand, modelCommand, exportCommand, sessionCommand, changelogCommand],
process.cwd(),
);
this.editor.setAutocompleteProvider(autocompleteProvider);
@ -194,6 +201,13 @@ export class TuiRenderer {
return;
}
// Check for /changelog command
if (text === "/changelog") {
this.handleChangelogCommand();
this.editor.setText("");
return;
}
if (this.onInputCallback) {
this.onInputCallback(text);
}
@ -648,6 +662,25 @@ export class TuiRenderer {
this.ui.requestRender();
}
private handleChangelogCommand(): void {
const changelogPath = getChangelogPath();
const allEntries = parseChangelog(changelogPath);
// Show all entries in reverse order (oldest first, newest last)
const changelogMarkdown =
allEntries.length > 0
? allEntries
.reverse()
.map((e) => e.content)
.join("\n\n")
: "No changelog entries found.";
// Display in chat
this.chatContainer.addChild(new Spacer(1));
this.chatContainer.addChild(new Markdown(changelogMarkdown));
this.ui.requestRender();
}
stop(): void {
if (this.loadingAnimation) {
this.loadingAnimation.stop();