| 1 | # Oficina icon integration — 2026-09-12 |
| 2 | |
| 3 | The approved set is wired into browser favicons (SVG and PNG), Apple touch |
| 4 | icons and visible app branding for Oficina Home, Docs, Sheets, Slides, |
| 5 | Calendar, Calls and Memoria. Home's six app rows have the matching icons; |
| 6 | Mail and Files keep their existing entries because no artwork was approved |
| 7 | for them. Product names remain visible and the adjacent images have empty |
| 8 | alt text. All assets are served locally, without JavaScript or a CDN. |
| 9 | |
| 10 | ## Source and branches |
| 11 | |
| 12 | The maintained source is Estilo's `brand/` directory. Its `distribute.py` |
| 13 | copies artwork, shared CSS and the license into each application and |
| 14 | supports `--check` to detect drift. This is asset distribution, with no |
| 15 | new Go module dependency or application build step. |
| 16 | |
| 17 | All seven sibling icon branches passed remote CI and independent source and |
| 18 | canary review, then merged into main on 2026-09-12: |
| 19 | |
| 20 | | Repository | Merge commit | |
| 21 | | --- | --- | |
| 22 | | estilo | 35e3bf4 | |
| 23 | | home | f1caf3a | |
| 24 | | docs | d5ff04e | |
| 25 | | sheets | fa8b940 | |
| 26 | | slides | 2ebd8f6 | |
| 27 | | calendar | 9c44bc1 | |
| 28 | | memoria | aab25c0 | |
| 29 | |
| 30 | Production rollout uses those merged sources. Home's canonical domain still |
| 31 | uses its legacy page; the signed-in app listing is present on the paired Home |
| 32 | preview deployment. Changing Home's identity/directory topology is separate |
| 33 | from deploying these assets. |
| 34 | |
| 35 | Calls' icons ship with `codex/iphone-and-mirrored-preview`, including the Mac |
| 36 | Dock/Finder resources, iPhone asset catalog and packaged Lucide licenses. |
| 37 | The Mac and signed iPhone builds are installed locally. See |
| 38 | `native/VERIFICATION.md` for native test coverage and acceptance limits. |
| 39 | |
| 40 | ## Verification |
| 41 | |
| 42 | - Asset distributor `--check` passes for all seven consumers. |
| 43 | - Actual server-rendered HTML and served asset bytes were captured from |
| 44 | test fixtures and rendered in Chromium at 1280 and 320 px with JavaScript |
| 45 | disabled. All branding images loaded, with no horizontal overflow or |
| 46 | missing requests. These are local visual checks, not deployed-canary |
| 47 | acceptance. Evidence: `/private/tmp/oficina-icons-evidence/<app>/`. |
| 48 | - Calls, Calendar, Slides and Memoria `make ci` passed; Estilo `make test` |
| 49 | passed. Calls and Calendar's real-browser gates passed. |
| 50 | - Docs' Go packages passed after adjusting the existing label test for the |
| 51 | decorative image. Its release test needs GNU realpath on PATH and a short |
| 52 | TMPDIR for macOS Unix-socket limits; it passed with both supplied. |
| 53 | - Sheets' default gate initially used an incompatible installed migration |
| 54 | CLI. The app-pinned v0.23.0 CLI confirms its schema is unchanged; Go and |
| 55 | race tests passed with the correct CLI supplied. |
| 56 | - Home's vet/build/Go tests and applicable race tests passed. Its full |
| 57 | `make test` hits a pre-existing macOS limitation: the race target names |
| 58 | `internal/provisioner`, whose sources are Linux-only. |
| 59 | - Independent review: inherited GPT-6 Astra. The reviewer identified Mac |
| 60 | bundle/Finder resources and native license packaging; all findings were |
| 61 | corrected and re-reviewed with no remaining concrete source defects. |
| 62 | - Reviewer-selected Home test mutations (wrong SVG MIME and removal of the |
| 63 | directory's asset mount) both failed as intended and were restored. |
| 64 | - Mac app builds and its signature, icon files, metadata and license verify. |
| 65 | The iOS 26.5 platform was installed, and the signed device build and simulator |
| 66 | authentication/media tests pass. |
| 67 | - Docs and Slides' full local Rust/JS gates cannot start without rustup and |
| 68 | the wasm target. Their pushed branches run the full gates in remote CI. |
| 69 | |
| 70 | All seven remote branch CI runs passed before merge. Deployed canaries reported |
| 71 | the expected process versions and served byte-identical artwork. |
| 72 | |