Skip to content

[closed] [codex] Fix visited timestamp under clock skew - #2406

Closed
juliusmarminge wants to merge 41 commits into
mainfrom
t3code/e1713ff7
Closed

juliusmarminge wants to merge 41 commits into
mainfrom
t3code/e1713ff7

Fix visited timestamp under clock skew

9678d3b
Select commit
Loading
Failed to load commit list.
MacroscopeApp / Macroscope - Correctness Check completed Apr 29, 2026 in 7m 46s

5 issues identified (298 code objects reviewed).

• Merge Base: 5cf83ff
• Head: 9678d3b

Details

✅ File Path Comments Posted
✅ .gitignore
✅ turbo.json
✅ apps/web/vercel.json
➖ packages/ssh/package.json
✅ packages/ssh/src/errors.ts 0
✅ packages/ssh/tsconfig.json
✅ packages/ssh/src/auth.ts 0
✅ apps/web/src/hostedPairing.ts 0
➖ packages/ssh/src/auth.test.ts
❌ packages/ssh/src/config.ts 1
❌ packages/ssh/src/tunnel.ts 1
✅ packages/ssh/src/command.ts 0
➖ packages/ssh/src/config.test.ts
➖ packages/tailscale/package.json
✅ packages/tailscale/src/index.ts
✅ packages/tailscale/tsconfig.json
➖ scripts/lib/brand-assets.test.ts
✅ scripts/apply-web-brand-assets.ts 0
➖ apps/web/src/hostedPairing.test.ts
➖ packages/ssh/src/tunnel.test.ts
✅ apps/server/src/ws.ts
➖ packages/ssh/src/command.test.ts
✅ apps/desktop/src/sshEnvironment.ts 0
✅ packages/contracts/src/remoteAccess.ts
✅ packages/tailscale/src/tailscale.ts 0
➖ apps/desktop/src/sshEnvironment.test.ts
➖ apps/server/package.json
✅ scripts/release-smoke.ts
➖ apps/web/src/vite-env.d.ts
➖ packages/tailscale/src/tailscale.test.ts
✅ apps/desktop/src/sshScripts/askpass-posix.sh
✅ apps/desktop/src/sshScripts/remote-launch.sh
✅ apps/desktop/src/sshScripts/remote-runner.sh
✅ apps/desktop/src/sshScripts/remote-pairing.sh
➖ apps/server/src/cli.test.ts
➖ .plans/19-remote-endpoints-hosted-static.md
✅ apps/desktop/src/sshScripts/askpass-windows.cmd
✅ apps/desktop/src/sshScripts/askpass-windows.ps1
✅ apps/web/src/components/settings/pairingUrls.ts
✅ apps/web/vite.config.ts
✅ apps/desktop/src/sshScripts/remote-pick-port.cjs 0
✅ apps/desktop/src/tailscaleEndpointProvider.ts 0
✅ apps/desktop/tsdown.config.ts
✅ packages/client-runtime/src/advertisedEndpoint.ts 0
➖ apps/desktop/src/tailscaleEndpointProvider.test.ts
➖ apps/web/src/components/settings/pairingUrls.test.ts
✅ apps/server/src/config.ts 0
✅ packages/contracts/src/index.ts
➖ packages/client-runtime/src/advertisedEndpoint.test.ts
➖ apps/desktop/package.json
✅ apps/web/src/routes/_chat.tsx
➖ bun.lock
✅ apps/web/src/components/desktop/SshPasswordPromptDialog.tsx 0
✅ packages/client-runtime/src/index.ts
✅ apps/server/src/server.ts
✅ apps/web/src/routes/settings.tsx
✅ apps/web/src/environments/remote/api.ts
➖ apps/desktop/src/clientPersistence.test.ts
✅ apps/desktop/src/preload.ts 0
✅ apps/web/src/environments/runtime/index.ts 0
➖ apps/web/src/environments/remote/api.test.ts
➖ apps/web/src/clientPersistenceStorage.test.ts
✅ REMOTE.md
✅ apps/web/src/environments/remote/target.ts
✅ apps/web/src/components/ui/scroll-area.tsx
➖ apps/web/src/localApi.test.ts
✅ apps/web/src/routes/pair.tsx
✅ apps/web/src/routes/_chat.index.tsx 0
➖ apps/web/src/rpc/wsTransport.test.ts
➖ apps/desktop/src/serverExposure.test.ts
✅ apps/web/src/components/ui/dialog.tsx
➖ apps/web/src/rpc/wsConnectionState.test.ts
✅ apps/desktop/src/serverExposure.ts 0
✅ apps/web/src/rpc/wsTransport.ts 0
✅ apps/web/src/components/settings/settingsLayout.tsx 0
✅ apps/web/src/components/ui/alert-dialog.tsx
➖ apps/web/src/uiStateStore.test.ts
✅ apps/desktop/src/desktopSettings.ts 0
➖ apps/server/src/environment/Layers/ServerEnvironment.test.ts
✅ apps/web/src/components/auth/PairingRouteSurface.tsx
✅ .docs/remote-architecture.md
➖ apps/web/src/components/WebSocketConnectionSurface.logic.test.ts
➖ apps/server/src/server.test.ts
✅ scripts/lib/brand-assets.ts 0
✅ apps/server/src/cli.ts 0
✅ packages/contracts/src/ipc.ts 0
✅ apps/web/src/environments/runtime/catalog.ts 0
✅ apps/web/src/uiStateStore.ts 0
✅ apps/web/src/localApi.ts 0
✅ apps/desktop/src/clientPersistence.ts 0
✅ apps/web/src/components/WebSocketConnectionSurface.tsx 0
✅ apps/web/src/clientPersistenceStorage.ts
✅ apps/web/src/components/chat/ChatComposer.tsx 0
➖ apps/web/src/environments/runtime/service.threadSubscriptions.test.ts
➖ apps/desktop/src/desktopSettings.test.ts
✅ apps/web/src/components/ChatView.tsx 0
✅ apps/web/src/rpc/wsConnectionState.ts 0
✅ apps/web/src/rpc/protocol.ts 0
✅ apps/web/src/routes/__root.tsx 0
➖ apps/server/src/cli-config.test.ts
✅ apps/web/src/components/chat/ComposerPrimaryActions.tsx
✅ apps/web/src/components/settings/SettingsPanels.browser.tsx 0
✅ apps/desktop/src/main.ts 0
➖ apps/web/src/environments/runtime/service.addSavedEnvironment.test.ts
❌ apps/web/src/environments/runtime/service.ts 1
❌ apps/web/src/components/settings/ConnectionsSettings.tsx 2

Filtered Issues Details

apps/desktop/src/sshScripts/remote-pick-port.cjs
  • line 4: If process.argv[3] is not provided and the file at filePath is empty or doesn't exist, both preferred and defaultPort become NaN. Since Number.isInteger(NaN) returns false, start falls back to defaultPort which is NaN. This causes the loop to never execute because NaN < end is always false, silently failing the port scan. [ Failed validation ]
  • line 6: If filePath exists but is a directory (or a file without read permissions), fs.readFileSync will throw a synchronous exception at module load time. This exception is not caught because it occurs outside the async IIFE's .catch() handler on line 31. The script will crash instead of gracefully falling back to defaultPort. Consider wrapping the file read in a try-catch or using fs.statSync to verify it's a readable file. [ Cross-file consolidated ]
packages/ssh/src/command.ts
  • line 205: At line 205, child.exitCode.pipe(Effect.map(Number)) converts the exit code using the Number constructor. If the child process is terminated by a signal (rather than exiting normally), child.exitCode may resolve to null. Since Number(null) returns 0, the check at line 222 (exitCode !== 0) would incorrectly pass, treating a signal-killed process as successful instead of an error. [ Failed validation ]