Skip to content

feat(projects): support custom project monograms - #835

Draft
rynfar wants to merge 1 commit into
pylonfrom
feat/project-custom-monograms-20260924
Draft

rynfar wants to merge 1 commit into
pylonfrom
feat/project-custom-monograms-20260924

Conversation

@rynfar

@rynfar rynfar commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Project icons can use a chosen one- or two-character monogram while Pylon's automatic title-based fallback stays unchanged. The project settings picker offers this option only when every environment in the group advertises support, so an older server cannot silently store a folder icon instead.

The contract encodes the new variant as the legacy folder-code Lucide wire form with a separate monogramText hint. The server validates grapheme count at the command boundary, and both the event log and project projection round-trip the compatible representation. Web/desktop render the chosen monogram; all six current mobile project-icon callers now pass saved overrides and render chosen monograms and emoji. Mobile still displays a generic icon for arbitrary saved Lucide names because its native symbol set has no dynamic Lucide renderer. Invalid persisted hints fall back to the Lucide icon. The existing Pylon automatic color/monogram behavior is preserved.

Upstream sources reviewed: 438465d6b7dd2e50dd38862a0db1252d2d72ecfc, 6f7aaffe26f0e6ae3d47b0ae512b322f890e0f43, and 7a368fe7c45a45c284f1b064e440a2d696452b07. The optional general Hermes lint-rule expansion 37a8ab2b29dfa33b4e20ad709a9860f0da7b7eb2 is separate. Tracking: #736. The upstream SVG menu alignment source remains a separate visual candidate.

Validation: 120 focused contract/decider/projection/picker tests; scoped contracts, server, web, and mobile typechecks; scoped lint and formatting; diff check. Independent review passed on the exact head. Browser and device appearance are unverified; no UI images are available from this environment's approved scope.

Implemented with GPT-6 Sol via the Pylon Codex harness.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@vercel

vercel Bot commented Sep 24, 2026

Copy link
Copy Markdown

Deployment failed for project pylon-marketing with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/pylon-code?upgradeToPro=build-rate-limit

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Sep 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 14.0 KiB −16 B (−0.1%) 15.1 KiB ✅
Codex Thread snapshot wire 7.2 KiB 7.2 KiB +3 B (+0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.8 KiB 6.7 KiB −19 B (−0.3%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB −44 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 9 −1 (−10.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB +11 B (+0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.2 KiB 7.2 KiB −11 B (−0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.7 KiB 6.8 KiB +22 B (+0.3%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 10 10 0 (0.0%) 21 ✅

Baseline: 7ed3f71 · PR result: bbe77fe · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 115.6 KiB
  • Claude decoded thread snapshot: 116.3 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant