惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
S
SegmentFault 最新的问题
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
J
Java Code Geeks
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI

Hacker News - Newest: "AI"

AI can't read an investor deck AI as an attorney? Student uses ChatGPT, Gemini to sue UW over alleged racial discrimination Hacking MCP Servers in AI Systems – The Rug Pull: Tool Changes After Approval GitHub - MeepCastana/KubeezCut: Free Web based video editor Can AI judge journalism? A Thiel-backed startup says yes, even if it risks chilling whistleblowers Coming soon: 10 Things That Matter in AI Right Now DARPA built an AI to fact-check enemy weapons claims What explains heterogeneity in AI adoption? When AI Meets Muscle: Context-Aware Electrical Stimulation Promises a New Way to Guide Human Movements - Department of Computer Science AI Changed How We Build. It Did Not Change What Matters. Linux rules on using AI-generated code - Copilot is OK, but humans must take 'full responsibility for the… Meta spins up AI version of Mark Zuckerberg to engage with employees Code Mode: Let Your AI Write Programs, Not Just Call Tools | TanStack Blog GitHub - Delavalom/graft: Go framework for building AI agents. Type-safe tools, multi-provider (OpenAI, Anthropic, Gemini, Bedrock), zero vendor SDKs. India's TCS tops estimates, says new AI models did not dent services demand Gen Z's fading AI hype Strong feeling: we are in a folded AI reality GitHub - machinarii/total-recall-catalog: A reference catalog of latest knowledge retrieval, memory & RAG systems GitHub - mensfeld/code-on-incus: Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.. Quantization, LoRA, and the 8% Problem: Benchmarking Local LLMs for Production AI Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda Powell, Bessent discussed Anthropic's Mythos AI cyber threat with major U.S. banks GitHub - immartian/bellamem: Persistent belief-graph memory for AI agents. Retrieves decisive context by importance — not recency, not RAG, not /compact. recursive-mode: The Repo-Native Operating System for AI Engineering After the attack on Sam Altman's home, will AI CEO's go on the offensive? The biggest advance in AI since the LLM Opus 4.6 vs GPT 5.4 One Prompt Unity World Generation Test “AI polls” are fake polls Client Challenge Can AI be a 'child of God'? Inside Anthropic's meeting with Christian leaders
When Your Repo Moves, Your AI Coding History Doesn’t
apiculallc · 2026-04-23 · via Hacker News - Newest: "AI"

You move a repo. Or you fold three repos into a monorepo. Or you rename a top-level folder from ~/dev to ~/projects.

Your filesystem is fine. Git is fine. Your code is fine.

But your AI coding sessions can quietly keep the old absolute path in their metadata, and then everything downstream feels inconsistent:

  • “Resume” can’t find the thread you want
  • a thread opens, but it can’t locate the working directory
  • a write lands in the wrong place because the session’s idea of cwd is stale

This post is about why that happens, why it’s not a moral failing, and how to make it boring again.

The WHY: cwd Is Part of Your Session State

Most of us treat the current working directory as a boring detail.

AI coding tools don’t get that luxury.

A session isn’t just a chat log. It’s a pile of assumptions. One of the biggest assumptions is: “which directory is this work attached to?”

That “where” shows up in practical places:

  • what gets listed when you run a resume picker
  • which repo the agent thinks it’s operating in
  • whether a tool call that uses relative paths lands in the right project

When you move folders, the filesystem changes instantly.

But your session metadata doesn’t move with it. It can keep pointing at an absolute path that no longer exists.

What’s Actually On Disk (The Two-Places Problem)

In Codex-style local workflows, your sessions typically live in two places:

  1. JSONL rollout files (the append-only event log of the session)
  2. A local SQLite database that acts like an index for listing, filtering, and UI convenience

If you only update one and not the other, you can end up with a weird split-brain situation.

Here’s a toy model of the failure:

JSONL says:  cwd=/home/alina/projects/payments
SQLite says: cwd=/home/alina/dev/payments

Depending on which store a specific screen or command is using, you’ll see different “truths”:

  • the session file exists, but the UI doesn’t list it
  • the database lists a session, but points at paths that are now wrong

Real-World Failure Modes (Not Hypothetical)

Here are a few failure modes that show up in the wild.

1) “Current working directory missing” after a repo move

You moved a project folder because that’s normal maintenance.

But the session still points at the old path. The UI can detect the folder is gone, and you get stuck with a thread that can’t be relinked.

2) The tool becomes unusable when the directory is moved mid-session

On Windows/WSL setups, moving the directory a tool started in can turn into repeated “no such file or directory” errors.

Not because you did something exotic.

Because cwd is a live dependency.

3) “Resume” behavior feels inconsistent across projects

Some people expect “resume” to naturally scope to the repo they’re currently in.

Others want a global list.

Either way, it’s clear that cwd is doing real work behind the scenes, and stale values make the whole experience feel arbitrary.

4) Edits land in the wrong place

If a session’s cwd disagrees with “the workspace I meant,” you can end up writing patches into the wrong repository.

That’s not a UX nit. That’s a trust problem.

The Engineering Lens: This Is a Migration Problem

Once you see it, it’s mundane. You have old absolute paths. You have new absolute paths. What you need is (1) a deterministic mapping, (2) validation so you don’t rewrite into nonsense, and (3) an audit trail because trust comes from being able to inspect what changed.

This is the same mental model as migrating a database column. You don’t “just change strings.”

You run a migration with checks.

A Practical Fix: codecom

We built codecom for one narrow job: safe, local-first Codex session migration after repo/folder moves.

It stays intentionally narrow: migration and discovery, with safety checks and an audit trail.

What it does is intentionally boring:

  • scan is read-only, and it flags “orphaned” sessions whose cwd path no longer exists
  • the TUI move flow is explicit and confirmed, and it remaps cwd from a source root to a target root
  • it rewrites both the JSONL session metadata and the local SQLite thread paths so listing and resume behavior stay aligned
  • it commits changes with Git so you can inspect and revert them

If your repos move often, the goal is simple:

Make session portability boring.

How You’d Use It (3 Steps)

  1. Run a scan to see what’s broken.
  2. Use the TUI to select a source root and a target root.
  3. Confirm the move, then inspect the Git commits in your local Codex data directory.

Keybindings Cheat Sheet

  • F5: refresh (full rescan)
  • F6: move selected sessions (confirmed)
  • Space: toggle selection for a session
  • A: select all sessions in the current source folder
  • Ctrl+F: conversation search

Repo: https://github.com/apiculallc/codecom

If you want the “I’m not imagining it” version, here are public issues that rhyme with the problems above:


Codex is a product name used by OpenAI. codecom is an independent open-source tool built to help with local session migration workflows.