Compare commits

..

2 Commits

Author SHA1 Message Date
Chris Wanstrath
bc62e1a0ad update build.js 2025-10-02 14:45:21 -07:00
Chris Wanstrath
66c75ff87f update cwd when project changes 2025-10-02 14:45:20 -07:00
2 changed files with 38 additions and 4 deletions

View File

@ -1,5 +1,5 @@
////
// version: d95d2ec
// version: 66c75ff
// src/js/dom.ts
var content2 = $("content");
@ -168,6 +168,37 @@ function handleOutput(msg) {
// src/js/session.ts
var sessionId = randomId();
var projectName = $("project-name");
var projectCwd = $("project-cwd");
var sessionStore = new Map;
function handleSessionStart(msg) {
sessionStore.set("NOSE_DIR", msg.data.NOSE_DIR);
updateProjectName(msg.data.project);
updateCwd(msg.data.cwd);
browserCommands.mode?.(msg.data.mode);
}
function handleSessionUpdate(msg) {
const data = msg.data;
if (data.project)
updateProjectName(data.project);
if (data.cwd)
updateCwd(data.cwd);
}
function updateProjectName(project) {
sessionStore.set("project", project);
projectName.textContent = project;
updateCwd("/");
}
function updateCwd(cwd) {
cwd = displayProjectPath(cwd);
sessionStore.set("cwd", cwd);
projectCwd.textContent = cwd;
}
function displayProjectPath(path) {
let prefix = sessionStore.get("NOSE_DIR") || "";
prefix += "/" + sessionStore.get("project");
return path.replace(prefix, "") || "/";
}
// src/js/stream.ts
function handleStreamStart(msg) {
@ -534,8 +565,11 @@ async function dispatchMessage(msg) {
case "game:start":
await handleGameStart(msg);
break;
case "ui:mode":
browserCommands.mode?.(msg.data);
case "session:start":
handleSessionStart(msg);
break;
case "session:update":
handleSessionUpdate(msg);
break;
default:
console.error("unknown message type", msg);
@ -617,7 +651,6 @@ function cacheCommands(cmds) {
commands.push(...cmds);
commands.push(...Object.keys(browserCommands));
commands.sort();
console.log("CMDS", commands);
}
// src/js/completion.ts

View File

@ -32,6 +32,7 @@ export function handleSessionUpdate(msg: SessionUpdateMessage) {
function updateProjectName(project: string) {
sessionStore.set("project", project)
projectName.textContent = project
updateCwd("/")
}
function updateCwd(cwd: string) {