Three independently ugly bugs that all fed the same log flood:
* Electron's `WebFrameMain.send` writes every "Render frame was disposed"
to stderr via `console.error`. When the worker fans a second
agent-event past a reloading renderer, we produced thousands of
identical lines and stalled the main loop on stderr I/O. Added a
`mainFrame.detached` guard so the send is short-circuited before
Electron's own catch block fires, and installed a targeted filter in
`suppress-warnings.ts` (now actually imported from the entry point)
so the specific `console.error("Error sending from webFrameMain:"…)`
noise never reaches the terminal. Any other payload still surfaces.
* `dispatchAgentMessage` accepted the human-reader sentinel as a wake
target when an agent replied to `__board__` — `wakeAgentIfPossible`
then called `db.getAgent("__board__")`, threw, and the dispatcher
kept repeating on every send. Strip `HUMAN_SENDER_ID` at
`resolveMessageWakeTargets`, and keep a defense-in-depth guard in the
heartbeat so a stray caller (future automation fan-out) cannot
reintroduce the crash.
* Pi's skills loader rejects any SKILL.md whose frontmatter `name`
diverges from its parent directory. The four bundled `my-writing-style`
copies declared `name: writing-style-skill`, so every install emitted
a warning and dropped the skill. They also lived as orphan gitlinks
(mode 160000 without .gitmodules), and the global `*.md` gitignore
hid every other SKILL.md from version control. Fixed the frontmatter
to match the dir, converted the dangling submodules to plain trees,
and allowlisted `builtin-skills/**/*.md` so a fresh clone carries the
catalogue instead of silently losing it.
73 lines
2.3 KiB
Markdown
73 lines
2.3 KiB
Markdown
# OpenXML Unit Conversion Quick Reference
|
||
|
||
## Master Conversion Table
|
||
|
||
| Unit | 1 inch | 1 cm | 1 mm | 1 pt | Description |
|
||
|------|--------|------|------|------|-------------|
|
||
| DXA (twips) | 1440 | 567 | 56.7 | 20 | 1/20 of a point. Used for margins, indents, spacing, page size. |
|
||
| EMU | 914400 | 360000 | 36000 | 12700 | English Metric Unit. Used for images, drawings, shapes. |
|
||
| Half-points | 144 | 56.7 | 5.67 | 2 | Used for font sizes (`w:sz`, `w:szCs`). |
|
||
| Points | 72 | 28.35 | 2.835 | 1 | Standard typographic unit. Not used directly in most attributes. |
|
||
| Eighths of a point | 576 | 226.8 | 22.68 | 8 | Used for `w:spacing` character spacing. |
|
||
|
||
## Common Page Sizes
|
||
|
||
| Size | Width (DXA) | Height (DXA) | Width (mm) | Height (mm) |
|
||
|------|-------------|--------------|------------|-------------|
|
||
| A4 | 11906 | 16838 | 210 | 297 |
|
||
| Letter | 12240 | 15840 | 215.9 | 279.4 |
|
||
| Legal | 12240 | 20160 | 215.9 | 355.6 |
|
||
| A3 | 16838 | 23811 | 297 | 420 |
|
||
| A5 | 8391 | 11906 | 148 | 210 |
|
||
|
||
## Common Margin Values
|
||
|
||
| Margin | DXA | Inches | cm |
|
||
|--------|-----|--------|----|
|
||
| 0.5 inch | 720 | 0.5 | 1.27 |
|
||
| 0.75 inch | 1080 | 0.75 | 1.91 |
|
||
| 1 inch | 1440 | 1.0 | 2.54 |
|
||
| 1.25 inch | 1800 | 1.25 | 3.18 |
|
||
| 1.5 inch | 2160 | 1.5 | 3.81 |
|
||
|
||
## Font Size Values (`w:sz`)
|
||
|
||
| Display Size | w:sz value | Notes |
|
||
|-------------|-----------|-------|
|
||
| 8pt | 16 | |
|
||
| 9pt | 18 | |
|
||
| 10pt | 20 | |
|
||
| 10.5pt | 21 | Common CJK body size |
|
||
| 11pt | 22 | Default Calibri body |
|
||
| 12pt | 24 | Default TNR body |
|
||
| 14pt | 28 | Small heading |
|
||
| 16pt | 32 | |
|
||
| 18pt | 36 | |
|
||
| 20pt | 40 | |
|
||
| 24pt | 48 | |
|
||
| 28pt | 56 | |
|
||
| 36pt | 72 | |
|
||
|
||
## Line Spacing Values
|
||
|
||
Line spacing in `w:spacing` uses the `w:line` attribute in 240ths of a line (when `w:lineRule="auto"`):
|
||
|
||
| Spacing | w:line value | w:lineRule |
|
||
|---------|-------------|-----------|
|
||
| Single | 240 | auto |
|
||
| 1.15 (Word default) | 276 | auto |
|
||
| 1.5 | 360 | auto |
|
||
| Double | 480 | auto |
|
||
| Exact 12pt | 240 | exact |
|
||
| At least 12pt | 240 | atLeast |
|
||
|
||
Note: When `lineRule="exact"` or `"atLeast"`, `w:line` is in **twips** (DXA), not 240ths. So `line="240"` with `lineRule="exact"` means exactly 12pt (240/20 = 12pt).
|
||
|
||
## Conversion Formulas
|
||
|
||
```
|
||
DXA = inches × 1440 = cm × 567 = pt × 20
|
||
EMU = inches × 914400 = cm × 360000 = pt × 12700
|
||
sz = pt × 2 (half-points)
|
||
```
|