Commit 22149e6
committed
fix: 'Save screenshot' failed with "Failed to save screenshot" - defaulted to an unwritable cwd
Real bug reported via live testing: the Command Palette's screenshot
command (re-enabled in the previous release) failed with a bare
"Failed to save screenshot" error every time inside the companion
container. Root cause confirmed directly: Textual's own default
implementation saves to the current working directory, and the
container's WORKDIR (/app) is root-owned while the container runs as
a non-root user - os.access('/app', os.W_OK) confirmed False inside a
real running container, os.access(home, os.W_OK) confirmed True.
Replaced Textual's own auto-generated 'Save screenshot' command with
our own, same title, calling deliver_screenshot(path=str(Path.home()))
explicitly instead of leaving it to default to cwd - home directory
always exists and is always writable by whoever's running this tool,
and is already where this tool keeps its own state (state.py).
Verified the fix directly inside a real built container image, not
just reasoned about: confirmed cwd genuinely unwritable there, screenshot
save now succeeds where it previously failed with the exact reported
error.
243 tests passing (2 new: confirms the replacement command passes the
home-directory path, confirms a failure is reported without crashing
rather than left silent); verified sdist->wheel build. Version bumped
to 0.1.21 for release.1 parent a4d8822 commit 22149e6
4 files changed
Lines changed: 78 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
205 | 205 | | |
206 | 206 | | |
207 | 207 | | |
208 | | - | |
| 208 | + | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
995 | 995 | | |
996 | 996 | | |
997 | 997 | | |
998 | | - | |
999 | | - | |
1000 | | - | |
1001 | | - | |
1002 | | - | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
1006 | | - | |
1007 | | - | |
1008 | | - | |
1009 | | - | |
1010 | | - | |
1011 | | - | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
1012 | 1010 | | |
1013 | | - | |
| 1011 | + | |
1014 | 1012 | | |
| 1013 | + | |
1015 | 1014 | | |
1016 | 1015 | | |
1017 | 1016 | | |
| |||
1084 | 1083 | | |
1085 | 1084 | | |
1086 | 1085 | | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
1087 | 1109 | | |
1088 | 1110 | | |
1089 | 1111 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
318 | | - | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
319 | 321 | | |
320 | 322 | | |
321 | 323 | | |
322 | 324 | | |
323 | 325 | | |
324 | 326 | | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
325 | 363 | | |
326 | 364 | | |
327 | 365 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
0 commit comments