Skip to content
Open
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
6df6a8c
fix: resolve multiple memory leaks in bus subscriptions, compaction, …
sebishogun Feb 13, 2026
6833d99
fix: clean up jdtls temp data directory on shutdown
sebishogun Feb 17, 2026
55cda82
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 17, 2026
ed2da20
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 17, 2026
a3fcca8
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 20, 2026
a63fbec
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 20, 2026
4102aa5
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 20, 2026
3e06f9a
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 20, 2026
1121b46
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 20, 2026
b89788f
fix(e2e): increase timeout for workspace item visibility in project s…
sebishogun Feb 20, 2026
2beb995
Merge remote-tracking branch 'origin/dev' into fix/memory-leaks
sebishogun Feb 21, 2026
ececd3d
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 21, 2026
939ee12
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 21, 2026
a5ef732
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 22, 2026
9149526
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
9ca5f92
Merge remote-tracking branch 'origin/dev' into fix/memory-leaks
sebishogun Feb 24, 2026
4c7390e
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
2656a19
fix(win32): resolve 47 Windows unit test failures
sebishogun Feb 24, 2026
61770c4
Merge remote-tracking branch 'origin/dev' into fix/memory-leaks
sebishogun Feb 24, 2026
ca0a5a5
fix(win32): resolve remaining 20 Windows unit test failures
sebishogun Feb 24, 2026
0b10581
fix(win32): resolve final 5 Windows unit test failures
sebishogun Feb 24, 2026
0562edc
ci: re-trigger Windows tests
sebishogun Feb 24, 2026
0ea2788
Merge remote-tracking branch 'origin/dev' into fix/memory-leaks
sebishogun Feb 24, 2026
ede1816
fix(win32): use file mtime instead of JS Date in FileTime.read()
sebishogun Feb 24, 2026
ca1073d
fix(win32): replace structuredClone(process.env) in ide test
sebishogun Feb 24, 2026
b5a7977
Merge remote-tracking branch 'origin/dev' into fix/memory-leaks
sebishogun Feb 24, 2026
dc42ac0
fix(win32): comprehensive e2e and cross-platform fixes
sebishogun Feb 24, 2026
7c69f90
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
a2a2295
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
6f5a5b2
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
9524788
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
2acdf51
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
06ae5a5
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 24, 2026
3830725
feat(core): add workspace-serve command (experimental) (#14960)
jlongster Feb 24, 2026
53b7a44
release: v1.2.11
Feb 24, 2026
ea46829
fix(opencode): import custom tools via file URL (#14971)
Hona Feb 25, 2026
369c3e9
fix(project): await git id cache write (#14977)
Hona Feb 25, 2026
3cefb54
fix(opencode): disable config bun cache in CI (#14985)
Hona Feb 25, 2026
99ee8d5
refactor: migrate Bun.spawn to Process utility with timeout and clean…
thdxr Feb 25, 2026
77272a7
core: temporarily disable plan enter tool to prevent unintended mode …
thdxr Feb 25, 2026
ffeab1c
feat: show LSP errors for apply_patch tool (#14715)
thdxr Feb 25, 2026
24382f5
ci: auto-resolve merge conflicts in beta sync using opencode
thdxr Feb 25, 2026
2165c9a
ci: specify opencode/kimi-k2.5 model in beta script to ensure consist…
thdxr Feb 25, 2026
27efa5d
ci: switch beta script to gpt-5.3-codex for improved code generation …
thdxr Feb 25, 2026
e52df71
desktop: make readme more accurate
Brendonovich Feb 25, 2026
06961bc
zen: go
fwang Feb 25, 2026
0916a58
wip: zen go
fwang Feb 25, 2026
740ba77
wip: zen go
fwang Feb 25, 2026
92a4720
wip: zen go
fwang Feb 25, 2026
bf543d1
zen: go
fwang Feb 25, 2026
fb6ec21
feat(desktop): enhance Windows app resolution and UI loading states (…
neriousy Feb 25, 2026
4ce7b77
sync
thdxr Feb 25, 2026
18274cd
opencode go copy
thdxr Feb 25, 2026
b05f493
release: v1.2.13
Feb 25, 2026
1f891ab
fix: consume stdout concurrently with process exit in auth login (#15…
Ayushlm10 Feb 25, 2026
1c44126
feat(core): add message delete endpoint (#14417)
shantur Feb 25, 2026
4f7db39
release: v1.2.14
Feb 25, 2026
5dcafc5
chore: generate
opencode-agent[bot] Feb 25, 2026
eacdf07
chore(workflows): label vouched users and restrict vouch managers (#1…
R44VC0RP Feb 25, 2026
199761b
fix(app): correct Copilot provider description in i18n files (#15071)
Oleksii-Pavliuk Feb 25, 2026
0147a6e
fix(app): keyboard navigation previous/next message (#15047)
neriousy Feb 25, 2026
dc8154d
tweak(ui): keep reasoning inline code subdued in dark mode
iamdavidhill Feb 20, 2026
0b5bf3c
chore: move glossary
adamdotdevin Feb 25, 2026
c6a3ebe
wip: zen go
fwang Feb 25, 2026
e776dba
split tui/server config (#13968)
kommander Feb 25, 2026
5089d4c
chore: generate
opencode-agent[bot] Feb 25, 2026
c5f5fe5
fix(docs): update schema URL in share configuration examples across m…
OpeOginni Feb 25, 2026
cbf4662
fix(app): permissions and questions from child sessions (#15105)
adamdotdevin Feb 26, 2026
7fff8dd
wip: zen
fwang Feb 26, 2026
84ada22
fix(desktop): remove interactive shell flag from sidecar spawn to pre…
kilhyeonjun Feb 26, 2026
7e93eea
fix(app): middle-click tab close in scrollable tab bar (#15081)
choephix Feb 26, 2026
10a9e75
fix: most segfaults on windows with Bun v1.3.10 stable (#15181)
Hona Feb 26, 2026
15d9d70
release: v1.2.15
Feb 26, 2026
d25e932
fix(app): open in powershell (#15112)
neriousy Feb 26, 2026
8c335af
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 26, 2026
4e463e4
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 26, 2026
2bde5e0
fix: sync stale cherry-pick changes with origin/dev
sebishogun Feb 26, 2026
01c3e65
fix(win32): normalize directory paths in file index to forward slashes
sebishogun Feb 26, 2026
b10692a
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 26, 2026
80e89e9
test: temporarily revert file/index.ts to origin/dev to isolate promp…
sebishogun Feb 26, 2026
66418ea
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 26, 2026
c9964d3
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 26, 2026
93a916d
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 26, 2026
f7b088d
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 27, 2026
330ce73
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 27, 2026
98512be
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 27, 2026
c0a2440
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 28, 2026
11041eb
Merge branch 'dev' into fix/memory-leaks
sebishogun Feb 28, 2026
0bca219
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 1, 2026
d05b242
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 2, 2026
127e961
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 5, 2026
ddabfa8
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 5, 2026
ee19761
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 5, 2026
e50b5ba
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 5, 2026
12fbab2
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 5, 2026
afa5715
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 6, 2026
f0c3c1b
Merge branch 'dev' into fix/memory-leaks
sebishogun Mar 6, 2026
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
36 changes: 24 additions & 12 deletions packages/opencode/src/file/time.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,36 @@ export namespace FileTime {
// All tools that overwrite existing files should run their
// assert/read/write/update sequence inside withLock(filepath, ...)
// so concurrent writes to the same file are serialized.
export const state = Instance.state(() => {
const read: {
[sessionID: string]: {
[path: string]: Date | undefined
export const state = Instance.state(
() => {
const read: {
[sessionID: string]: {
[path: string]: Date | undefined
}
} = {}
const locks = new Map<string, Promise<void>>()
return {
read,
locks,
}
} = {}
const locks = new Map<string, Promise<void>>()
return {
read,
locks,
}
})
},
async (current) => {
for (const key of Object.keys(current.read)) {
delete current.read[key]
}
current.locks.clear()
},
)

export function read(sessionID: string, file: string) {
log.info("read", { sessionID, file })
const { read } = state()
read[sessionID] = read[sessionID] || {}
read[sessionID][file] = new Date()
// Use the file's actual mtime when available so the assert() comparison
// is filesystem-time vs filesystem-time. Using new Date() caused false
// positives on Windows where NTFS mtime can lag behind JS clock.
const mtime = Filesystem.stat(file)?.mtime
read[sessionID][file] = mtime ?? new Date()
}

export function get(sessionID: string, file: string) {
Expand Down
Loading