A small follow-up correction to the pack_lines code above:
After further testing in the classic Windows console, we found that a double-width CJK glyph beginning immediately after a one-cell left inset can sometimes be repainted with a doubled or ghosted first character. This affected footer rows beginning with labels such as 已选 and 上/下.
The balancing logic is still valid, but the footer should consistently reserve two plain cells on the left:
let left_w = 2usize;
Use that value in both new-row width assignments:
cw = left_w + n;
and in the orphan-balancing calculation:
let last_w =
left_w + span_w(candidate) + sep_w + span_w(&rows[last][0]);
Finally, render the same two-cell inset:
let mut spans = vec![Span::raw(" ")];
It is important that the packing calculations and the rendered prefix use the same inset. We also added a Chinese picker regression test that verifies both blank cells before a footer’s first wide glyph.
One additional hardware follow-up: the user whose CPU appeared to fail has managed to revive it—with what he jokingly calls a little necromancy. After repeated troubleshooting, he traced the instability to a suspected defective core on CCD1. Disabling the affected core or core group brought the 12-core processor back in a roughly 10-core configuration.
That machine had already suffered frequent crashes long before GoblinScript and had reportedly spent years running above 1.41 V. Given that history, the evidence now points much more strongly to a pre-existing unstable or degraded processor than to GoblinScript itself.
I would suggest a general warning that users who already know their processor is unstable, degraded, or unusually voltage-dependent should avoid leaving it under sustained heavy load for long periods.
I also have one suggestion concerning the manual crop-confirmation page added in v0.3.6—the option exposed as K in the picker. After spending more time with the automatic cropper, its results have generally been very good. I would recommend keeping manual crop confirmation disabled by default, since most batches should not be interrupted when the automatic result is already suitable. Users who want to inspect or adjust every crop could still enable it explicitly when needed.
On a separate positive note, we have now spent more time testing the GPU optimizations in v0.3.6, and the performance has been excellent. The improvement is very noticeable in real use, and our little goblin den is extremely happy with how well this version runs.
Thank you again for the great work!