Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/desktop/scripts/electron-launcher.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -270,8 +270,8 @@ export function resolveMacBundleInfoPlistStrings(executableName) {
CFBundleExecutable: executableName,
CFBundleIconFile: "icon.icns",
NSScreenCaptureUsageDescription:
"T3 Code captures the active window when you use the snapshot shortcut.",
NSDocumentsFolderUsageDescription: "T3 Code reads project files you open in the desktop app.",
"Marcode captures the active window when you use the snapshot shortcut.",
NSDocumentsFolderUsageDescription: "Marcode reads project files you open in the desktop app.",
};
}

Expand Down
4 changes: 2 additions & 2 deletions apps/desktop/scripts/electron-launcher.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -120,11 +120,11 @@ describe("electron development launcher", () => {

assert.equal(
values.NSScreenCaptureUsageDescription,
"T3 Code captures the active window when you use the snapshot shortcut.",
"Marcode captures the active window when you use the snapshot shortcut.",
);
assert.equal(
values.NSDocumentsFolderUsageDescription,
"T3 Code reads project files you open in the desktop app.",
"Marcode reads project files you open in the desktop app.",
);
});

Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/electron/WindowsForeground.ts
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ export function loadWindowsForegroundApi(): Promise<WindowsForegroundApi> {
export async function activateWindowsForeground(handleBuffer: Buffer): Promise<void> {
const api = await loadWindowsForegroundApi();
if (activateWindowsForegroundWithApi(handleBuffer, api)) return;
throw new Error("Windows refused to activate the T3 Code window.");
throw new Error("Windows refused to activate the Marcode window.");
}

export async function isWindowsShellHostedForeground(): Promise<boolean> {
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/permissions/MacPermissionHelper.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ it("does not open for a permission already granted", async () => {
});
it("does not show a helper with a missing packaged icon", async () => {
mocks.createFromPath.mockReturnValueOnce({ isEmpty: () => true });
await expect(open()).rejects.toThrow("packaged T3 Code icon is missing");
await expect(open()).rejects.toThrow("packaged Marcode icon is missing");
expect(windows).toHaveLength(0);
});
it("cleans up when the helper page fails to load", async () => {
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/permissions/MacPermissionHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ button:focus-visible { outline: 2px solid #007aff; outline-offset: 3px; }
img { width: 32px; height: 32px; pointer-events: none; }
</style></head><body><main id="panel">
<button id="close" aria-label="Close permission helper">×</button>
<header>↑ Drag T3 Code into the list above</header>
<button id="app" draggable="true" aria-label="Drag T3 Code to System Settings, or click to reveal in Finder"><img src="${escapeHtml(icon)}" alt="" draggable="false">T3 Code</button>
<header>↑ Drag Marcode into the list above</header>
<button id="app" draggable="true" aria-label="Drag Marcode to System Settings, or click to reveal in Finder"><img src="${escapeHtml(icon)}" alt="" draggable="false">Marcode</button>
</main></body></html>`;
}

Expand Down Expand Up @@ -95,7 +95,7 @@ export class MacPermissionHelper {
const appIcon = iconPaths
.map((iconPath) => Electron.nativeImage.createFromPath(iconPath))
.find((image) => !image.isEmpty());
if (!appIcon) throw new Error("The packaged T3 Code icon is missing.");
if (!appIcon) throw new Error("The packaged Marcode icon is missing.");
const icon = appIcon.resize({ width: 64, height: 64 });
const window = new Electron.BrowserWindow({
width: 560,
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/snapShot/DesktopSnapShot.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1630,7 +1630,7 @@ it.effect(
const warning = logs.find(
(message) =>
Array.isArray(message) &&
message[0] === "The compositor could not activate T3 Code after the snapshot",
message[0] === "The compositor could not activate Marcode after the snapshot",
);
assert.strictEqual(Array.isArray(warning) ? warning[1] : undefined, activationFailure);
const pending = yield* decodePendingMetadata(saved);
Expand Down Expand Up @@ -3161,7 +3161,7 @@ it.effect("flags revoked macOS permissions on read and re-registers once they re
const revoked = yield* service.state;
assert.equal(
revoked.message,
"Allow Screen Recording in System Settings, then restart T3 Code.",
"Allow Screen Recording in System Settings, then restart Marcode.",
);
assert.deepEqual(revoked.macPermissions, { screenRecording: false, accessibility: true });

Expand All @@ -3174,7 +3174,7 @@ it.effect("flags revoked macOS permissions on read and re-registers once they re
const blocked = yield* service.state;
assert.equal(
blocked.message,
"Allow Screen Recording in System Settings, then restart T3 Code.",
"Allow Screen Recording in System Settings, then restart Marcode.",
);
assert.isFalse(blocked.shortcutRegistered);

Expand Down
14 changes: 7 additions & 7 deletions apps/desktop/src/snapShot/DesktopSnapShot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,11 @@ const FLASH_FRAME_INTERVAL_MS = 16;
const FLASH_PEAK_OPACITY = 0.08;
const MAC_SCREEN_CAPTURE_SETTINGS_URL = MAC_PERMISSION_SETTINGS_URLS["screen-recording"];
const MAC_SCREEN_CAPTURE_PERMISSION_MESSAGE =
"Allow Screen Recording in System Settings, then restart T3 Code.";
"Allow Screen Recording in System Settings, then restart Marcode.";
const MAC_ACCESSIBILITY_PERMISSION_MESSAGE =
"Allow Accessibility in System Settings, then restart T3 Code.";
"Allow Accessibility in System Settings, then restart Marcode.";
const MAC_BOTH_PERMISSIONS_MESSAGE =
"Allow Accessibility and Screen Recording in System Settings, then restart T3 Code.";
"Allow Accessibility and Screen Recording in System Settings, then restart Marcode.";
const MAC_PERMISSION_MESSAGES = new Set([
MAC_SCREEN_CAPTURE_PERMISSION_MESSAGE,
MAC_ACCESSIBILITY_PERMISSION_MESSAGE,
Expand Down Expand Up @@ -896,7 +896,7 @@ export const make = Effect.gen(function* () {
const capturedAt = yield* DateTime.now.pipe(Effect.map(DateTime.formatIso));
if (snapshot.linuxActivationFailure) {
yield* Effect.logWarning(
"The compositor could not activate T3 Code after the snapshot",
"The compositor could not activate Marcode after the snapshot",
snapshot.linuxActivationFailure.cause,
);
}
Expand Down Expand Up @@ -1016,7 +1016,7 @@ export const make = Effect.gen(function* () {
if (mode === "portal" && niriSocketPath()) {
return {
available: false,
message: "Configure the capture shortcut in your Niri config, not in T3 Code.",
message: "Configure the capture shortcut in your Niri config, not in Marcode.",
};
}
if (mode === "portal" && isHyprlandCaptureSession()) {
Expand Down Expand Up @@ -1166,7 +1166,7 @@ export const make = Effect.gen(function* () {
const { startNiriCaptureShortcut } = await import("./NiriCaptureShortcut.ts");
return startNiriCaptureShortcut(linuxAppId, onCurrentShortcut, () => {
void runPromise(
setShortcutFailure("The Niri capture endpoint disconnected. Restart T3 Code."),
setShortcutFailure("The Niri capture endpoint disconnected. Restart Marcode."),
).catch(() => undefined);
});
}).pipe(
Expand All @@ -1188,7 +1188,7 @@ export const make = Effect.gen(function* () {
shortcutActionRegistered: registered,
shortcutMessage: registered
? "Set up the shortcut to add it to your Niri config."
: "Could not start the Niri capture endpoint. Another T3 Code instance may be using it.",
: "Could not start the Niri capture endpoint. Another Marcode instance may be using it.",
message: null,
});
return;
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/snapShot/GnomeCaptureSetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export async function installGnomeCaptureBundle({ bundle, dataHome }: SetupPaths
await NodeFSP.readFile(NodePath.join(target, "metadata.json"), "utf8"),
);
if (installed.version > metadata.version)
throw new Error("A newer extension is installed. Update T3 Code instead of replacing it.");
throw new Error("A newer extension is installed. Update Marcode instead of replacing it.");
}
const staged = await NodeFSP.mkdtemp(NodePath.join(parent, ".t3-capture-install-"));
let backup: string | undefined;
Expand Down Expand Up @@ -184,7 +184,7 @@ export class GnomeCaptureSetup {
return {
status: "restart-required",
message:
"Installed. Save your work, sign out of GNOME and sign back in, then return here to enable the extension. Restarting T3 Code alone is not enough.",
"Installed. Save your work, sign out of GNOME and sign back in, then return here to enable the extension. Restarting Marcode alone is not enough.",
};
if ((installed?.version ?? info.version?.value ?? 0) < bundled.version)
return {
Expand All @@ -196,7 +196,7 @@ export class GnomeCaptureSetup {
return {
status: "extensions-disabled",
message:
"GNOME has disabled user extensions. Turn on Extensions in the GNOME Extensions app, then check again. T3 Code will not enable your other extensions for you.",
"GNOME has disabled user extensions. Turn on Extensions in the GNOME Extensions app, then check again. Marcode will not enable your other extensions for you.",
};
if (info.state?.value === 1)
return {
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/snapShot/HyprlandSnapShot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ export class HyprlandCaptureSetup {
const bundle = await regularFile(this.paths.bundle);
if (!bundle)
throw new Error(
"The Hyprland capture helper is missing from this build. Update or reinstall T3 Code.",
"The Hyprland capture helper is missing from this build. Update or reinstall Marcode.",
);
if (!installed.equals(bundle))
return {
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/snapShot/KdeSnapShot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export function kdeCaptureDesktopEntry(executable: string): string {
return [
"[Desktop Entry]",
"Type=Application",
"Name=T3 Code SnapShots",
"Name=Marcode SnapShots",
"NoDisplay=true",
`Exec=${escapeDesktopEntryExecArgument(executable)} check`,
// KService reads this custom property as a KConfig list, not an XDG ';' list.
Expand Down Expand Up @@ -116,7 +116,7 @@ export class KdeCaptureSetup {
if (!bundle)
return {
status: "error",
message: "The capture helper is missing from this build. Update or reinstall T3 Code.",
message: "The capture helper is missing from this build. Update or reinstall Marcode.",
};
if (!installed.equals(bundle) || entry.toString() !== kdeCaptureDesktopEntry(executable))
return {
Expand Down Expand Up @@ -162,7 +162,7 @@ export class KdeCaptureSetup {
const bundle = await regularFile(this.paths.bundle);
if (!bundle)
throw new Error(
"The capture helper is missing from this build. Update or reinstall T3 Code.",
"The capture helper is missing from this build. Update or reinstall Marcode.",
);
await NodeFSP.mkdir(directory, { recursive: true });
await NodeFSP.mkdir(NodePath.dirname(desktop), { recursive: true });
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/snapShot/LinuxSnapShot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ export class LinuxCaptureConnection {
this.bus.requestName(`${appId}.SnapShot`, NameFlag.DO_NOT_QUEUE),
);
if (result !== RequestNameReply.PRIMARY_OWNER) {
throw new Error("Another T3 Code instance is capturing a window. Try again.");
throw new Error("Another Marcode instance is capturing a window. Try again.");
}
const withFeedback = this.feedbackAvailable && options !== undefined;
const reply = await this.call({
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/snapShot/NiriCaptureShortcut.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export async function startNiriCaptureShortcut(
}),
]);
if (result !== RequestNameReply.PRIMARY_OWNER)
throw new Error("Another T3 Code instance already owns the capture shortcut.");
throw new Error("Another Marcode instance already owns the capture shortcut.");
return close;
} catch (error) {
close();
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/snapShot/NiriSnapShot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ async function activateNiriWindow(path: string, title: string, signal: AbortSign
(window) => window.pid === process.pid && window.title === title,
);
if (matches.length > 1)
throw new Error("More than one T3 Code window matches the capture destination.");
throw new Error("More than one Marcode window matches the capture destination.");
return matches[0];
});
connection.send("EventStream");
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/snapShot/PortalCaptureShortcut.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ it("guides users to manual desktop settings when the portal cannot open them", a
expect(client.hasSession).toBe(true);
expect(client.state.shortcutCanRetry).toBe(false);
expect(client.state.shortcutMessage).toBe(
"Shortcut permission wasn't granted. Allow T3 Code in your desktop's shortcut settings.",
"Shortcut permission wasn't granted. Allow Marcode in your desktop's shortcut settings.",
);
await expect(client.configure()).rejects.toThrow("Open your desktop's shortcut settings");
expect(bus.calls.some((message) => message.member === "ConfigureShortcuts")).toBe(false);
Expand Down
8 changes: 4 additions & 4 deletions apps/desktop/src/snapShot/PortalCaptureShortcut.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ export class PortalCaptureShortcut {
throw new Error("Change the capture binding in your Hyprland config, then save it.");
if (!this.hasSession || this.version < 2)
throw new Error(
"Open your desktop's shortcut settings and allow T3 Code's capture shortcut.",
"Open your desktop's shortcut settings and allow Marcode's capture shortcut.",
);
await this.call({
destination: this.owner,
Expand Down Expand Up @@ -164,7 +164,7 @@ export class PortalCaptureShortcut {
// This failed session is closing, so retry can register a fresh one.
shortcutCanRetry: !this.managedByHyprland,
shortcutMessage: this.managedByHyprland
? "Couldn't connect to Hyprland shortcuts. Make sure xdg-desktop-portal-hyprland is running, then restart T3 Code."
? "Couldn't connect to Hyprland shortcuts. Make sure xdg-desktop-portal-hyprland is running, then restart Marcode."
: error instanceof Error
? error.message
: "Could not register the capture shortcut.",
Expand Down Expand Up @@ -304,7 +304,7 @@ export class PortalCaptureShortcut {
shortcutMessage:
this.version >= 2
? "Shortcut permission wasn't granted. Open shortcut permissions to allow it."
: "Shortcut permission wasn't granted. Allow T3 Code in your desktop's shortcut settings.",
: "Shortcut permission wasn't granted. Allow Marcode in your desktop's shortcut settings.",
});
return undefined;
}
Expand All @@ -327,7 +327,7 @@ export class PortalCaptureShortcut {
shortcutPending: false,
shortcutMessage: shortcut
? "Managed by Hyprland. Add the binding to your config and save it."
: "Hyprland did not register the capture action. Check that xdg-desktop-portal-hyprland is running, then restart T3 Code.",
: "Hyprland did not register the capture action. Check that xdg-desktop-portal-hyprland is running, then restart Marcode.",
});
return;
}
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/snapShot/SnapShotTransition.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ function createWindow(
resizable: false,
show: false,
skipTaskbar: true,
title: "T3 Code Snapshot Animation",
title: "Marcode Snapshot Animation",
transparent: true,
webPreferences: {
backgroundThrottling: false,
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/snapShot/snapShot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ export function hideAndWaitForBlur(window: {
return new Promise((resolve, reject) => {
const timeout = setTimeout(() => {
window.removeListener("blur", onBlur);
reject(new Error("Timed out waiting for T3 Code to lose focus."));
reject(new Error("Timed out waiting for Marcode to lose focus."));
}, WINDOW_BLUR_TIMEOUT_MS);
const onBlur = () => {
clearTimeout(timeout);
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/app.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ const widgetsPlugin: NonNullable<ExpoConfig["plugins"]>[number] = [
{
name: "SubscriptionUsage",
displayName: "Subscription usage",
description: "Subscription quotas from your connected T3 Code environments.",
description: "Subscription quotas from your connected Marcode environments.",
configuration: {
title: "Subscription usage",
description:
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/src/Stack.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ const SettingsContentStack = createNativeStackNavigator({
SettingsAbout: createNativeStackScreen({
screen: SettingsAboutRouteScreen,
linking: "about",
options: { title: "About T3 Code" },
options: { title: "About Marcode" },
}),
SettingsEnvironmentNew: createNativeStackScreen({
screen: ConnectionsNewRouteScreen,
Expand Down
4 changes: 2 additions & 2 deletions apps/mobile/src/features/diagnostics/crash-log-model.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,14 @@ describe("formatStartupCrashReport", () => {
version: "1.1.1",
build: "56",
});
expect(report.startsWith("T3 Code 1.1.1 (56)\n")).toBe(true);
expect(report.startsWith("Marcode 1.1.1 (56)\n")).toBe(true);
expect(report).toContain("2026-09-13T05:35:52.000Z");
expect(report).toContain("at NewTaskFlowProvider");
});

it("says so when nothing was recorded", () => {
expect(formatStartupCrashReport([], { version: "1.1.1", build: "56" })).toBe(
"T3 Code 1.1.1 (56)\nNo startup crashes recorded.",
"Marcode 1.1.1 (56)\nNo startup crashes recorded.",
);
});
});
2 changes: 1 addition & 1 deletion apps/mobile/src/features/diagnostics/crash-log-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ export function formatStartupCrashReport(
records: ReadonlyArray<StartupCrashRecord>,
app: { readonly version: string; readonly build: string },
): string {
const header = `T3 Code ${app.version} (${app.build})`;
const header = `Marcode ${app.version} (${app.build})`;
if (records.length === 0) return `${header}\nNo startup crashes recorded.`;
return [
header,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export function SettingsAboutRouteScreen() {
const insets = useSafeAreaInsets();

return (
<SettingsScreen title="About T3 Code">
<SettingsScreen title="About Marcode">
<ScrollView
contentInsetAdjustmentBehavior="automatic"
showsVerticalScrollIndicator={false}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ function EnvironmentDetail({ environmentId }: { readonly environmentId: Environm
return;
Alert.alert(
`Update ${environment?.environmentLabel ?? "environment"}?`,
`Install T3 Code ${targetVersion}. ${capabilities.serverSelfUpdate === "desktop-managed" ? "The desktop app will close and relaunch." : "The server will restart and reconnect."} Running threads may be interrupted.`,
`Install Marcode ${targetVersion}. ${capabilities.serverSelfUpdate === "desktop-managed" ? "The desktop app will close and relaunch." : "The server will restart and reconnect."} Running threads may be interrupted.`,
[
{ text: "Cancel", style: "cancel" },
{
Expand Down Expand Up @@ -188,7 +188,7 @@ function EnvironmentDetail({ environmentId }: { readonly environmentId: Environm
{notice ? <Text className="px-2 text-sm text-foreground-muted">{notice}</Text> : null}
{config ? (
<>
<SettingsSection title="T3 Code">
<SettingsSection title="Marcode">
<View className="gap-1 p-4">
<Text className="text-base text-foreground">Version {version}</Text>
{running ? (
Expand All @@ -213,7 +213,7 @@ function EnvironmentDetail({ environmentId }: { readonly environmentId: Environm
<Text className="text-sm text-foreground-muted">
{capabilities?.serverSelfUpdate === "desktop-managed"
? "Update the desktop app on this machine."
: "Update and restart T3 Code on this machine."}
: "Update and restart Marcode on this machine."}
</Text>
) : null}
</View>
Expand Down
Loading
Loading