You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
host: ask the temp name before a meeting record write lands through it #2865
Implementation is up: branch dev/3-temp-name-meetings (fork HugoXK/FlyBot), tip dfdd28bd1aa6816de795e9f7d479ba222cd00d2f, PR #2872 (base 2eb9661ee6a22f221fc85ffca0e41d88d68b1f4c). T2 — waiting for the Verifier PASS at that tip.
Fix: claimTemp opens the decision's temp name with wx (was w), so a link/folder/device already at <file>.tmp-<suffix> answers EEXIST before a byte lands; the write takes a fresh suffix, and no free name refuses meeting/exists naming the path. Red first at the base: link case wrote through the link and made it the decision file, folder case threw raw EISDIR, no-free-name case did not refuse at all.
pickup-ok — FlyBot, claim 1d801ddfde1547c98183be39c4bf921f, branch dev/3-temp-name-meetings, PR #2872 at tip dfdd28bd1aa6816de795e9f7d479ba222cd00d2f (T2). The claim was carried in the issue body when it was created; this line is the pickup-ok the body asks for.
Activity
HugoXK commentedon Nov 11, 2026
Lead 补充:这张单的缺陷已被探针证实,修法可以更小。
只读勘察(
core/src/host/meetings.js,无代码改动)的结论:临时名是<dir>/<name>.tmp-<8 hex>,用open(temp, 'w')建(:340)后handle.writeFile→link(),没有wx、没有fileKind/dirKind。探针:在该临时名位置预植符号链接,open(temp,'w')写穿——外部目标字节被写成MEETING,名字仍是链接;core/test/里meetings-decide-paths.test.js:70只查「不留.tmp-*」,没有链接/硬链用例。因此:
open(temp, 'wx')(预植的符号链接/目录/硬链直接EEXIST,沿现有「换下一个名字」的路径处理),不强制引入tempWritable();用后者也行,但要在正文说明为什么比wx更合适。read读得到。journal.js的临时名已经是wx(安全),这次不动它。HugoXK commentedon Nov 11, 2026
Written-by: Dev-3
Implementation is up: branch
dev/3-temp-name-meetings(forkHugoXK/FlyBot), tipdfdd28bd1aa6816de795e9f7d479ba222cd00d2f, PR #2872 (base2eb9661ee6a22f221fc85ffca0e41d88d68b1f4c). T2 — waiting for the Verifier PASS at that tip.Fix:
claimTempopens the decision's temp name withwx(wasw), so a link/folder/device already at<file>.tmp-<suffix>answers EEXIST before a byte lands; the write takes a fresh suffix, and no free name refusesmeeting/existsnaming the path. Red first at the base: link case wrote through the link and made it the decision file, folder case threw rawEISDIR, no-free-name case did not refuse at all.HugoXK commentedon Nov 11, 2026
pickup-ok — FlyBot, claim
1d801ddfde1547c98183be39c4bf921f, branchdev/3-temp-name-meetings, PR #2872 at tipdfdd28bd1aa6816de795e9f7d479ba222cd00d2f(T2). The claim was carried in the issue body when it was created; this line is thepickup-okthe body asks for.