Skip to content

chore(upstream): land the wizard consolidation and docs restructure together - #483

Merged
rynfar merged 19 commits into
pylonfrom
upstream/2026-09-11-integration-4
Sep 12, 2026
Merged

chore(upstream): land the wizard consolidation and docs restructure together#483
rynfar merged 19 commits into
pylonfrom
upstream/2026-09-11-integration-4

Conversation

@rynfar

@rynfar rynfar commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Lands two reviewed phase-2 PRs together so CI runs once on the combined code. #482's Antigravity guide describes #479's behavior, so the two belong together. Their exact reviewed heads are merged here unchanged; GitHub marks both merged when this lands.

PR Head merged here Scope
#479 9503961c4d2deaab9170c5195378726b24214c07 Setup wizards consolidated into shared components (upstream #10832). Provider setup links in model pickers, the status banner and the composer. The rest of #9348's Antigravity client port. The #9647 restart banner guard.
#482 50e57bc9c9473b50bd237e274198c216f8995c8a Docs restructure: upstream #9755 (internal guides) and #9756 (user guides), in Pylon's voice. #481's doc content carried over. Documentation guidance retained in the contribution reference.

Tracking issue #414, frozen upstream head 6c583620ff7ad3235b135af7107c0543467eecfa.

What this branch adds

  • Merge resolution at 2863392ce0: merged pylon 4fa8a96468. The only conflict was AGENTS.md; retain its compact Pylon version verbatim and move the upstream documentation rules into .agents/references/contributing.md. The ledger rows remain in merge order. Correct the stale resource-telemetry source comment link.
  • Adversarial merge review: both reviewed lane heads remain ancestors; no product-code conflict or dropped Prime changes. Inspected the auto-merged Prime architecture guide. The release workflow independently confirms https://app.pylon-code.com as its default hosted origin. Scoped formatting and staged whitespace checks pass. Fresh CI: https://github.com/pylon-code/pylon/actions/runs/34675475207 (passed on 2863392ce000a5f81f1bdfa53efa43b43d057e99; merged as 2bb2c523cff94823ef79228b7827d8f520a4bb10).

Verification on this branch

  • Web typecheck: 0 errors on the combined tree.
  • Relative links: 288 checked across docs/, AGENTS.md, CONTRIBUTING.md, README.md and .agents/. None are broken. The only non-matches are three example /tmp/... embed paths in docs/user/composer.md, which are illustrations rather than links.
  • Format check: clean on the 48 changed Markdown files.
  • Lockfile: vp i --frozen-lockfile passes.
  • Full suite: CI on this PR.
  • Review: each PR had an adversarial review with fixes. A focused second review of refactor(web): share one setup wizard and finish Antigravity setup from model pickers #479's fix commit 56fa56c557 found model-resolution defects, and 390eaab657 fixes them:
    • Disabled bound accounts keep the picker when a compatible account can take the thread.
    • "Continue on another account" falls back to the target's default model or reports an error.
    • With all models hidden, the account's own default is used instead of another account's or provider's model (a Pylon fix; upstream has the defect).
    • Antigravity no longer offers custom models in settings.
    • After a restart, an empty Antigravity catalog asks for a model refresh instead of a choice the user can't make (a Pylon fix).
    • Mobile Antigravity send blocks are not ported; the reason and revisit trigger are in the ledger row.
  • Verification after re-merging those heads: 377 web tests across the model selection, composer instance, handoff, provider settings, ChatView logic and draft store suites; web, mobile and client-runtime typechecks report 0 errors.

Initial integration by Claude Opus 5 in Claude Code. Final merge resolution and verification by GPT-6 in Codex.

juliusmarminge and others added 13 commits September 11, 2026 02:51
Welcome, Add provider, Publish repository, Pylon Connect and SnapShot
setup now share WizardPopup, WizardHeader, WizardSteps, WizardPanel and
WizardFooter. The duplicate ui/wizard-steps stepper from window capture
is removed.

Pylon adaptations kept: the Pylon mark and "Set up Pylon" title in the
welcome wizard, Pylon Connect copy, Add provider's multiple-instance
blocking and Prime guidance, Pylon SnapShots copy, useThreadShell and the
repository open-link error toast in GitActionsControl.

Adopted from 3faeee49ac67dfd9534369f1e1c627c0356b75ac (#10832)
…nner

A provider that needs setup (Antigravity, or any provider whose server
reports it can install or sign in) now offers "Open provider setup" in the
model picker, the provider status banner, and the composer's no-provider
button. The link opens Settings -> Providers on that device with the
instance selected, and says so when the device or instance is gone.

Pickers wired: composer, Settings -> Projects machine and project default
model, text generation model and source control writer model. Pylon keeps
its composer instance selection (it now reports the unavailable requested
instance), Prime's single-model message, locked continuation checks and
the explicit-unavailability banner.

Adopted from 06336460c9988f29c71e839c4c9c840c4552e077 (#9348) (provider setup link, route target and status messages only)
Adopted from 9f40b2f563c662b43887b11ff99c466fe871c1af (#9754) (project defaults picker hook-up)
…ind provider setup

Review follow-ups for the provider-setup link:

- The status banner stays hidden while Antigravity is installed but its
  saved Google sign-in is not checked yet (warning, auth unknown after a
  server restart), so it no longer invites a needless re-sign-in. Sends are
  allowed in that state; session startup checks the saved credentials.
- The model picker, trigger and composer model state resolve the internal
  antigravity-default marker to the account catalog's default model, never
  borrow another account's or a static model, and keep an unavailable saved
  Antigravity model visible. The composer blocks sends with the reason when
  Antigravity is not installed, signed out, has no model chosen, has not
  loaded its catalog, or the saved model left a ready catalog.
- Settings -> Providers refresh and the mobile model refresh ask the server
  to reload account model catalogs (refreshModels).
- A thread bound to a disabled instance now reports that instance and shows
  Open provider settings in place of the picker. Explicit unavailability
  keeps the picker so another provider can be chosen.
- A cold-opened provider setup link waits for the device list before saying
  the device is unavailable.

Adopted from 06336460c9988f29c71e839c4c9c840c4552e077 (#9348) (remaining web and mobile client pieces)
Adopted from d487dfbf46be344e818725be70ee04be2436bfb4 (#9647)
Rewrite docs/internals around decisions, cross-component constraints, and
implementation traps, move maintainer setup into operations runbooks, and add
documentation rules for each audience to AGENTS.md and CONTRIBUTING.md.

- Move the scripts, CI, and workspace-layout guidance into
  docs/operations/development.md, and Pylon Connect's Clerk, passkey, and
  mobile redirect setup into docs/operations/connect-setup.md.
- Fold the terminal renderer notes into the terminal runtime page. Drop the
  obsolete Connect auth-flow diagram and the work-artifacts page, which
  AGENTS.md already covers.
- Keep Pylon-only constraints. Prime Agent boundary rules move from
  providers.md into the daemon parity ledger; exact rollback, subscription
  capacity, turn admission, desktop startup isolation, and attachment cleanup
  stay in the internals pages.
- Correct stale facts found while rewriting: the hosted Connect callback
  origin, model manifest cache precedence, the Electron Clerk provider
  location, Antigravity support, and rollback availability.
- Append a durable fact replacing the runtime-home record's moved doc path.

Adopted from 2e688a53cf8fc7a9caa9fd5070148bfcd3d5a741 (#9755)
Rewrite docs/user around the major features, how to start them, and the
behavior that needs explanation, dropping descriptions of visible controls and
individual UI states.

- Merge the environment theme and mobile appearance pages into
  docs/user/appearance.md, with panel motion and environment artwork moved in
  from the threads page.
- Fold tool activity into Working with threads, and move background thread
  starts, project changes, and branch threads into its Start a thread section.
- Keep Pylon-only guidance: Prime Agent supervision and capacity, Claude
  account draining and cross-account continuation, usage hubs and custom
  prices, load balancing, WSL state migration, Pylon Connect, environment
  icons, and remote file actions.
- Point install at Pylon's download page instead of T3 Code's package
  registries, and the hosted web app at app.pylon-code.com.
- Describe the Antigravity setup links in the model picker, provider banner,
  and composer.
- Refresh the docs index and root README labels.

Adopted from 9e1fb459a985d13c1d4e57080f49d70dabf3b681 (#9756)
Keep #481's quit shortcut modes, thread-menu project settings, and the
environment-ID recovery file in the rewritten pages. Document the RPC
session's shared server-config stream against the new base, restore the
staged Electron package name, sidebar order and filter rules, POSIX path
case sensitivity, and the migrate-dev-db source flag, and describe #479's
Antigravity restart, refresh, and send-block behavior. Point AGENTS.md at
Pylon's hosted origin and correct the ledger row.
…ture' into upstream/2026-09-11-integration-4

# Conflicts:
#	.agents/upstream-review.md
@vercel

vercel Bot commented Sep 11, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
pylon-marketing Ready Ready Preview Sep 12, 2026 5:24am UTC

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

github-actions Bot commented Sep 11, 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.1 KiB 14.0 KiB −124 B (−0.9%) 15.1 KiB
Codex Thread snapshot wire 7.2 KiB 7.2 KiB −1 B (−0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.9 KiB 6.7 KiB −123 B (−1.8%) 7.8 KiB
Codex Live turn WebSocket decoded 58.8 KiB 58.0 KiB −866 B (−1.4%) 66.4 KiB
Codex Live turn messages 10 9 −1 (−10.0%) 21
Claude Total thread wire 14.0 KiB 14.1 KiB +44 B (+0.3%) 15.1 KiB
Claude Thread snapshot wire 7.2 KiB 7.2 KiB −2 B (−0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.8 KiB 6.9 KiB +46 B (+0.7%) 7.8 KiB
Claude Live turn WebSocket decoded 59.7 KiB 59.7 KiB +44 B (+0.1%) 66.4 KiB
Claude Live turn messages 9 10 +1 (+11.1%) 21

Baseline: 4fa8a96 · PR result: 2863392 · 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.

…r for continuation peers

Review follow-ups for the Antigravity client completion:

- A thread bound to a disabled instance keeps the model picker when an
  enabled, available continuation peer can take it; Open provider settings
  replaces the picker only when no such peer exists.
- When every listed model on an instance is hidden, model resolution stays
  on that instance's own default instead of letting a driver-level fallback
  pick another instance's model or provider. Antigravity still resolves to
  nothing outside its account catalog.
- Continue on another account falls back to the target account's default
  model and explains itself when the account reports no model.
- Antigravity instances no longer list or offer custom models in settings.
- With no Antigravity model chosen and no catalog loaded (for example after
  a restart), the composer asks for a model refresh instead of a choice the
  user cannot make.
- A cold-opened provider setup link resolves its target device through one
  tested helper that stays on loading until the device list is ready.

Adopted from 06336460c9988f29c71e839c4c9c840c4552e077 (#9348) (ProviderModelsSection and ProviderInstanceCard Antigravity guards)
…' into upstream/2026-09-11-integration-4

# Conflicts:
#	.agents/upstream-review.md
…ture' into upstream/2026-09-11-integration-4
@rynfar
rynfar merged commit 2bb2c52 into pylon Sep 12, 2026
20 checks passed
@rynfar
rynfar deleted the upstream/2026-09-11-integration-4 branch September 12, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 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.

2 participants