Skip to content

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

Merged
rynfar merged 4 commits into
pylonfrom
feat/project-custom-monograms-20260924
Sep 27, 2026
Merged

rynfar merged 4 commits into
pylonfrom
feat/project-custom-monograms-20260924

Conversation

@rynfar

@rynfar rynfar commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Projects can use a chosen one- or two-character monogram while Pylon's automatic title-based icon remains available. The picker offers this option only when every environment in the project group supports it, so an older server cannot silently store a different icon.

The contract encodes monograms in the legacy folder-code Lucide wire form with a monogramText hint. The server validates grapheme count at the command boundary, and events and projections preserve the compatible representation. Web/desktop render the chosen icon. Mobile's six project-icon surfaces now render chosen monograms and emoji with the selected color; arbitrary Lucide names still use the existing generic mobile fallback because the native symbol set has no dynamic Lucide renderer. Invalid stored hints fall back to Lucide. Resetting the icon restores automatic selection.

Upstream sources reviewed: 438465d6b7dd2e50dd38862a0db1252d2d72ecfc, 6f7aaffe26f0e6ae3d47b0ae512b322f890e0f43, and 7a368fe7c45a45c284f1b064e440a2d696452b07. The optional Hermes lint-rule expansion 37a8ab2b29dfa33b4e20ad709a9860f0da7b7eb2 and SVG menu alignment are separate candidates. Tracking: #736.

Validation: 4 focused suites / 122 tests; scoped contracts, server, web and mobile typechecks; scoped lint and format; diff check. Independent GPT-6 Sol adversarial review found the mobile tint issue, which was fixed and rechecked. In an isolated browser, I set Å7 in violet, confirmed it in project settings, then reset to automatic. An isolated iPhone 17 Simulator showed the icon in the project chooser and updated back to a folder immediately on reset. Android tooling is unavailable on this host.

Web before (automatic):
Automatic project icon

Web after (custom):
Custom project monogram

iOS before (automatic):
iOS automatic project icon

iOS after (custom):
iOS custom project monogram

Implemented with GPT-6 Sol via the Pylon Codex harness; reconciled and reviewed with GPT-6 Codex.

@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

github-actions Bot commented Sep 24, 2026 •

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 13.9 KiB −94 B (−0.7%) 15.1 KiB ✅
Codex Thread snapshot wire 7.3 KiB 7.3 KiB −4 B (−0.1%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.8 KiB 6.7 KiB −90 B (−1.3%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB −88 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 8 −2 (−20.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB +9 B (+0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.3 KiB 7.3 KiB +4 B (+0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.8 KiB 6.8 KiB +5 B (+0.1%) 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 9 9 0 (0.0%) 21 ✅

Baseline: dfe598d · PR result: 3d04ec3 · 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.7 KiB
  • Claude decoded thread snapshot: 116.4 KiB

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

…monograms-20260924

# Conflicts:
#	apps/server/src/environment/ServerEnvironment.ts
#	packages/contracts/src/environment.ts
@vercel

vercel Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
pylon-marketing Ignored Ignored Preview Sep 27, 2026 12:30am UTC

@rynfar
rynfar marked this pull request as ready for review September 27, 2026 00:45
@rynfar
rynfar merged commit 1ced84c into pylon Sep 27, 2026
20 checks passed
@rynfar
rynfar deleted the feat/project-custom-monograms-20260924 branch September 27, 2026 00:45
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