[{"data":1,"prerenderedAt":5023},["ShallowReactive",2],{"cycle-doc-design-c139-prior-art.md":3},{"cycle":4,"project":7,"path":10,"title":11,"toc":12,"ast":30},{"id":5,"title":6},"c139","Updates",{"id":8,"label":9},"design","Design","prior-art.md","c139 Phase 0: prior art",[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"1. Zed","2. VS Code","3. Firefox","4. 1Password","5. Slack","6. The Claude desktop app","7. Raycast","8. VS Code Insiders","9. Chrome's channels","10. TestFlight","11. Staged percentages: Sparkle, the App Store, Google Play","12. Early access in B2B: Slack's desktop beta and Microsoft 365 Frontier","What the reading says about our model","What we copy","What we refuse","Open questions, each with a default","Sources (all read 2026-11-11)",{"type":31,"children":32},"root",[33,61,113,120,126,136,288,296,465,473,506,514,547,552,561,749,756,869,876,919,926,949,954,963,1108,1115,1222,1229,1272,1279,1292,1297,1306,1423,1430,1513,1520,1553,1560,1583,1588,1597,1720,1727,1765,1772,1795,1802,1815,1820,1829,1960,1967,2083,2090,2113,2120,2153,2158,2167,2284,2291,2334,2341,2364,2371,2382,2388,2393,2402,2509,2516,2549,2565,2580,2585,2594,2695,2702,2760,2767,2800,2807,2820,2825,2834,2927,2934,2982,2989,3035,3042,3065,3070,3079,3249,3256,3370,3377,3450,3457,3480,3485,3494,3628,3635,3678,3685,3718,3725,3738,3744,3749,3754,3944,3954,3962,4036,4041,4221,4226,4357,4362,4367,4671,4676,4681,4691],{"type":34,"tag":35,"props":36,"children":37},"element","p",{},[38,45,47,59],{"type":34,"tag":39,"props":40,"children":41},"strong",{},[42],{"type":43,"value":44},"text","Use this file to",{"type":43,"value":46}," check the update model in ",{"type":34,"tag":48,"props":49,"children":51},"a",{"href":50},"\u002Fcycles\u002Fdesign\u002Fc139\u002Fdoc\u002Fplan",[52],{"type":34,"tag":53,"props":54,"children":56},"code",{"className":55},[],[57],{"type":43,"value":58},"plan.md",{"type":43,"value":60}," (its states, three-value preference, trace and two eras) against how twelve others show and stage updates. Part A covers seven desktop apps' update settings: Zed, VS Code, Firefox, 1Password, Slack, the Claude desktop app and Raycast, each in the same eight rows. Part B covers five ways of giving some people a build before everyone: VS Code Insiders, Chrome's channels, TestFlight, staged percentages (Sparkle, the App Store, Google Play) and B2B early access (Slack's beta, Microsoft 365 Frontier), each in the same six rows. Every section ends with what we copy and what we refuse, in the plan's terms: rules R1 to R7, decisions D1 to D12 and dependencies T1 to T6. The last four sections test the model, list what we copy and refuse, and give each open question a default.",{"type":34,"tag":35,"props":62,"children":63},{},[64,66,72,74,80,82,88,90,94,101,103,106,112],{"type":43,"value":65},"Every source was read on 2026-11-11. This session reached GitHub, developer.apple.com, developer.android.com, support.claude.com and code.claude.com. So Zed, VS Code, Firefox, Chromium and Sparkle are quoted from their own repositories (exact UI strings, ",{"type":34,"tag":53,"props":67,"children":69},{"className":68},[],[70],{"type":43,"value":71},"main",{"type":43,"value":73}," as of today), and Apple, Android and Anthropic from their pages. Other vendor hosts were blocked; claims from them rest on search excerpts and are marked \"(search excerpt)\". Zed's updater internals are in ",{"type":34,"tag":48,"props":75,"children":77},{"href":76},"\u002Fcycles\u002Fdesign\u002Fc130\u002Fdoc\u002Fresearch\u002Fplatform",[78],{"type":43,"value":79},"c130 platform §5",{"type":43,"value":81}," and are not repeated. Linear, Arc and Figma were too thin for a table. Linear's app turns off updates only with a ",{"type":34,"tag":53,"props":83,"children":85},{"className":84},[],[86],{"type":43,"value":87},"defaults write … AutoUpdateDisabled",{"type":43,"value":89}," key; Figma shows an in-app message when behind and ships a separate \"Figma Beta\" app; nothing citable was found for Arc. Firefox takes the seventh slot.",{"type":34,"tag":91,"props":92,"children":93},"br",{},[],{"type":34,"tag":48,"props":95,"children":99},{"href":96,"rel":97},"https:\u002F\u002Flinear.app\u002Fdocs\u002Fget-the-app.md",[98],"nofollow",[100],{"type":43,"value":96},{"type":43,"value":102}," (search excerpt, 2026-11-11)",{"type":34,"tag":91,"props":104,"children":105},{},[],{"type":34,"tag":48,"props":107,"children":110},{"href":108,"rel":109},"https:\u002F\u002Fhelp.figma.com\u002Fhc\u002Fen-us\u002Farticles\u002F4406787442711-Beta-features",[98],[111],{"type":43,"value":108},{"type":43,"value":102},{"type":34,"tag":114,"props":115,"children":117},"h1",{"id":116},"part-a-desktop-apps-update-settings",[118],{"type":43,"value":119},"Part A. Desktop apps' update settings",{"type":34,"tag":121,"props":122,"children":124},"h2",{"id":123},"_1-zed",[125],{"type":43,"value":13},{"type":34,"tag":35,"props":127,"children":128},{},[129,134],{"type":34,"tag":39,"props":130,"children":131},{},[132],{"type":43,"value":133},"What it is.",{"type":43,"value":135}," An editor built on GPUI, qnative's toolkit, so its updater is the nearest code to ours. The update lives in a title-bar button whose label is the state, a menu item, and one setting.",{"type":34,"tag":137,"props":138,"children":139},"table",{},[140,159],{"type":34,"tag":141,"props":142,"children":143},"thead",{},[144],{"type":34,"tag":145,"props":146,"children":147},"tr",{},[148,154],{"type":34,"tag":149,"props":150,"children":151},"th",{},[152],{"type":43,"value":153},"Update model",{"type":34,"tag":149,"props":155,"children":156},{},[157],{"type":43,"value":158},"Zed",{"type":34,"tag":160,"props":161,"children":162},"tbody",{},[163,177,190,203,230,243,256,269],{"type":34,"tag":145,"props":164,"children":165},{},[166,172],{"type":34,"tag":167,"props":168,"children":169},"td",{},[170],{"type":43,"value":171},"Where it lives",{"type":34,"tag":167,"props":173,"children":174},{},[175],{"type":43,"value":176},"A title-bar button shown with the state; \"Check for Updates\" in the app menu; \"Restart to update Zed\" in the user menu. No Settings pane.",{"type":34,"tag":145,"props":178,"children":179},{},[180,185],{"type":34,"tag":167,"props":181,"children":182},{},[183],{"type":43,"value":184},"Versions shown",{"type":34,"tag":167,"props":186,"children":187},{},[188],{"type":43,"value":189},"The new version in the tooltip; \"Updated to Zed 1.3.0\" afterwards. No commit or date.",{"type":34,"tag":145,"props":191,"children":192},{},[193,198],{"type":34,"tag":167,"props":194,"children":195},{},[196],{"type":43,"value":197},"Channel",{"type":34,"tag":167,"props":199,"children":200},{},[201],{"type":43,"value":202},"Stable, Preview (a week ahead), Nightly: separate apps with separate data.",{"type":34,"tag":145,"props":204,"children":205},{},[206,211],{"type":34,"tag":167,"props":207,"children":208},{},[209],{"type":43,"value":210},"Preference",{"type":34,"tag":167,"props":212,"children":213},{},[214,220,222,228],{"type":34,"tag":53,"props":215,"children":217},{"className":216},[],[218],{"type":43,"value":219},"auto_update",{"type":43,"value":221},", default ",{"type":34,"tag":53,"props":223,"children":225},{"className":224},[],[226],{"type":43,"value":227},"true",{"type":43,"value":229},". On or off.",{"type":34,"tag":145,"props":231,"children":232},{},[233,238],{"type":34,"tag":167,"props":234,"children":235},{},[236],{"type":43,"value":237},"Release notes",{"type":34,"tag":167,"props":239,"children":240},{},[241],{"type":43,"value":242},"A page per version and channel; Nightly links to the commit list; a local Markdown view. The PR author writes each line.",{"type":34,"tag":145,"props":244,"children":245},{},[246,251],{"type":34,"tag":167,"props":247,"children":248},{},[249],{"type":43,"value":250},"Restart prompt",{"type":34,"tag":167,"props":252,"children":253},{},[254],{"type":43,"value":255},"The button reads \"Restart to Update\". No dialog, no deadline.",{"type":34,"tag":145,"props":257,"children":258},{},[259,264],{"type":34,"tag":167,"props":260,"children":261},{},[262],{"type":43,"value":263},"Silent behaviour",{"type":34,"tag":167,"props":265,"children":266},{},[267],{"type":43,"value":268},"Hourly check (15 minutes on Nightly), install in place, one toast on next launch with \"View Release Notes\".",{"type":34,"tag":145,"props":270,"children":271},{},[272,277],{"type":34,"tag":167,"props":273,"children":274},{},[275],{"type":43,"value":276},"Managed elsewhere",{"type":34,"tag":167,"props":278,"children":279},{},[280,286],{"type":34,"tag":53,"props":281,"children":283},{"className":282},[],[284],{"type":43,"value":285},"ZED_UPDATE_EXPLANATION",{"type":43,"value":287}," stops the checks; Check then says \"Zed was installed via a package manager.\" with the explanation.",{"type":34,"tag":35,"props":289,"children":290},{},[291],{"type":34,"tag":39,"props":292,"children":293},{},[294],{"type":43,"value":295},"The facts behind the table.",{"type":34,"tag":297,"props":298,"children":299},"ul",{},[300,327,400,415,440],{"type":34,"tag":301,"props":302,"children":303},"li",{},[304,306,309,315,317,320,326],{"type":43,"value":305},"The button's labels: \"Checking for Zed Updates…\", \"Downloading Zed Update…\", \"Installing Zed Update…\", \"Up to Date\", \"Restart to Update\", \"Failed to Update\"; the tooltip, \"Update to Version: {version}\".",{"type":34,"tag":91,"props":307,"children":308},{},[],{"type":34,"tag":48,"props":310,"children":313},{"href":311,"rel":312},"https:\u002F\u002Fraw.githubusercontent.com\u002Fzed-industries\u002Fzed\u002Fmain\u002Fcrates\u002Fui\u002Fsrc\u002Fcomponents\u002Fcollab\u002Fupdate_button.rs",[98],[314],{"type":43,"value":311},{"type":43,"value":316}," (read 2026-11-11)",{"type":34,"tag":91,"props":318,"children":319},{},[],{"type":34,"tag":48,"props":321,"children":324},{"href":322,"rel":323},"https:\u002F\u002Fraw.githubusercontent.com\u002Fzed-industries\u002Fzed\u002Fmain\u002Fcrates\u002Ftitle_bar\u002Fsrc\u002Ftitle_bar.rs",[98],[325],{"type":43,"value":322},{"type":43,"value":316},{"type":34,"tag":301,"props":328,"children":329},{},[330,332,338,340,346,348,354,356,362,364,370,372,378,380,383,389,390,393,399],{"type":43,"value":331},"The poll is ",{"type":34,"tag":53,"props":333,"children":335},{"className":334},[],[336],{"type":43,"value":337},"60 * 60",{"type":43,"value":339}," seconds, or ",{"type":34,"tag":53,"props":341,"children":343},{"className":342},[],[344],{"type":43,"value":345},"15 * 60",{"type":43,"value":347}," on Nightly. With telemetry on, the asset query also carries the metrics id, system id and ",{"type":34,"tag":53,"props":349,"children":351},{"className":350},[],[352],{"type":43,"value":353},"is_staff",{"type":43,"value":355},". The notes URL is ",{"type":34,"tag":53,"props":357,"children":359},{"className":358},[],[360],{"type":43,"value":361},"\u002Freleases\u002F{channel}\u002F{version}",{"type":43,"value":363}," for Stable and Preview, and ",{"type":34,"tag":53,"props":365,"children":367},{"className":366},[],[368],{"type":43,"value":369},"github.com\u002Fzed-industries\u002Fzed\u002Fcommits\u002Fnightly\u002F",{"type":43,"value":371}," for Nightly. On reaching ",{"type":34,"tag":53,"props":373,"children":375},{"className":374},[],[376],{"type":43,"value":377},"Updated",{"type":43,"value":379},", Zed sets a flag; the next launch shows \"Updated to {app_name} {version}\" with \"View Release Notes\".",{"type":34,"tag":91,"props":381,"children":382},{},[],{"type":34,"tag":48,"props":384,"children":387},{"href":385,"rel":386},"https:\u002F\u002Fraw.githubusercontent.com\u002Fzed-industries\u002Fzed\u002Fmain\u002Fcrates\u002Fauto_update\u002Fsrc\u002Fauto_update.rs",[98],[388],{"type":43,"value":385},{"type":43,"value":316},{"type":34,"tag":91,"props":391,"children":392},{},[],{"type":34,"tag":48,"props":394,"children":397},{"href":395,"rel":396},"https:\u002F\u002Fraw.githubusercontent.com\u002Fzed-industries\u002Fzed\u002Fmain\u002Fcrates\u002Fauto_update_ui\u002Fsrc\u002Fauto_update_ui.rs",[98],[398],{"type":43,"value":395},{"type":43,"value":316},{"type":34,"tag":301,"props":401,"children":402},{},[403,405,408,414],{"type":43,"value":404},"The setting's comment: \"Automatically update Zed. This setting may be ignored on Linux if installed through a package manager.\"",{"type":34,"tag":91,"props":406,"children":407},{},[],{"type":34,"tag":48,"props":409,"children":412},{"href":410,"rel":411},"https:\u002F\u002Fraw.githubusercontent.com\u002Fzed-industries\u002Fzed\u002Fmain\u002Fassets\u002Fsettings\u002Fdefault.json",[98],[413],{"type":43,"value":410},{"type":43,"value":316},{"type":34,"tag":301,"props":416,"children":417},{},[418,420,423,428,429,432,438],{"type":43,"value":419},"With the explanation set, Check opens \"Zed was installed via a package manager.\" with the explanation as detail and one \"OK\". Nix sets it to \"Zed has been installed using Nix. Auto-updates have thus been disabled.\"",{"type":34,"tag":91,"props":421,"children":422},{},[],{"type":34,"tag":48,"props":424,"children":426},{"href":385,"rel":425},[98],[427],{"type":43,"value":385},{"type":43,"value":316},{"type":34,"tag":91,"props":430,"children":431},{},[],{"type":34,"tag":48,"props":433,"children":436},{"href":434,"rel":435},"https:\u002F\u002Fgithub.com\u002Fzed-industries\u002Fzed\u002Fblob\u002Fmain\u002Fnix\u002Fbuild.nix",[98],[437],{"type":43,"value":434},{"type":43,"value":439}," (read 2026-11-11, via code search)",{"type":34,"tag":301,"props":441,"children":442},{},[443,445,448,454,455,458,464],{"type":43,"value":444},"Every PR ends in \"Release Notes:\" with \"- N\u002FA or Added\u002FFixed\u002FImproved …\". Preview is weekly and promoted to Stable; each channel has its own database.",{"type":34,"tag":91,"props":446,"children":447},{},[],{"type":34,"tag":48,"props":449,"children":452},{"href":450,"rel":451},"https:\u002F\u002Fraw.githubusercontent.com\u002Fzed-industries\u002Fzed\u002Fmain\u002F.github\u002Fpull_request_template.md",[98],[453],{"type":43,"value":450},{"type":43,"value":316},{"type":34,"tag":91,"props":456,"children":457},{},[],{"type":34,"tag":48,"props":459,"children":462},{"href":460,"rel":461},"https:\u002F\u002Fzed.dev\u002Fdocs\u002Fdevelopment\u002Freleases",[98],[463],{"type":43,"value":460},{"type":43,"value":102},{"type":34,"tag":35,"props":466,"children":467},{},[468],{"type":34,"tag":39,"props":469,"children":470},{},[471],{"type":43,"value":472},"Copy.",{"type":34,"tag":297,"props":474,"children":475},{},[476,486,496],{"type":34,"tag":301,"props":477,"children":478},{},[479,484],{"type":34,"tag":39,"props":480,"children":481},{},[482],{"type":43,"value":483},"The label is the state",{"type":43,"value":485}," (R4). The six labels map onto our states, in the tray line and the footer.",{"type":34,"tag":301,"props":487,"children":488},{},[489,494],{"type":34,"tag":39,"props":490,"children":491},{},[492],{"type":43,"value":493},"The packager's sentence, verbatim",{"type":43,"value":495}," (T5). One string set at build or run time covers Homebrew, Nix or MDM with no code change.",{"type":34,"tag":301,"props":497,"children":498},{},[499,504],{"type":34,"tag":39,"props":500,"children":501},{},[502],{"type":43,"value":503},"Notes that follow the channel, written at the change",{"type":43,"value":505}," (D6, D7): a page for a release, the commit trail for a nightly, the line drafted in the PR.",{"type":34,"tag":35,"props":507,"children":508},{},[509],{"type":34,"tag":39,"props":510,"children":511},{},[512],{"type":43,"value":513},"Refuse.",{"type":34,"tag":297,"props":515,"children":516},{},[517,527,537],{"type":34,"tag":301,"props":518,"children":519},{},[520,525],{"type":34,"tag":39,"props":521,"children":522},{},[523],{"type":43,"value":524},"On or off.",{"type":43,"value":526}," We need three values.",{"type":34,"tag":301,"props":528,"children":529},{},[530,535],{"type":34,"tag":39,"props":531,"children":532},{},[533],{"type":43,"value":534},"The toast after a quiet install.",{"type":43,"value":536}," D2 and c137 row 24 put the trace in the footer.",{"type":34,"tag":301,"props":538,"children":539},{},[540,545],{"type":34,"tag":39,"props":541,"children":542},{},[543],{"type":43,"value":544},"Channels as separate apps",{"type":43,"value":546}," (see section 8).",{"type":34,"tag":121,"props":548,"children":550},{"id":549},"_2-vs-code",[551],{"type":43,"value":14},{"type":34,"tag":35,"props":553,"children":554},{},[555,559],{"type":34,"tag":39,"props":556,"children":557},{},[558],{"type":43,"value":133},{"type":43,"value":560}," An Electron editor whose title bar now carries an update indicator. Its tooltip is the closest thing in this document to our Updates page: both versions with commits, the date, notes, one action, and a sentence for every reason updates are off.",{"type":34,"tag":137,"props":562,"children":563},{},[564,579],{"type":34,"tag":141,"props":565,"children":566},{},[567],{"type":34,"tag":145,"props":568,"children":569},{},[570,574],{"type":34,"tag":149,"props":571,"children":572},{},[573],{"type":43,"value":153},{"type":34,"tag":149,"props":575,"children":576},{},[577],{"type":43,"value":578},"VS Code",{"type":34,"tag":160,"props":580,"children":581},{},[582,610,622,634,687,707,719,731],{"type":34,"tag":145,"props":583,"children":584},{},[585,589],{"type":34,"tag":167,"props":586,"children":587},{},[588],{"type":43,"value":171},{"type":34,"tag":167,"props":590,"children":591},{},[592,594,600,602,608],{"type":43,"value":593},"Title-bar indicator and tooltip (",{"type":34,"tag":53,"props":595,"children":597},{"className":596},[],[598],{"type":43,"value":599},"update.titleBar",{"type":43,"value":601},", on); the Manage menu; Help › Check for Updates; the ",{"type":34,"tag":53,"props":603,"children":605},{"className":604},[],[606],{"type":43,"value":607},"update.mode",{"type":43,"value":609}," setting.",{"type":34,"tag":145,"props":611,"children":612},{},[613,617],{"type":34,"tag":167,"props":614,"children":615},{},[616],{"type":43,"value":184},{"type":34,"tag":167,"props":618,"children":619},{},[620],{"type":43,"value":621},"\"Current Version: 1.x (commit)\", \"Latest Version: 1.y (commit)\", \"Released {date}\", \"Copy\".",{"type":34,"tag":145,"props":623,"children":624},{},[625,629],{"type":34,"tag":167,"props":626,"children":627},{},[628],{"type":43,"value":197},{"type":34,"tag":167,"props":630,"children":631},{},[632],{"type":43,"value":633},"Stable and Insiders as separate installs; an in-app switch exists only on the web.",{"type":34,"tag":145,"props":635,"children":636},{},[637,641],{"type":34,"tag":167,"props":638,"children":639},{},[640],{"type":43,"value":210},{"type":34,"tag":167,"props":642,"children":643},{},[644,649,651,657,659,665,666,672,673,679,680,685],{"type":34,"tag":53,"props":645,"children":647},{"className":646},[],[648],{"type":43,"value":607},{"type":43,"value":650},": ",{"type":34,"tag":53,"props":652,"children":654},{"className":653},[],[655],{"type":43,"value":656},"default",{"type":43,"value":658}," · ",{"type":34,"tag":53,"props":660,"children":662},{"className":661},[],[663],{"type":43,"value":664},"start",{"type":43,"value":658},{"type":34,"tag":53,"props":667,"children":669},{"className":668},[],[670],{"type":43,"value":671},"manual",{"type":43,"value":658},{"type":34,"tag":53,"props":674,"children":676},{"className":675},[],[677],{"type":43,"value":678},"none",{"type":43,"value":221},{"type":34,"tag":53,"props":681,"children":683},{"className":682},[],[684],{"type":43,"value":656},{"type":43,"value":686},". Windows: \"Enable Background Updates\".",{"type":34,"tag":145,"props":688,"children":689},{},[690,694],{"type":34,"tag":167,"props":691,"children":692},{},[693],{"type":43,"value":237},{"type":34,"tag":167,"props":695,"children":696},{},[697,699,705],{"type":43,"value":698},"Opened after an update (",{"type":34,"tag":53,"props":700,"children":702},{"className":701},[],[703],{"type":43,"value":704},"update.showReleaseNotes",{"type":43,"value":706},", on); an experiment shows a tooltip instead. One page per weekly release.",{"type":34,"tag":145,"props":708,"children":709},{},[710,714],{"type":34,"tag":167,"props":711,"children":712},{},[713],{"type":43,"value":250},{"type":34,"tag":167,"props":715,"children":716},{},[717],{"type":43,"value":718},"\"Restart to Update\"; an experimental macOS restart when idle, under strict conditions.",{"type":34,"tag":145,"props":720,"children":721},{},[722,726],{"type":34,"tag":167,"props":723,"children":724},{},[725],{"type":43,"value":263},{"type":34,"tag":167,"props":727,"children":728},{},[729],{"type":43,"value":730},"Background download (and Windows install); a reminder when the build is two months old.",{"type":34,"tag":145,"props":732,"children":733},{},[734,738],{"type":34,"tag":167,"props":735,"children":736},{},[737],{"type":43,"value":276},{"type":34,"tag":167,"props":739,"children":740},{},[741,747],{"type":34,"tag":53,"props":742,"children":744},{"className":743},[],[745],{"type":43,"value":746},"UpdateMode",{"type":43,"value":748}," policy; \"Updates are disabled by your organization.\" and a sentence per other cause.",{"type":34,"tag":35,"props":750,"children":751},{},[752],{"type":34,"tag":39,"props":753,"children":754},{},[755],{"type":43,"value":295},{"type":34,"tag":297,"props":757,"children":758},{},[759,797,817,832,847],{"type":34,"tag":301,"props":760,"children":761},{},[762,764,769,771,777,779,785,787,790,796],{"type":43,"value":763},"The ",{"type":34,"tag":53,"props":765,"children":767},{"className":766},[],[768],{"type":43,"value":607},{"type":43,"value":770}," values read: \"Disable updates.\" · \"Disable automatic background update checks. Updates will be available if you manually check for updates.\" · \"Check for updates only on startup.\" · \"Enable automatic update checks.\" ",{"type":34,"tag":53,"props":772,"children":774},{"className":773},[],[775],{"type":43,"value":776},"update.showPostInstallInfo",{"type":43,"value":778}," (experiment): \"Show a post-install update tooltip in the title bar instead of opening the release notes editor.\" ",{"type":34,"tag":53,"props":780,"children":782},{"className":781},[],[783],{"type":43,"value":784},"update.showOutdatedBuildReminder",{"type":43,"value":786},": \"once this version of VS Code is two months old … at most once a month.\"",{"type":34,"tag":91,"props":788,"children":789},{},[],{"type":34,"tag":48,"props":791,"children":794},{"href":792,"rel":793},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fvscode\u002Fmain\u002Fsrc\u002Fvs\u002Fplatform\u002Fupdate\u002Fcommon\u002Fupdate.config.contribution.ts",[98],[795],{"type":43,"value":792},{"type":43,"value":316},{"type":34,"tag":301,"props":798,"children":799},{},[800,806,808,811,816],{"type":34,"tag":53,"props":801,"children":803},{"className":802},[],[804],{"type":43,"value":805},"update.restartWhenIdle",{"type":43,"value":807}," (off, experimental, macOS) restarts after the screen has been locked a minute on power, \"only if every window can be restored exactly as it was, for example when no terminal process, task, debug session, chat request, or agent session is running, and it does not take focus from another application.\"",{"type":34,"tag":91,"props":809,"children":810},{},[],{"type":34,"tag":48,"props":812,"children":814},{"href":792,"rel":813},[98],[815],{"type":43,"value":792},{"type":43,"value":316},{"type":34,"tag":301,"props":818,"children":819},{},[820,822,825,831],{"type":43,"value":821},"The tooltip's titles include \"Update Available\" (Download), \"Update is Ready to Install\" (Install), \"Update Installed\" (Restart) and \"Updates Disabled\". The disabled reasons include \"Updates are disabled by your organization.\" and \"Updates are manually disabled. Change the \"update.mode\" setting to enable.\"",{"type":34,"tag":91,"props":823,"children":824},{},[],{"type":34,"tag":48,"props":826,"children":829},{"href":827,"rel":828},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fvscode\u002Fmain\u002Fsrc\u002Fvs\u002Fworkbench\u002Fcontrib\u002Fupdate\u002Fbrowser\u002FupdateTooltip.ts",[98],[830],{"type":43,"value":827},{"type":43,"value":316},{"type":34,"tag":301,"props":833,"children":834},{},[835,837,840,846],{"type":43,"value":836},"An organisation can require a version: \"Update required by your organization\", \"Your organization requires {0} {1} or later to use AI features.\"",{"type":34,"tag":91,"props":838,"children":839},{},[],{"type":34,"tag":48,"props":841,"children":844},{"href":842,"rel":843},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fvscode\u002Fmain\u002Fsrc\u002Fvs\u002Fworkbench\u002Fservices\u002Fpolicies\u002Fcommon\u002FmanagedSettingsUpdate.ts",[98],[845],{"type":43,"value":842},{"type":43,"value":316},{"type":34,"tag":301,"props":848,"children":849},{},[850,852,857,859,862,868],{"type":43,"value":851},"The enterprise page (approved 11\u002F11\u002F2026): VS Code \"releases weekly updates\"; with ",{"type":34,"tag":53,"props":853,"children":855},{"className":854},[],[856],{"type":43,"value":678},{"type":43,"value":858},", \"users cannot update … through the application\".",{"type":34,"tag":91,"props":860,"children":861},{},[],{"type":34,"tag":48,"props":863,"children":866},{"href":864,"rel":865},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fvscode-docs\u002Fmain\u002Fdocs\u002Fenterprise\u002Fupdates.md",[98],[867],{"type":43,"value":864},{"type":43,"value":316},{"type":34,"tag":35,"props":870,"children":871},{},[872],{"type":34,"tag":39,"props":873,"children":874},{},[875],{"type":43,"value":472},{"type":34,"tag":297,"props":877,"children":878},{},[879,889,899,909],{"type":34,"tag":301,"props":880,"children":881},{},[882,887],{"type":34,"tag":39,"props":883,"children":884},{},[885],{"type":43,"value":886},"The tooltip as the Updates page's skeleton",{"type":43,"value":888},": current and latest with commits, release date, notes, one button naming the next step, Copy (D5, Copy version info).",{"type":34,"tag":301,"props":890,"children":891},{},[892,897],{"type":34,"tag":39,"props":893,"children":894},{},[895],{"type":43,"value":896},"A sentence per reason updates are off",{"type":43,"value":898}," (D10): never just \"disabled\".",{"type":34,"tag":301,"props":900,"children":901},{},[902,907],{"type":34,"tag":39,"props":903,"children":904},{},[905],{"type":43,"value":906},"The idle-restart guard",{"type":43,"value":908}," (D3): everything restorable, no agent session running, no focus taken (question 11).",{"type":34,"tag":301,"props":910,"children":911},{},[912,917],{"type":34,"tag":39,"props":913,"children":914},{},[915],{"type":43,"value":916},"The age reminder and the organisation's minimum version",{"type":43,"value":918}," (questions 10 and 15).",{"type":34,"tag":35,"props":920,"children":921},{},[922],{"type":34,"tag":39,"props":923,"children":924},{},[925],{"type":43,"value":513},{"type":34,"tag":297,"props":927,"children":928},{},[929,939],{"type":34,"tag":301,"props":930,"children":931},{},[932,937],{"type":34,"tag":39,"props":933,"children":934},{},[935],{"type":43,"value":936},"A notes tab that opens itself.",{"type":43,"value":938}," VS Code is testing a quieter tooltip; D2's footer mark is that.",{"type":34,"tag":301,"props":940,"children":941},{},[942,947],{"type":34,"tag":39,"props":943,"children":944},{},[945],{"type":43,"value":946},"A preference named after check timing.",{"type":43,"value":948}," Ours names the outcome for the person.",{"type":34,"tag":121,"props":950,"children":952},{"id":951},"_3-firefox",[953],{"type":43,"value":15},{"type":34,"tag":35,"props":955,"children":956},{},[957,961],{"type":34,"tag":39,"props":958,"children":959},{},[960],{"type":43,"value":133},{"type":43,"value":962}," A browser with a full Settings section for updates, a history of installs, public enterprise policies and an escalation clock. Its strings are the most exact here.",{"type":34,"tag":137,"props":964,"children":965},{},[966,981],{"type":34,"tag":141,"props":967,"children":968},{},[969],{"type":34,"tag":145,"props":970,"children":971},{},[972,976],{"type":34,"tag":149,"props":973,"children":974},{},[975],{"type":43,"value":153},{"type":34,"tag":149,"props":977,"children":978},{},[979],{"type":43,"value":980},"Firefox",{"type":34,"tag":160,"props":982,"children":983},{},[984,996,1008,1020,1032,1044,1056,1068],{"type":34,"tag":145,"props":985,"children":986},{},[987,991],{"type":34,"tag":167,"props":988,"children":989},{},[990],{"type":43,"value":171},{"type":34,"tag":167,"props":992,"children":993},{},[994],{"type":43,"value":995},"Settings, \"Firefox updates\"; the About dialog; an app-menu banner.",{"type":34,"tag":145,"props":997,"children":998},{},[999,1003],{"type":34,"tag":167,"props":1000,"children":1001},{},[1002],{"type":43,"value":184},{"type":34,"tag":167,"props":1004,"children":1005},{},[1006],{"type":43,"value":1007},"\"Version 1xx What's new\"; Nightly adds its build date.",{"type":34,"tag":145,"props":1009,"children":1010},{},[1011,1015],{"type":34,"tag":167,"props":1012,"children":1013},{},[1014],{"type":43,"value":197},{"type":34,"tag":167,"props":1016,"children":1017},{},[1018],{"type":43,"value":1019},"Shown, not switched: \"You are currently on the {channel} update channel.\" Each channel is its own build (cited from memory, not re-read today).",{"type":34,"tag":145,"props":1021,"children":1022},{},[1023,1027],{"type":34,"tag":167,"props":1024,"children":1025},{},[1026],{"type":43,"value":210},{"type":34,"tag":167,"props":1028,"children":1029},{},[1030],{"type":43,"value":1031},"\"Automatically install updates (recommended)\" · \"Check for updates, but choose when to install\".",{"type":34,"tag":145,"props":1033,"children":1034},{},[1035,1039],{"type":34,"tag":167,"props":1036,"children":1037},{},[1038],{"type":43,"value":237},{"type":34,"tag":167,"props":1040,"children":1041},{},[1042],{"type":43,"value":1043},"\"What's new\" per version, written by Mozilla.",{"type":34,"tag":145,"props":1045,"children":1046},{},[1047,1051],{"type":34,"tag":167,"props":1048,"children":1049},{},[1050],{"type":43,"value":250},{"type":34,"tag":167,"props":1052,"children":1053},{},[1054],{"type":43,"value":1055},"\"Update and restart\" · \"Dismiss\": \"Open tabs and windows will be restored.\" Badge after 4 days, full prompt after 8.",{"type":34,"tag":145,"props":1057,"children":1058},{},[1059,1063],{"type":34,"tag":167,"props":1060,"children":1061},{},[1062],{"type":43,"value":263},{"type":34,"tag":167,"props":1064,"children":1065},{},[1066],{"type":43,"value":1067},"Checks every 6 hours; a background service installs while closed (Windows); \"Update History\".",{"type":34,"tag":145,"props":1069,"children":1070},{},[1071,1075],{"type":34,"tag":167,"props":1072,"children":1073},{},[1074],{"type":43,"value":276},{"type":34,"tag":167,"props":1076,"children":1077},{},[1078,1084,1086,1092,1093,1099,1100,1106],{"type":34,"tag":53,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":43,"value":1083},"DisableAppUpdate",{"type":43,"value":1085},", ",{"type":34,"tag":53,"props":1087,"children":1089},{"className":1088},[],[1090],{"type":43,"value":1091},"AppAutoUpdate",{"type":43,"value":1085},{"type":34,"tag":53,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":43,"value":1098},"ManualAppUpdateOnly",{"type":43,"value":1085},{"type":34,"tag":53,"props":1101,"children":1103},{"className":1102},[],[1104],{"type":43,"value":1105},"AppUpdatePin",{"type":43,"value":1107},"; \"Updates disabled by your organization\".",{"type":34,"tag":35,"props":1109,"children":1110},{},[1111],{"type":34,"tag":39,"props":1112,"children":1113},{},[1114],{"type":43,"value":295},{"type":34,"tag":297,"props":1116,"children":1117},{},[1118,1133,1158,1173,1188],{"type":34,"tag":301,"props":1119,"children":1120},{},[1121,1123,1126,1132],{"type":43,"value":1122},"Settings adds \"When Firefox is not running\", \"Show fewer update reminders\" and \"Updates are managed by your operating system\" to the two choices in the table.",{"type":34,"tag":91,"props":1124,"children":1125},{},[],{"type":34,"tag":48,"props":1127,"children":1130},{"href":1128,"rel":1129},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmozilla-firefox\u002Ffirefox\u002Fmain\u002Fbrowser\u002Flocales\u002Fen-US\u002Fbrowser\u002Fpreferences\u002Fpreferences.ftl",[98],[1131],{"type":43,"value":1128},{"type":43,"value":316},{"type":34,"tag":301,"props":1134,"children":1135},{},[1136,1138,1141,1147,1148,1151,1157],{"type":43,"value":1137},"About: \"Restart to update Firefox\", \"Update failed. Download the latest version\", \"Updates disabled by your organization\". The banner: \"Get the latest version of Firefox. Open tabs and windows will be restored.\"",{"type":34,"tag":91,"props":1139,"children":1140},{},[],{"type":34,"tag":48,"props":1142,"children":1145},{"href":1143,"rel":1144},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmozilla-firefox\u002Ffirefox\u002Fmain\u002Fbrowser\u002Flocales\u002Fen-US\u002Fbrowser\u002FaboutDialog.ftl",[98],[1146],{"type":43,"value":1143},{"type":43,"value":316},{"type":34,"tag":91,"props":1149,"children":1150},{},[],{"type":34,"tag":48,"props":1152,"children":1155},{"href":1153,"rel":1154},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmozilla-firefox\u002Ffirefox\u002Fmain\u002Fbrowser\u002Flocales\u002Fen-US\u002Fbrowser\u002FappMenuNotifications.ftl",[98],[1156],{"type":43,"value":1153},{"type":43,"value":316},{"type":34,"tag":301,"props":1159,"children":1160},{},[1161,1163,1166,1172],{"type":43,"value":1162},"Update History: \"The following updates have been installed\", columns Update Name, Install Date, Type, State.",{"type":34,"tag":91,"props":1164,"children":1165},{},[],{"type":34,"tag":48,"props":1167,"children":1170},{"href":1168,"rel":1169},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmozilla-firefox\u002Ffirefox\u002Fmain\u002Ftoolkit\u002Flocales\u002Fen-US\u002Ftoolkit\u002Fupdates\u002Fhistory.ftl",[98],[1171],{"type":43,"value":1168},{"type":43,"value":316},{"type":34,"tag":301,"props":1174,"children":1175},{},[1176,1178,1181,1187],{"type":43,"value":1177},"Timing: check every 21600 seconds; badge after 345600 (\"4 days\"); \"the big UI\" after 691200 (\"192 hours\"); a build may go unchecked for 63 days.",{"type":34,"tag":91,"props":1179,"children":1180},{},[],{"type":34,"tag":48,"props":1182,"children":1185},{"href":1183,"rel":1184},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmozilla-firefox\u002Ffirefox\u002Fmain\u002Fbrowser\u002Fbranding\u002Fofficial\u002Fpref\u002Ffirefox-branding.js",[98],[1186],{"type":43,"value":1183},{"type":43,"value":316},{"type":34,"tag":301,"props":1189,"children":1190},{},[1191,1196,1198,1203,1205,1210,1212,1215,1221],{"type":34,"tag":53,"props":1192,"children":1194},{"className":1193},[],[1195],{"type":43,"value":1091},{"type":43,"value":1197}," false: updates \"are downloaded but the user can choose when to install\". ",{"type":34,"tag":53,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":43,"value":1098},{"type":43,"value":1204},": \"The user will never be prompted to install updates\". ",{"type":34,"tag":53,"props":1206,"children":1208},{"className":1207},[],[1209],{"type":43,"value":1105},{"type":43,"value":1211}," prevents updates \"beyond the specified version\".",{"type":34,"tag":91,"props":1213,"children":1214},{},[],{"type":34,"tag":48,"props":1216,"children":1219},{"href":1217,"rel":1218},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmozilla\u002Fpolicy-templates\u002Fmaster\u002Fdocs\u002Findex.md",[98],[1220],{"type":43,"value":1217},{"type":43,"value":316},{"type":34,"tag":35,"props":1223,"children":1224},{},[1225],{"type":34,"tag":39,"props":1226,"children":1227},{},[1228],{"type":43,"value":472},{"type":34,"tag":297,"props":1230,"children":1231},{},[1232,1242,1252,1262],{"type":34,"tag":301,"props":1233,"children":1234},{},[1235,1240],{"type":34,"tag":39,"props":1236,"children":1237},{},[1238],{"type":43,"value":1239},"\"(recommended)\" on the default",{"type":43,"value":1241}," (D1).",{"type":34,"tag":301,"props":1243,"children":1244},{},[1245,1250],{"type":34,"tag":39,"props":1246,"children":1247},{},[1248],{"type":43,"value":1249},"The restart sentence that says what survives",{"type":43,"value":1251}," (R2): \"qcontrol keeps watching while the app restarts.\"",{"type":34,"tag":301,"props":1253,"children":1254},{},[1255,1260],{"type":34,"tag":39,"props":1256,"children":1257},{},[1258],{"type":43,"value":1259},"Update History with a state column",{"type":43,"value":1261},", so failures show too (R5).",{"type":34,"tag":301,"props":1263,"children":1264},{},[1265,1270],{"type":34,"tag":39,"props":1266,"children":1267},{},[1268],{"type":43,"value":1269},"Two managed sentences",{"type":43,"value":1271},": by your organisation, by your operating system (D10); and the pin as an organisation's policy (R6).",{"type":34,"tag":35,"props":1273,"children":1274},{},[1275],{"type":34,"tag":39,"props":1276,"children":1277},{},[1278],{"type":43,"value":513},{"type":34,"tag":297,"props":1280,"children":1281},{},[1282],{"type":34,"tag":301,"props":1283,"children":1284},{},[1285,1290],{"type":34,"tag":39,"props":1286,"children":1287},{},[1288],{"type":43,"value":1289},"\"The big UI\" after eight days.",{"type":43,"value":1291}," R1 has no modal at any age; the age is said instead (question 9).",{"type":34,"tag":121,"props":1293,"children":1295},{"id":1294},"_4-1password",[1296],{"type":43,"value":16},{"type":34,"tag":35,"props":1298,"children":1299},{},[1300,1304],{"type":34,"tag":39,"props":1301,"children":1302},{},[1303],{"type":43,"value":133},{"type":43,"value":1305}," A security tool on work laptops, managed by employers: the closest in kind to us. The channel is a setting in the one app, and the organisation can limit it. Most facts are search excerpts.",{"type":34,"tag":137,"props":1307,"children":1308},{},[1309,1324],{"type":34,"tag":141,"props":1310,"children":1311},{},[1312],{"type":34,"tag":145,"props":1313,"children":1314},{},[1315,1319],{"type":34,"tag":149,"props":1316,"children":1317},{},[1318],{"type":43,"value":153},{"type":34,"tag":149,"props":1320,"children":1321},{},[1322],{"type":43,"value":1323},"1Password",{"type":34,"tag":160,"props":1325,"children":1326},{},[1327,1339,1351,1363,1375,1387,1399,1411],{"type":34,"tag":145,"props":1328,"children":1329},{},[1330,1334],{"type":34,"tag":167,"props":1331,"children":1332},{},[1333],{"type":43,"value":171},{"type":34,"tag":167,"props":1335,"children":1336},{},[1337],{"type":43,"value":1338},"Settings › Advanced (\"Release channel\"); \"Install updates automatically\"; \"Check for updates\" in the menu bar and About.",{"type":34,"tag":145,"props":1340,"children":1341},{},[1342,1346],{"type":34,"tag":167,"props":1343,"children":1344},{},[1345],{"type":43,"value":184},{"type":34,"tag":167,"props":1347,"children":1348},{},[1349],{"type":43,"value":1350},"Full build numbers, e.g. \"8.12.44-24\" for a beta.",{"type":34,"tag":145,"props":1352,"children":1353},{},[1354,1358],{"type":34,"tag":167,"props":1355,"children":1356},{},[1357],{"type":43,"value":197},{"type":34,"tag":167,"props":1359,"children":1360},{},[1361],{"type":43,"value":1362},"Production · Beta · Nightly in place; a new channel applies at its next newer release; Nightly to Production needs a reinstall.",{"type":34,"tag":145,"props":1364,"children":1365},{},[1366,1370],{"type":34,"tag":167,"props":1367,"children":1368},{},[1369],{"type":43,"value":210},{"type":34,"tag":167,"props":1371,"children":1372},{},[1373],{"type":43,"value":1374},"\"Install updates automatically\" on or off; off means no checks until \"Check for updates\" (community answer).",{"type":34,"tag":145,"props":1376,"children":1377},{},[1378,1382],{"type":34,"tag":167,"props":1379,"children":1380},{},[1381],{"type":43,"value":237},{"type":34,"tag":167,"props":1383,"children":1384},{},[1385],{"type":43,"value":1386},"releases.1password.com per platform and channel, with RSS.",{"type":34,"tag":145,"props":1388,"children":1389},{},[1390,1394],{"type":34,"tag":167,"props":1391,"children":1392},{},[1393],{"type":43,"value":250},{"type":34,"tag":167,"props":1395,"children":1396},{},[1397],{"type":43,"value":1398},"Not verified today.",{"type":34,"tag":145,"props":1400,"children":1401},{},[1402,1406],{"type":34,"tag":167,"props":1403,"children":1404},{},[1405],{"type":43,"value":263},{"type":34,"tag":167,"props":1407,"children":1408},{},[1409],{"type":43,"value":1410},"Windows: weekly check, install only while the app is locked (community answer).",{"type":34,"tag":145,"props":1412,"children":1413},{},[1414,1418],{"type":34,"tag":167,"props":1415,"children":1416},{},[1417],{"type":43,"value":276},{"type":34,"tag":167,"props":1419,"children":1420},{},[1421],{"type":43,"value":1422},"MDM keys; a 1Password.com channel policy (\"Production only\") that overrides MDM; a policy requiring the latest version.",{"type":34,"tag":35,"props":1424,"children":1425},{},[1426],{"type":34,"tag":39,"props":1427,"children":1428},{},[1429],{"type":43,"value":295},{"type":34,"tag":297,"props":1431,"children":1432},{},[1433,1448,1473,1498],{"type":34,"tag":301,"props":1434,"children":1435},{},[1436,1438,1441,1447],{"type":43,"value":1437},"\"Install updates automatically\" governs installs; the release channel is under Advanced.",{"type":34,"tag":91,"props":1439,"children":1440},{},[],{"type":34,"tag":48,"props":1442,"children":1445},{"href":1443,"rel":1444},"https:\u002F\u002Fsupport.1password.com\u002Fbetas\u002F",[98],[1446],{"type":43,"value":1443},{"type":43,"value":102},{"type":34,"tag":301,"props":1449,"children":1450},{},[1451,1453,1456,1462,1463,1466,1472],{"type":43,"value":1452},"Switching: \"until a version is available that is both in the selected release channel, and newer than the current version installed, 1Password will not update.\" Users report staying on Nightly with Production selected.",{"type":34,"tag":91,"props":1454,"children":1455},{},[],{"type":34,"tag":48,"props":1457,"children":1460},{"href":1458,"rel":1459},"https:\u002F\u002F1password.community\u002Fdiscussion\u002Fcomment\u002F640977",[98],[1461],{"type":43,"value":1458},{"type":43,"value":102},{"type":34,"tag":91,"props":1464,"children":1465},{},[],{"type":34,"tag":48,"props":1467,"children":1470},{"href":1468,"rel":1469},"https:\u002F\u002Fwww.1password.community\u002F1password-at-home-31\u002Fthe-advanced-setting-release-channel-is-not-respected-23433",[98],[1471],{"type":43,"value":1468},{"type":43,"value":102},{"type":34,"tag":301,"props":1474,"children":1475},{},[1476,1478,1481,1487,1488,1491,1497],{"type":43,"value":1477},"A 1Password.com channel policy \"overrides these MDM settings for automatic updates and the release channel\"; \"Production only\" moves Beta and Nightly members to Production; a separate policy requires the latest version.",{"type":34,"tag":91,"props":1479,"children":1480},{},[],{"type":34,"tag":48,"props":1482,"children":1485},{"href":1483,"rel":1484},"https:\u002F\u002Fsupport.1password.com\u002Fmobile-device-management\u002F",[98],[1486],{"type":43,"value":1483},{"type":43,"value":102},{"type":34,"tag":91,"props":1489,"children":1490},{},[],{"type":34,"tag":48,"props":1492,"children":1495},{"href":1493,"rel":1494},"https:\u002F\u002F1password.com\u002Fblog\u002Fbrowser-auto-lock-release-channel-policies",[98],[1496],{"type":43,"value":1493},{"type":43,"value":102},{"type":34,"tag":301,"props":1499,"children":1500},{},[1501,1503,1506,1512],{"type":43,"value":1502},"Windows installs automatically only when the app is locked (community reply).",{"type":34,"tag":91,"props":1504,"children":1505},{},[],{"type":34,"tag":48,"props":1507,"children":1510},{"href":1508,"rel":1509},"https:\u002F\u002Fwww.1password.community\u002F1password-at-work-58\u002Fupdate-concern-on-windows-app-v8-12-0-23924",[98],[1511],{"type":43,"value":1508},{"type":43,"value":102},{"type":34,"tag":35,"props":1514,"children":1515},{},[1516],{"type":34,"tag":39,"props":1517,"children":1518},{},[1519],{"type":43,"value":472},{"type":34,"tag":297,"props":1521,"children":1522},{},[1523,1533,1543],{"type":34,"tag":301,"props":1524,"children":1525},{},[1526,1531],{"type":34,"tag":39,"props":1527,"children":1528},{},[1529],{"type":43,"value":1530},"The channel inside the one install",{"type":43,"value":1532},", and \"newer in the chosen channel, or nothing\" when leaving Beta (later era; no downgrade).",{"type":34,"tag":301,"props":1534,"children":1535},{},[1536,1541],{"type":34,"tag":39,"props":1537,"children":1538},{},[1539],{"type":43,"value":1540},"The organisation limits the channels",{"type":43,"value":1542},", overriding the device (plan §Two eras).",{"type":34,"tag":301,"props":1544,"children":1545},{},[1546,1551],{"type":34,"tag":39,"props":1547,"children":1548},{},[1549],{"type":43,"value":1550},"Install while nobody is using it",{"type":43,"value":1552}," (D3): for us, the window closed to the tray.",{"type":34,"tag":35,"props":1554,"children":1555},{},[1556],{"type":34,"tag":39,"props":1557,"children":1558},{},[1559],{"type":43,"value":513},{"type":34,"tag":297,"props":1561,"children":1562},{},[1563,1573],{"type":34,"tag":301,"props":1564,"children":1565},{},[1566,1571],{"type":34,"tag":39,"props":1567,"children":1568},{},[1569],{"type":43,"value":1570},"Off means no checks.",{"type":43,"value":1572}," The plan checks whatever the preference (D10).",{"type":34,"tag":301,"props":1574,"children":1575},{},[1576,1581],{"type":34,"tag":39,"props":1577,"children":1578},{},[1579],{"type":43,"value":1580},"A channel kept in two places.",{"type":43,"value":1582}," The reported drift is why D12 keeps it in the feed.",{"type":34,"tag":121,"props":1584,"children":1586},{"id":1585},"_5-slack",[1587],{"type":43,"value":17},{"type":34,"tag":35,"props":1589,"children":1590},{},[1591,1595],{"type":34,"tag":39,"props":1592,"children":1593},{},[1594],{"type":43,"value":133},{"type":43,"value":1596}," A B2B Electron app with no preference for the person: updates arrive automatically, show as a badge, and apply on restart. Administrators turn them off by configuration.",{"type":34,"tag":137,"props":1598,"children":1599},{},[1600,1615],{"type":34,"tag":141,"props":1601,"children":1602},{},[1603],{"type":34,"tag":145,"props":1604,"children":1605},{},[1606,1610],{"type":34,"tag":149,"props":1607,"children":1608},{},[1609],{"type":43,"value":153},{"type":34,"tag":149,"props":1611,"children":1612},{},[1613],{"type":43,"value":1614},"Slack",{"type":34,"tag":160,"props":1616,"children":1617},{},[1618,1630,1642,1654,1666,1678,1690,1702],{"type":34,"tag":145,"props":1619,"children":1620},{},[1621,1625],{"type":34,"tag":167,"props":1622,"children":1623},{},[1624],{"type":43,"value":171},{"type":34,"tag":167,"props":1626,"children":1627},{},[1628],{"type":43,"value":1629},"A badge on the help icon, then an update card; Help › Check for updates.",{"type":34,"tag":145,"props":1631,"children":1632},{},[1633,1637],{"type":34,"tag":167,"props":1634,"children":1635},{},[1636],{"type":43,"value":184},{"type":34,"tag":167,"props":1638,"children":1639},{},[1640],{"type":43,"value":1641},"Per-version notes pages; nothing more verified.",{"type":34,"tag":145,"props":1643,"children":1644},{},[1645,1649],{"type":34,"tag":167,"props":1646,"children":1647},{},[1648],{"type":43,"value":197},{"type":34,"tag":167,"props":1650,"children":1651},{},[1652],{"type":43,"value":1653},"A desktop beta (section 12).",{"type":34,"tag":145,"props":1655,"children":1656},{},[1657,1661],{"type":34,"tag":167,"props":1658,"children":1659},{},[1660],{"type":43,"value":210},{"type":34,"tag":167,"props":1662,"children":1663},{},[1664],{"type":43,"value":1665},"None.",{"type":34,"tag":145,"props":1667,"children":1668},{},[1669,1673],{"type":34,"tag":167,"props":1670,"children":1671},{},[1672],{"type":43,"value":237},{"type":34,"tag":167,"props":1674,"children":1675},{},[1676],{"type":43,"value":1677},"Pages per OS, stable and beta.",{"type":34,"tag":145,"props":1679,"children":1680},{},[1681,1685],{"type":34,"tag":167,"props":1682,"children":1683},{},[1684],{"type":43,"value":250},{"type":34,"tag":167,"props":1686,"children":1687},{},[1688],{"type":43,"value":1689},"\"Restart Slack\"; \"Restart to apply update\" after a manual check.",{"type":34,"tag":145,"props":1691,"children":1692},{},[1693,1697],{"type":34,"tag":167,"props":1694,"children":1695},{},[1696],{"type":43,"value":263},{"type":34,"tag":167,"props":1698,"children":1699},{},[1700],{"type":43,"value":1701},"Automatic download; applies at the next restart.",{"type":34,"tag":145,"props":1703,"children":1704},{},[1705,1709],{"type":34,"tag":167,"props":1706,"children":1707},{},[1708],{"type":43,"value":276},{"type":34,"tag":167,"props":1710,"children":1711},{},[1712,1718],{"type":34,"tag":53,"props":1713,"children":1715},{"className":1714},[],[1716],{"type":43,"value":1717},"AutoUpdate",{"type":43,"value":1719}," (4.31 and later, enforceable); store installs update through the store.",{"type":34,"tag":35,"props":1721,"children":1722},{},[1723],{"type":34,"tag":39,"props":1724,"children":1725},{},[1726],{"type":43,"value":295},{"type":34,"tag":297,"props":1728,"children":1729},{},[1730,1745],{"type":34,"tag":301,"props":1731,"children":1732},{},[1733,1735,1738,1744],{"type":43,"value":1734},"\"The help icon in Slack will be badged\"; the person opens the card and selects \"Restart Slack\"; or \"Click Check for updates, then click Restart to apply update.\" Store installs are updated by the store.",{"type":34,"tag":91,"props":1736,"children":1737},{},[],{"type":34,"tag":48,"props":1739,"children":1742},{"href":1740,"rel":1741},"https:\u002F\u002Fslack.com\u002Fhelp\u002Farticles\u002F360048367814-Update-the-Slack-desktop-app",[98],[1743],{"type":43,"value":1740},{"type":43,"value":102},{"type":34,"tag":301,"props":1746,"children":1747},{},[1748,1753,1755,1758,1764],{"type":34,"tag":53,"props":1749,"children":1751},{"className":1750},[],[1752],{"type":43,"value":1717},{"type":43,"value":1754}," \"enables or disables automatic updates of the desktop app\", is enforceable, from version 4.31.",{"type":34,"tag":91,"props":1756,"children":1757},{},[],{"type":34,"tag":48,"props":1759,"children":1762},{"href":1760,"rel":1761},"https:\u002F\u002Fslack.com\u002Fhelp\u002Farticles\u002F11906214948755-Manage-desktop-app-configurations",[98],[1763],{"type":43,"value":1760},{"type":43,"value":102},{"type":34,"tag":35,"props":1766,"children":1767},{},[1768],{"type":34,"tag":39,"props":1769,"children":1770},{},[1771],{"type":43,"value":472},{"type":34,"tag":297,"props":1773,"children":1774},{},[1775,1785],{"type":34,"tag":301,"props":1776,"children":1777},{},[1778,1783],{"type":34,"tag":39,"props":1779,"children":1780},{},[1781],{"type":43,"value":1782},"A badge on something the person already opens",{"type":43,"value":1784}," (D4): our tray dot and footer mark.",{"type":34,"tag":301,"props":1786,"children":1787},{},[1788,1793],{"type":34,"tag":39,"props":1789,"children":1790},{},[1791],{"type":43,"value":1792},"Say where updates come from",{"type":43,"value":1794}," when a store or manager owns them (D10).",{"type":34,"tag":35,"props":1796,"children":1797},{},[1798],{"type":34,"tag":39,"props":1799,"children":1800},{},[1801],{"type":43,"value":513},{"type":34,"tag":297,"props":1803,"children":1804},{},[1805],{"type":34,"tag":301,"props":1806,"children":1807},{},[1808,1813],{"type":34,"tag":39,"props":1809,"children":1810},{},[1811],{"type":43,"value":1812},"No preference at all.",{"type":43,"value":1814}," Mark's prompt asks for one.",{"type":34,"tag":121,"props":1816,"children":1818},{"id":1817},"_6-the-claude-desktop-app",[1819],{"type":43,"value":18},{"type":34,"tag":35,"props":1821,"children":1822},{},[1823,1827],{"type":34,"tag":39,"props":1824,"children":1825},{},[1826],{"type":43,"value":133},{"type":43,"value":1828}," Anthropic's Electron app: automatic updates, a menu item, an MDM key and a forced-restart window. Public issues describe what happens when an app hosting long-running agent sessions restarts itself. That is the nearest thing in this document to our own risk.",{"type":34,"tag":137,"props":1830,"children":1831},{},[1832,1847],{"type":34,"tag":141,"props":1833,"children":1834},{},[1835],{"type":34,"tag":145,"props":1836,"children":1837},{},[1838,1842],{"type":34,"tag":149,"props":1839,"children":1840},{},[1841],{"type":43,"value":153},{"type":34,"tag":149,"props":1843,"children":1844},{},[1845],{"type":43,"value":1846},"Claude desktop",{"type":34,"tag":160,"props":1848,"children":1849},{},[1850,1862,1874,1886,1898,1910,1922,1934],{"type":34,"tag":145,"props":1851,"children":1852},{},[1853,1857],{"type":34,"tag":167,"props":1854,"children":1855},{},[1856],{"type":43,"value":171},{"type":34,"tag":167,"props":1858,"children":1859},{},[1860],{"type":43,"value":1861},"\"Claude › Check for Updates…\" (macOS), \"Help › Check for Updates…\" (Windows); an in-app \"Relaunch to update\".",{"type":34,"tag":145,"props":1863,"children":1864},{},[1865,1869],{"type":34,"tag":167,"props":1866,"children":1867},{},[1868],{"type":43,"value":184},{"type":34,"tag":167,"props":1870,"children":1871},{},[1872],{"type":43,"value":1873},"Numbers like v1.2581.0; the docs gate features by version.",{"type":34,"tag":145,"props":1875,"children":1876},{},[1877,1881],{"type":34,"tag":167,"props":1878,"children":1879},{},[1880],{"type":43,"value":197},{"type":34,"tag":167,"props":1882,"children":1883},{},[1884],{"type":43,"value":1885},"None visible.",{"type":34,"tag":145,"props":1887,"children":1888},{},[1889,1893],{"type":34,"tag":167,"props":1890,"children":1891},{},[1892],{"type":43,"value":210},{"type":34,"tag":167,"props":1894,"children":1895},{},[1896],{"type":43,"value":1897},"None for the person; an organisation toggle.",{"type":34,"tag":145,"props":1899,"children":1900},{},[1901,1905],{"type":34,"tag":167,"props":1902,"children":1903},{},[1904],{"type":43,"value":237},{"type":34,"tag":167,"props":1906,"children":1907},{},[1908],{"type":43,"value":1909},"A running article across the Claude apps; none at the restart control.",{"type":34,"tag":145,"props":1911,"children":1912},{},[1913,1917],{"type":34,"tag":167,"props":1914,"children":1915},{},[1916],{"type":43,"value":250},{"type":34,"tag":167,"props":1918,"children":1919},{},[1920],{"type":43,"value":1921},"\"Relaunch to update\" applies at once.",{"type":34,"tag":145,"props":1923,"children":1924},{},[1925,1929],{"type":34,"tag":167,"props":1926,"children":1927},{},[1928],{"type":43,"value":263},{"type":34,"tag":167,"props":1930,"children":1931},{},[1932],{"type":43,"value":1933},"A \"stealth update\" relaunch after an idle timeout; only a log line.",{"type":34,"tag":145,"props":1935,"children":1936},{},[1937,1941],{"type":34,"tag":167,"props":1938,"children":1939},{},[1940],{"type":43,"value":276},{"type":34,"tag":167,"props":1942,"children":1943},{},[1944,1950,1952,1958],{"type":34,"tag":53,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":43,"value":1949},"disableAutoUpdates",{"type":43,"value":1951},"; ",{"type":34,"tag":53,"props":1953,"children":1955},{"className":1954},[],[1956],{"type":43,"value":1957},"autoUpdaterEnforcementHours",{"type":43,"value":1959}," 1 to 72, default 72.",{"type":34,"tag":35,"props":1961,"children":1962},{},[1963],{"type":34,"tag":39,"props":1964,"children":1965},{},[1966],{"type":43,"value":295},{"type":34,"tag":297,"props":1968,"children":1969},{},[1970,1990,2021,2037,2052],{"type":34,"tag":301,"props":1971,"children":1972},{},[1973,1978,1980,1983,1989],{"type":34,"tag":53,"props":1974,"children":1976},{"className":1975},[],[1977],{"type":43,"value":1957},{"type":43,"value":1979},": \"Hours before forcefully restarting Claude to apply a prepared update\". With the organisation's toggle off, \"Claude Desktop stops checking for and downloading updates\", but \"Users can still update from the app menu, and a downloaded update still installs.\"",{"type":34,"tag":91,"props":1981,"children":1982},{},[],{"type":34,"tag":48,"props":1984,"children":1987},{"href":1985,"rel":1986},"https:\u002F\u002Fsupport.claude.com\u002Fen\u002Farticles\u002F12622667-enterprise-configuration",[98],[1988],{"type":43,"value":1985},{"type":43,"value":316},{"type":34,"tag":301,"props":1991,"children":1992},{},[1993,1995,2001,2003,2009,2011,2014,2020],{"type":43,"value":1994},"Installed in ",{"type":34,"tag":53,"props":1996,"children":1998},{"className":1997},[],[1999],{"type":43,"value":2000},"~\u002FApplications",{"type":43,"value":2002},", \"Users can update without administrator privileges\"; in ",{"type":34,"tag":53,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":43,"value":2008},"\u002FApplications",{"type":43,"value":2010}," they need administrator access.",{"type":34,"tag":91,"props":2012,"children":2013},{},[],{"type":34,"tag":48,"props":2015,"children":2018},{"href":2016,"rel":2017},"https:\u002F\u002Fsupport.claude.com\u002Fen\u002Farticles\u002F12611117",[98],[2019],{"type":43,"value":2016},{"type":43,"value":316},{"type":34,"tag":301,"props":2022,"children":2023},{},[2024,2026,2029,2035],{"type":43,"value":2025},"The menu items, \"Claude > Check for Updates…\" and \"Help > Check for Updates…\".",{"type":34,"tag":91,"props":2027,"children":2028},{},[],{"type":34,"tag":48,"props":2030,"children":2033},{"href":2031,"rel":2032},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fdesktop-changelog",[98],[2034],{"type":43,"value":2031},{"type":43,"value":2036}," (read 2026-11-11; the URL now serves the desktop reference)",{"type":34,"tag":301,"props":2038,"children":2039},{},[2040,2042,2045,2051],{"type":43,"value":2041},"Issue #61582: \"Relaunch to update\" \"applies the update immediately, with no changelog, no confirmation, and no option to defer\". The stale bot closed it as not planned.",{"type":34,"tag":91,"props":2043,"children":2044},{},[],{"type":34,"tag":48,"props":2046,"children":2049},{"href":2047,"rel":2048},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fissues\u002F61582",[98],[2050],{"type":43,"value":2047},{"type":43,"value":316},{"type":34,"tag":301,"props":2053,"children":2054},{},[2055,2057,2063,2065,2071,2073,2076,2082],{"type":43,"value":2056},"Issue #92207: ",{"type":34,"tag":53,"props":2058,"children":2060},{"className":2059},[],[2061],{"type":43,"value":2062},"[stealth-update] Triggering stealth update after idle timeout",{"type":43,"value":2064},", then a relaunch that closed every Remote Control bridge for 75 minutes to four hours; \"no notification or 'restart to update' banner\", only ",{"type":34,"tag":53,"props":2066,"children":2068},{"className":2067},[],[2069],{"type":43,"value":2070},"main.log",{"type":43,"value":2072},". Closed as a duplicate of #95364.",{"type":34,"tag":91,"props":2074,"children":2075},{},[],{"type":34,"tag":48,"props":2077,"children":2080},{"href":2078,"rel":2079},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fissues\u002F92207",[98],[2081],{"type":43,"value":2078},{"type":43,"value":316},{"type":34,"tag":35,"props":2084,"children":2085},{},[2086],{"type":34,"tag":39,"props":2087,"children":2088},{},[2089],{"type":43,"value":472},{"type":34,"tag":297,"props":2091,"children":2092},{},[2093,2103],{"type":34,"tag":301,"props":2094,"children":2095},{},[2096,2101],{"type":34,"tag":39,"props":2097,"children":2098},{},[2099],{"type":43,"value":2100},"Policy can stop the automatic path and keep Check now",{"type":43,"value":2102}," (question 7).",{"type":34,"tag":301,"props":2104,"children":2105},{},[2106,2111],{"type":34,"tag":39,"props":2107,"children":2108},{},[2109],{"type":43,"value":2110},"A per-user install updates without an administrator",{"type":43,"value":2112},": the app's half of T4.",{"type":34,"tag":35,"props":2114,"children":2115},{},[2116],{"type":34,"tag":39,"props":2117,"children":2118},{},[2119],{"type":43,"value":513},{"type":34,"tag":297,"props":2121,"children":2122},{},[2123,2133,2143],{"type":34,"tag":301,"props":2124,"children":2125},{},[2126,2131],{"type":34,"tag":39,"props":2127,"children":2128},{},[2129],{"type":43,"value":2130},"A forced restart on a timer",{"type":43,"value":2132}," (R1). If an organisation wants a deadline later, it is a window shown in advance (section 9).",{"type":34,"tag":301,"props":2134,"children":2135},{},[2136,2141],{"type":34,"tag":39,"props":2137,"children":2138},{},[2139],{"type":43,"value":2140},"An idle relaunch traced only in a log",{"type":43,"value":2142}," (R3), and one that cuts live sessions (R2).",{"type":34,"tag":301,"props":2144,"children":2145},{},[2146,2151],{"type":34,"tag":39,"props":2147,"children":2148},{},[2149],{"type":43,"value":2150},"A restart control with no notes and no \"later\".",{"type":43,"value":2152}," Each complaint in #61582 is a row of our model.",{"type":34,"tag":121,"props":2154,"children":2156},{"id":2155},"_7-raycast",[2157],{"type":43,"value":19},{"type":34,"tag":35,"props":2159,"children":2160},{},[2161,2165],{"type":34,"tag":39,"props":2162,"children":2163},{},[2164],{"type":43,"value":133},{"type":43,"value":2166}," A menu-bar launcher, a tray app like ours. It ships weekly, checks daily, offers updates inside its own search, and shows notes after the relaunch.",{"type":34,"tag":137,"props":2168,"children":2169},{},[2170,2185],{"type":34,"tag":141,"props":2171,"children":2172},{},[2173],{"type":34,"tag":145,"props":2174,"children":2175},{},[2176,2180],{"type":34,"tag":149,"props":2177,"children":2178},{},[2179],{"type":43,"value":153},{"type":34,"tag":149,"props":2181,"children":2182},{},[2183],{"type":43,"value":2184},"Raycast",{"type":34,"tag":160,"props":2186,"children":2187},{},[2188,2200,2212,2224,2236,2248,2260,2272],{"type":34,"tag":145,"props":2189,"children":2190},{},[2191,2195],{"type":34,"tag":167,"props":2192,"children":2193},{},[2194],{"type":43,"value":171},{"type":34,"tag":167,"props":2196,"children":2197},{},[2198],{"type":43,"value":2199},"Settings › About; the menu bar icon; a Check for Updates command; the update at the top of root search.",{"type":34,"tag":145,"props":2201,"children":2202},{},[2203,2207],{"type":34,"tag":167,"props":2204,"children":2205},{},[2206],{"type":43,"value":184},{"type":34,"tag":167,"props":2208,"children":2209},{},[2210],{"type":43,"value":2211},"The version in About; a dated changelog per version.",{"type":34,"tag":145,"props":2213,"children":2214},{},[2215,2219],{"type":34,"tag":167,"props":2216,"children":2217},{},[2218],{"type":43,"value":197},{"type":34,"tag":167,"props":2220,"children":2221},{},[2222],{"type":43,"value":2223},"The v2 beta was a separate app until v2 replaced v1.",{"type":34,"tag":145,"props":2225,"children":2226},{},[2227,2231],{"type":34,"tag":167,"props":2228,"children":2229},{},[2230],{"type":43,"value":210},{"type":34,"tag":167,"props":2232,"children":2233},{},[2234],{"type":43,"value":2235},"None found.",{"type":34,"tag":145,"props":2237,"children":2238},{},[2239,2243],{"type":34,"tag":167,"props":2240,"children":2241},{},[2242],{"type":43,"value":237},{"type":34,"tag":167,"props":2244,"children":2245},{},[2246],{"type":43,"value":2247},"Changelog per version, shown after the relaunch.",{"type":34,"tag":145,"props":2249,"children":2250},{},[2251,2255],{"type":34,"tag":167,"props":2252,"children":2253},{},[2254],{"type":43,"value":250},{"type":34,"tag":167,"props":2256,"children":2257},{},[2258],{"type":43,"value":2259},"Offered in root search; the new build starts when the old one quits.",{"type":34,"tag":145,"props":2261,"children":2262},{},[2263,2267],{"type":34,"tag":167,"props":2264,"children":2265},{},[2266],{"type":43,"value":263},{"type":34,"tag":167,"props":2268,"children":2269},{},[2270],{"type":43,"value":2271},"Daily check; on Windows, background updates \"without interrupting your work\".",{"type":34,"tag":145,"props":2273,"children":2274},{},[2275,2279],{"type":34,"tag":167,"props":2276,"children":2277},{},[2278],{"type":43,"value":276},{"type":34,"tag":167,"props":2280,"children":2281},{},[2282],{"type":43,"value":2283},"Not found.",{"type":34,"tag":35,"props":2285,"children":2286},{},[2287],{"type":34,"tag":39,"props":2288,"children":2289},{},[2290],{"type":43,"value":295},{"type":34,"tag":297,"props":2292,"children":2293},{},[2294,2319],{"type":34,"tag":301,"props":2295,"children":2296},{},[2297,2299,2302,2308,2309,2312,2318],{"type":43,"value":2298},"About shows the version and changelog links, \"You can also check for updates here\"; on Windows, \"Raycast will notify you directly in root search\".",{"type":34,"tag":91,"props":2300,"children":2301},{},[],{"type":34,"tag":48,"props":2303,"children":2306},{"href":2304,"rel":2305},"https:\u002F\u002Fmanual.raycast.com\u002Fsettings",[98],[2307],{"type":43,"value":2304},{"type":43,"value":102},{"type":34,"tag":91,"props":2310,"children":2311},{},[],{"type":34,"tag":48,"props":2313,"children":2316},{"href":2314,"rel":2315},"https:\u002F\u002Fmanual.raycast.com\u002Fwindows\u002Fproduct-updates",[98],[2317],{"type":43,"value":2314},{"type":43,"value":102},{"type":34,"tag":301,"props":2320,"children":2321},{},[2322,2324,2327,2333],{"type":43,"value":2323},"The 2020 post: weekly releases made the old pop-up an interruption \"in the middle of some action\"; the update now sits \"on the top of the root search\", and notes show \"after the app is relaunched\".",{"type":34,"tag":91,"props":2325,"children":2326},{},[],{"type":34,"tag":48,"props":2328,"children":2331},{"href":2329,"rel":2330},"https:\u002F\u002Fmedium.com\u002Fraycastapp\u002Fhow-we-built-an-app-update-flow-our-users-love-89820602e8fe",[98],[2332],{"type":43,"value":2329},{"type":43,"value":102},{"type":34,"tag":35,"props":2335,"children":2336},{},[2337],{"type":34,"tag":39,"props":2338,"children":2339},{},[2340],{"type":43,"value":472},{"type":34,"tag":297,"props":2342,"children":2343},{},[2344,2354],{"type":34,"tag":301,"props":2345,"children":2346},{},[2347,2352],{"type":34,"tag":39,"props":2348,"children":2349},{},[2350],{"type":43,"value":2351},"The update where the person already is",{"type":43,"value":2353}," (D4, D11): the tray menu.",{"type":34,"tag":301,"props":2355,"children":2356},{},[2357,2362],{"type":34,"tag":39,"props":2358,"children":2359},{},[2360],{"type":43,"value":2361},"Notes on the first open after any restart",{"type":43,"value":2363},", not only after a quiet install.",{"type":34,"tag":35,"props":2365,"children":2366},{},[2367],{"type":34,"tag":39,"props":2368,"children":2369},{},[2370],{"type":43,"value":513},{"type":34,"tag":297,"props":2372,"children":2373},{},[2374],{"type":34,"tag":301,"props":2375,"children":2376},{},[2377],{"type":34,"tag":39,"props":2378,"children":2379},{},[2380],{"type":43,"value":2381},"No \"not now\" and no \"only when I click\".",{"type":34,"tag":114,"props":2383,"children":2385},{"id":2384},"part-b-early-access-against-staged-general-release",[2386],{"type":43,"value":2387},"Part B. Early access against staged general release",{"type":34,"tag":121,"props":2389,"children":2391},{"id":2390},"_8-vs-code-insiders",[2392],{"type":43,"value":20},{"type":34,"tag":35,"props":2394,"children":2395},{},[2396,2400],{"type":34,"tag":39,"props":2397,"children":2398},{},[2399],{"type":43,"value":133},{"type":43,"value":2401}," A second VS Code built nightly, installed beside Stable with its own settings: the open-door fast track.",{"type":34,"tag":137,"props":2403,"children":2404},{},[2405,2421],{"type":34,"tag":141,"props":2406,"children":2407},{},[2408],{"type":34,"tag":145,"props":2409,"children":2410},{},[2411,2416],{"type":34,"tag":149,"props":2412,"children":2413},{},[2414],{"type":43,"value":2415},"Track",{"type":34,"tag":149,"props":2417,"children":2418},{},[2419],{"type":43,"value":2420},"VS Code Insiders",{"type":34,"tag":160,"props":2422,"children":2423},{},[2424,2437,2450,2463,2476,2489],{"type":34,"tag":145,"props":2425,"children":2426},{},[2427,2432],{"type":34,"tag":167,"props":2428,"children":2429},{},[2430],{"type":43,"value":2431},"Who is in the track",{"type":34,"tag":167,"props":2433,"children":2434},{},[2435],{"type":43,"value":2436},"Anyone who installs it.",{"type":34,"tag":145,"props":2438,"children":2439},{},[2440,2445],{"type":34,"tag":167,"props":2441,"children":2442},{},[2443],{"type":43,"value":2444},"How they join and leave",{"type":34,"tag":167,"props":2446,"children":2447},{},[2448],{"type":43,"value":2449},"Install the second app; leave by using Stable. On the web only, a switch with a reload.",{"type":34,"tag":145,"props":2451,"children":2452},{},[2453,2458],{"type":34,"tag":167,"props":2454,"children":2455},{},[2456],{"type":43,"value":2457},"What they see",{"type":34,"tag":167,"props":2459,"children":2460},{},[2461],{"type":43,"value":2462},"Nightly builds; separate settings, extensions and sync.",{"type":34,"tag":145,"props":2464,"children":2465},{},[2466,2471],{"type":34,"tag":167,"props":2467,"children":2468},{},[2469],{"type":43,"value":2470},"Cadence",{"type":34,"tag":167,"props":2472,"children":2473},{},[2474],{"type":43,"value":2475},"Nightly; Stable weekly.",{"type":34,"tag":145,"props":2477,"children":2478},{},[2479,2484],{"type":34,"tag":167,"props":2480,"children":2481},{},[2482],{"type":43,"value":2483},"How rollout is controlled and halted",{"type":34,"tag":167,"props":2485,"children":2486},{},[2487],{"type":43,"value":2488},"Not documented to users.",{"type":34,"tag":145,"props":2490,"children":2491},{},[2492,2497],{"type":34,"tag":167,"props":2493,"children":2494},{},[2495],{"type":43,"value":2496},"How the mature version differs",{"type":34,"tag":167,"props":2498,"children":2499},{},[2500,2502,2507],{"type":43,"value":2501},"Stable: weekly, per-version notes, ",{"type":34,"tag":53,"props":2503,"children":2505},{"className":2504},[],[2506],{"type":43,"value":746},{"type":43,"value":2508}," policy.",{"type":34,"tag":35,"props":2510,"children":2511},{},[2512],{"type":34,"tag":39,"props":2513,"children":2514},{},[2515],{"type":43,"value":295},{"type":34,"tag":297,"props":2517,"children":2518},{},[2519,2534],{"type":34,"tag":301,"props":2520,"children":2521},{},[2522,2524,2527,2533],{"type":43,"value":2523},"Insiders \"installs side by side to your stable VS Code install and has isolated settings, configurations, and extensions … updated nightly so you'll get the latest bug fixes and feature updates from the day before.\"",{"type":34,"tag":91,"props":2525,"children":2526},{},[],{"type":34,"tag":48,"props":2528,"children":2531},{"href":2529,"rel":2530},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fvscode-docs\u002Fmain\u002Fdocs\u002Fsupporting\u002Ffaq.md",[98],[2532],{"type":43,"value":2529},{"type":43,"value":316},{"type":34,"tag":301,"props":2535,"children":2536},{},[2537,2539,2542,2548],{"type":43,"value":2538},"The web switch confirms \"Changing the version requires a reload to take effect\" and offers a separate Insiders sync service.",{"type":34,"tag":91,"props":2540,"children":2541},{},[],{"type":34,"tag":48,"props":2543,"children":2546},{"href":2544,"rel":2545},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fvscode\u002Fmain\u002Fsrc\u002Fvs\u002Fworkbench\u002Fcontrib\u002Fupdate\u002Fbrowser\u002Fupdate.ts",[98],[2547],{"type":43,"value":2544},{"type":43,"value":316},{"type":34,"tag":35,"props":2550,"children":2551},{},[2552,2556,2558,2563],{"type":34,"tag":39,"props":2553,"children":2554},{},[2555],{"type":43,"value":472},{"type":43,"value":2557}," ",{"type":34,"tag":39,"props":2559,"children":2560},{},[2561],{"type":43,"value":2562},"Say what the track gives",{"type":43,"value":2564},": \"the fixes from the day before\" is the honest first line of our partner notes.",{"type":34,"tag":35,"props":2566,"children":2567},{},[2568,2572,2573,2578],{"type":34,"tag":39,"props":2569,"children":2570},{},[2571],{"type":43,"value":513},{"type":43,"value":2557},{"type":34,"tag":39,"props":2574,"children":2575},{},[2576],{"type":43,"value":2577},"The second app.",{"type":43,"value":2579}," For us it means a second inbox and footer over one sensor (question 13).",{"type":34,"tag":121,"props":2581,"children":2583},{"id":2582},"_9-chromes-channels",[2584],{"type":43,"value":21},{"type":34,"tag":35,"props":2586,"children":2587},{},[2588,2592],{"type":34,"tag":39,"props":2589,"children":2590},{},[2591],{"type":43,"value":133},{"type":43,"value":2593}," Canary, Dev, Beta and Stable, plus Extended Stable for enterprises, on a fixed calendar, with a staged Stable rollout and the most detailed restart policy here.",{"type":34,"tag":137,"props":2595,"children":2596},{},[2597,2612],{"type":34,"tag":141,"props":2598,"children":2599},{},[2600],{"type":34,"tag":145,"props":2601,"children":2602},{},[2603,2607],{"type":34,"tag":149,"props":2604,"children":2605},{},[2606],{"type":43,"value":2415},{"type":34,"tag":149,"props":2608,"children":2609},{},[2610],{"type":43,"value":2611},"Chrome",{"type":34,"tag":160,"props":2613,"children":2614},{},[2615,2627,2639,2651,2663,2675],{"type":34,"tag":145,"props":2616,"children":2617},{},[2618,2622],{"type":34,"tag":167,"props":2619,"children":2620},{},[2621],{"type":43,"value":2431},{"type":34,"tag":167,"props":2623,"children":2624},{},[2625],{"type":43,"value":2626},"Canary, Dev, Beta: anyone. Stable: everyone. Extended Stable: enterprises, by policy.",{"type":34,"tag":145,"props":2628,"children":2629},{},[2630,2634],{"type":34,"tag":167,"props":2631,"children":2632},{},[2633],{"type":43,"value":2444},{"type":34,"tag":167,"props":2635,"children":2636},{},[2637],{"type":43,"value":2638},"Install the channel's build, side by side; going back can mean deleting a profile.",{"type":34,"tag":145,"props":2640,"children":2641},{},[2642,2646],{"type":34,"tag":167,"props":2643,"children":2644},{},[2645],{"type":43,"value":2457},{"type":34,"tag":167,"props":2647,"children":2648},{},[2649],{"type":43,"value":2650},"Each channel's builds; Stable rolls out as two identical builds that differ only in build number.",{"type":34,"tag":145,"props":2652,"children":2653},{},[2654,2658],{"type":34,"tag":167,"props":2655,"children":2656},{},[2657],{"type":43,"value":2470},{"type":34,"tag":167,"props":2659,"children":2660},{},[2661],{"type":43,"value":2662},"A milestone to Stable every two weeks, weekly refreshes, two weeks in Beta, Extended Stable every eight weeks.",{"type":34,"tag":145,"props":2664,"children":2665},{},[2666,2670],{"type":34,"tag":167,"props":2667,"children":2668},{},[2669],{"type":43,"value":2483},{"type":34,"tag":167,"props":2671,"children":2672},{},[2673],{"type":43,"value":2674},"Early Stable to \"a small percentage\"; all users \"within one to two weeks unless major issues arise\".",{"type":34,"tag":145,"props":2676,"children":2677},{},[2678,2682],{"type":34,"tag":167,"props":2679,"children":2680},{},[2681],{"type":43,"value":2496},{"type":34,"tag":167,"props":2683,"children":2684},{},[2685,2687,2693],{"type":43,"value":2686},"Enterprise policy: Extended Stable, ",{"type":34,"tag":53,"props":2688,"children":2690},{"className":2689},[],[2691],{"type":43,"value":2692},"RelaunchNotification",{"type":43,"value":2694}," recommended or required, with a period.",{"type":34,"tag":35,"props":2696,"children":2697},{},[2698],{"type":34,"tag":39,"props":2699,"children":2700},{},[2701],{"type":43,"value":295},{"type":34,"tag":297,"props":2703,"children":2704},{},[2705,2720,2735],{"type":34,"tag":301,"props":2706,"children":2707},{},[2708,2710,2713,2719],{"type":43,"value":2709},"\"Chrome ships a new milestone … to the stable channel every two weeks\"; \"weekly updates (called refreshes)\"; Extended Stable is \"only available to enterprises\"; the rollout uses \"two separate builds which are identical, except for the build number\".",{"type":34,"tag":91,"props":2711,"children":2712},{},[],{"type":34,"tag":48,"props":2714,"children":2717},{"href":2715,"rel":2716},"https:\u002F\u002Fraw.githubusercontent.com\u002Fchromium\u002Fchromium\u002Fmain\u002Fdocs\u002Fprocess\u002Frelease_cycle.md",[98],[2718],{"type":43,"value":2715},{"type":43,"value":316},{"type":34,"tag":301,"props":2721,"children":2722},{},[2723,2725,2728,2734],{"type":43,"value":2724},"Restart strings: \"A Chrome update has been available for # days\"; \"Your administrator asks that you relaunch Chrome to apply this update\"; \"Relaunch Chrome within # days\"; \"Chrome will update when your screen is unused\"; \"You can relaunch now, or set Chrome to update the next time your screen remains on and unused for 5 minutes.\"",{"type":34,"tag":91,"props":2726,"children":2727},{},[],{"type":34,"tag":48,"props":2729,"children":2732},{"href":2730,"rel":2731},"https:\u002F\u002Fraw.githubusercontent.com\u002Fchromium\u002Fchromium\u002Fmain\u002Fchrome\u002Fapp\u002Fgoogle_chrome_strings.grd",[98],[2733],{"type":43,"value":2730},{"type":43,"value":316},{"type":34,"tag":301,"props":2736,"children":2737},{},[2738,2740,2743,2749,2750,2753,2759],{"type":43,"value":2739},"Channels \"may be run in parallel\" with their own user data. After a downgrade, \"You'll have to delete your profile data.\" Canary is daily (cited from memory, not re-read today).",{"type":34,"tag":91,"props":2741,"children":2742},{},[],{"type":34,"tag":48,"props":2744,"children":2747},{"href":2745,"rel":2746},"https:\u002F\u002Fwww.chromium.org\u002Fchrome-release-channels",[98],[2748],{"type":43,"value":2745},{"type":43,"value":102},{"type":34,"tag":91,"props":2751,"children":2752},{},[],{"type":34,"tag":48,"props":2754,"children":2757},{"href":2755,"rel":2756},"https:\u002F\u002Fwww.pcworld.com\u002Farticle\u002F2463916\u002Fhow-to-switch-chrome-channels-to-test-new-features-before-theyre-cool.html",[98],[2758],{"type":43,"value":2755},{"type":43,"value":102},{"type":34,"tag":35,"props":2761,"children":2762},{},[2763],{"type":34,"tag":39,"props":2764,"children":2765},{},[2766],{"type":43,"value":472},{"type":34,"tag":297,"props":2768,"children":2769},{},[2770,2780,2790],{"type":34,"tag":301,"props":2771,"children":2772},{},[2773,2778],{"type":34,"tag":39,"props":2774,"children":2775},{},[2776],{"type":43,"value":2777},"\"Available for # days\"",{"type":43,"value":2779}," (question 9).",{"type":34,"tag":301,"props":2781,"children":2782},{},[2783,2788],{"type":34,"tag":39,"props":2784,"children":2785},{},[2786],{"type":43,"value":2787},"\"Update when your screen is unused\" as the person's choice",{"type":43,"value":2789}," (question 6).",{"type":34,"tag":301,"props":2791,"children":2792},{},[2793,2798],{"type":34,"tag":39,"props":2794,"children":2795},{},[2796],{"type":43,"value":2797},"A calendar, and the organisation's relaunch window, later",{"type":43,"value":2799},": shown with the days counting down.",{"type":34,"tag":35,"props":2801,"children":2802},{},[2803],{"type":34,"tag":39,"props":2804,"children":2805},{},[2806],{"type":43,"value":513},{"type":34,"tag":297,"props":2808,"children":2809},{},[2810],{"type":34,"tag":301,"props":2811,"children":2812},{},[2813,2818],{"type":34,"tag":39,"props":2814,"children":2815},{},[2816],{"type":43,"value":2817},"Required relaunch.",{"type":43,"value":2819}," Nothing restarts Qpoint on our say-so (R1).",{"type":34,"tag":121,"props":2821,"children":2823},{"id":2822},"_10-testflight",[2824],{"type":43,"value":22},{"type":34,"tag":35,"props":2826,"children":2827},{},[2828,2832],{"type":34,"tag":39,"props":2829,"children":2830},{},[2831],{"type":43,"value":133},{"type":43,"value":2833}," Apple's beta service, and the model for a small, named early cohort: an internal team, invited external testers, a note per build, builds that expire.",{"type":34,"tag":137,"props":2835,"children":2836},{},[2837,2852],{"type":34,"tag":141,"props":2838,"children":2839},{},[2840],{"type":34,"tag":145,"props":2841,"children":2842},{},[2843,2847],{"type":34,"tag":149,"props":2844,"children":2845},{},[2846],{"type":43,"value":2415},{"type":34,"tag":149,"props":2848,"children":2849},{},[2850],{"type":43,"value":2851},"TestFlight",{"type":34,"tag":160,"props":2853,"children":2854},{},[2855,2867,2879,2891,2903,2915],{"type":34,"tag":145,"props":2856,"children":2857},{},[2858,2862],{"type":34,"tag":167,"props":2859,"children":2860},{},[2861],{"type":43,"value":2431},{"type":34,"tag":167,"props":2863,"children":2864},{},[2865],{"type":43,"value":2866},"Internal: up to 100 App Store Connect users. External: up to 10,000 by invitation or public link.",{"type":34,"tag":145,"props":2868,"children":2869},{},[2870,2874],{"type":34,"tag":167,"props":2871,"children":2872},{},[2873],{"type":43,"value":2444},{"type":34,"tag":167,"props":2875,"children":2876},{},[2877],{"type":43,"value":2878},"Accept an invitation or link; the developer removes testers or expires builds.",{"type":34,"tag":145,"props":2880,"children":2881},{},[2882,2886],{"type":34,"tag":167,"props":2883,"children":2884},{},[2885],{"type":43,"value":2457},{"type":34,"tag":167,"props":2887,"children":2888},{},[2889],{"type":43,"value":2890},"The group's builds, with test information and a \"What to Test\" note per build.",{"type":34,"tag":145,"props":2892,"children":2893},{},[2894,2898],{"type":34,"tag":167,"props":2895,"children":2896},{},[2897],{"type":43,"value":2470},{"type":34,"tag":167,"props":2899,"children":2900},{},[2901],{"type":43,"value":2902},"Per upload; internal groups can receive every build automatically.",{"type":34,"tag":145,"props":2904,"children":2905},{},[2906,2910],{"type":34,"tag":167,"props":2907,"children":2908},{},[2909],{"type":43,"value":2483},{"type":34,"tag":167,"props":2911,"children":2912},{},[2913],{"type":43,"value":2914},"By group; the first external build needs App Review; any build can be expired; all stop after 90 days.",{"type":34,"tag":145,"props":2916,"children":2917},{},[2918,2922],{"type":34,"tag":167,"props":2919,"children":2920},{},[2921],{"type":43,"value":2496},{"type":34,"tag":167,"props":2923,"children":2924},{},[2925],{"type":43,"value":2926},"The App Store, with phased release (section 11).",{"type":34,"tag":35,"props":2928,"children":2929},{},[2930],{"type":34,"tag":39,"props":2931,"children":2932},{},[2933],{"type":43,"value":295},{"type":34,"tag":297,"props":2935,"children":2936},{},[2937,2952,2967],{"type":34,"tag":301,"props":2938,"children":2939},{},[2940,2942,2945,2951],{"type":43,"value":2941},"\"You can test a build for up to 90 days\"; \"external testers (up to 10,000 people) and internal testers (up to 100 App Store Connect users …)\"; for external groups \"A review is required only for the first build\"; test information includes \"an explanation of features to test\".",{"type":34,"tag":91,"props":2943,"children":2944},{},[],{"type":34,"tag":48,"props":2946,"children":2949},{"href":2947,"rel":2948},"https:\u002F\u002Fdeveloper.apple.com\u002Fhelp\u002Fapp-store-connect\u002Ftest-a-beta-version\u002Ftestflight-overview",[98],[2950],{"type":43,"value":2947},{"type":43,"value":316},{"type":34,"tag":301,"props":2953,"children":2954},{},[2955,2957,2960,2966],{"type":43,"value":2956},"\"Enable automatic distribution\" sends every build to an internal group; \"Builds marked as internal can only be added to internal tester groups.\"",{"type":34,"tag":91,"props":2958,"children":2959},{},[],{"type":34,"tag":48,"props":2961,"children":2964},{"href":2962,"rel":2963},"https:\u002F\u002Fdeveloper.apple.com\u002Fhelp\u002Fapp-store-connect\u002Ftest-a-beta-version\u002Fadd-internal-testers",[98],[2965],{"type":43,"value":2962},{"type":43,"value":316},{"type":34,"tag":301,"props":2968,"children":2969},{},[2970,2972,2975,2981],{"type":43,"value":2971},"The \"What to Test\" note shows with the build; no official length limit found.",{"type":34,"tag":91,"props":2973,"children":2974},{},[],{"type":34,"tag":48,"props":2976,"children":2979},{"href":2977,"rel":2978},"https:\u002F\u002Fhelm-app.com\u002Fguides\u002Fwrite-what-to-test\u002F",[98],[2980],{"type":43,"value":2977},{"type":43,"value":102},{"type":34,"tag":35,"props":2983,"children":2984},{},[2985],{"type":34,"tag":39,"props":2986,"children":2987},{},[2988],{"type":43,"value":472},{"type":34,"tag":297,"props":2990,"children":2991},{},[2992,3002],{"type":34,"tag":301,"props":2993,"children":2994},{},[2995,3000],{"type":34,"tag":39,"props":2996,"children":2997},{},[2998],{"type":43,"value":2999},"\"What to try\" with each partner build",{"type":43,"value":3001},", added to D6's three parts.",{"type":34,"tag":301,"props":3003,"children":3004},{},[3005,3010,3011,3017,3019,3025,3027,3033],{"type":34,"tag":39,"props":3006,"children":3007},{},[3008],{"type":43,"value":3009},"Audiences as groups",{"type":43,"value":650},{"type":34,"tag":53,"props":3012,"children":3014},{"className":3013},[],[3015],{"type":43,"value":3016},"notes.audience",{"type":43,"value":3018}," can grow from ",{"type":34,"tag":53,"props":3020,"children":3022},{"className":3021},[],[3023],{"type":43,"value":3024},"partners | public",{"type":43,"value":3026}," to ",{"type":34,"tag":53,"props":3028,"children":3030},{"className":3029},[],[3031],{"type":43,"value":3032},"team | partners | public",{"type":43,"value":3034},".",{"type":34,"tag":35,"props":3036,"children":3037},{},[3038],{"type":34,"tag":39,"props":3039,"children":3040},{},[3041],{"type":43,"value":513},{"type":34,"tag":297,"props":3043,"children":3044},{},[3045,3055],{"type":34,"tag":301,"props":3046,"children":3047},{},[3048,3053],{"type":34,"tag":39,"props":3049,"children":3050},{},[3051],{"type":43,"value":3052},"Expiry as a hard stop.",{"type":43,"value":3054}," A sensor that stops is a hole in governance (question 14).",{"type":34,"tag":301,"props":3056,"children":3057},{},[3058,3063],{"type":34,"tag":39,"props":3059,"children":3060},{},[3061],{"type":43,"value":3062},"Third-party review before the cohort sees a build.",{"type":43,"value":3064}," The gate is the person who cuts it (D7).",{"type":34,"tag":121,"props":3066,"children":3068},{"id":3067},"_11-staged-percentages-sparkle-the-app-store-google-play",[3069],{"type":43,"value":23},{"type":34,"tag":35,"props":3071,"children":3072},{},[3073,3077],{"type":34,"tag":39,"props":3074,"children":3075},{},[3076],{"type":43,"value":133},{"type":43,"value":3078}," Three ways of offering one version to a growing share of installs. Sparkle does it in the client, Apple over seven fixed days, Google by percentage with a halt.",{"type":34,"tag":137,"props":3080,"children":3081},{},[3082,3107],{"type":34,"tag":141,"props":3083,"children":3084},{},[3085],{"type":34,"tag":145,"props":3086,"children":3087},{},[3088,3092,3097,3102],{"type":34,"tag":149,"props":3089,"children":3090},{},[3091],{"type":43,"value":2415},{"type":34,"tag":149,"props":3093,"children":3094},{},[3095],{"type":43,"value":3096},"Sparkle",{"type":34,"tag":149,"props":3098,"children":3099},{},[3100],{"type":43,"value":3101},"App Store phased release",{"type":34,"tag":149,"props":3103,"children":3104},{},[3105],{"type":43,"value":3106},"Google Play staged rollout",{"type":34,"tag":160,"props":3108,"children":3109},{},[3110,3132,3154,3176,3205,3227],{"type":34,"tag":145,"props":3111,"children":3112},{},[3113,3117,3122,3127],{"type":34,"tag":167,"props":3114,"children":3115},{},[3116],{"type":43,"value":2431},{"type":34,"tag":167,"props":3118,"children":3119},{},[3120],{"type":43,"value":3121},"Seven groups; a random id kept on the install, never sent.",{"type":34,"tag":167,"props":3123,"children":3124},{},[3125],{"type":43,"value":3126},"\"A random sample of users with automatic updates on\", not told.",{"type":34,"tag":167,"props":3128,"children":3129},{},[3130],{"type":43,"value":3131},"A percentage the developer sets.",{"type":34,"tag":145,"props":3133,"children":3134},{},[3135,3139,3144,3149],{"type":34,"tag":167,"props":3136,"children":3137},{},[3138],{"type":43,"value":2444},{"type":34,"tag":167,"props":3140,"children":3141},{},[3142],{"type":43,"value":3143},"Assigned; a manual check skips the wait.",{"type":34,"tag":167,"props":3145,"children":3146},{},[3147],{"type":43,"value":3148},"Assigned; anyone can download it manually.",{"type":34,"tag":167,"props":3150,"children":3151},{},[3152],{"type":43,"value":3153},"Assigned; test tracks first (internal, up to 100).",{"type":34,"tag":145,"props":3155,"children":3156},{},[3157,3161,3166,3171],{"type":34,"tag":167,"props":3158,"children":3159},{},[3160],{"type":43,"value":2457},{"type":34,"tag":167,"props":3162,"children":3163},{},[3164],{"type":43,"value":3165},"An alert with notes; Skip This Version, except for critical updates.",{"type":34,"tag":167,"props":3167,"children":3168},{},[3169],{"type":43,"value":3170},"The update and its notes.",{"type":34,"tag":167,"props":3172,"children":3173},{},[3174],{"type":43,"value":3175},"The update; an in-app prompt by priority, 0 to 5.",{"type":34,"tag":145,"props":3177,"children":3178},{},[3179,3183,3195,3200],{"type":34,"tag":167,"props":3180,"children":3181},{},[3182],{"type":43,"value":2470},{"type":34,"tag":167,"props":3184,"children":3185},{},[3186,3188,3194],{"type":43,"value":3187},"One group per ",{"type":34,"tag":53,"props":3189,"children":3191},{"className":3190},[],[3192],{"type":43,"value":3193},"phasedRolloutInterval",{"type":43,"value":3034},{"type":34,"tag":167,"props":3196,"children":3197},{},[3198],{"type":43,"value":3199},"1, 2, 5, 10, 20, 50, 100% on days 1 to 7.",{"type":34,"tag":167,"props":3201,"children":3202},{},[3203],{"type":43,"value":3204},"As the developer raises it.",{"type":34,"tag":145,"props":3206,"children":3207},{},[3208,3212,3217,3222],{"type":34,"tag":167,"props":3209,"children":3210},{},[3211],{"type":43,"value":2483},{"type":34,"tag":167,"props":3213,"children":3214},{},[3215],{"type":43,"value":3216},"Edit the feed; critical and manual checks bypass.",{"type":34,"tag":167,"props":3218,"children":3219},{},[3220],{"type":43,"value":3221},"Pause up to 30 days in total; Release to All Users.",{"type":34,"tag":167,"props":3223,"children":3224},{},[3225],{"type":43,"value":3226},"Halt: nobody new gets it; those who have it keep it.",{"type":34,"tag":145,"props":3228,"children":3229},{},[3230,3234,3239,3244],{"type":34,"tag":167,"props":3231,"children":3232},{},[3233],{"type":43,"value":2496},{"type":34,"tag":167,"props":3235,"children":3236},{},[3237],{"type":43,"value":3238},"This is it; channels branch off the default and return.",{"type":34,"tag":167,"props":3240,"children":3241},{},[3242],{"type":43,"value":3243},"This is it.",{"type":34,"tag":167,"props":3245,"children":3246},{},[3247],{"type":43,"value":3248},"This is it, with priority and staleness.",{"type":34,"tag":35,"props":3250,"children":3251},{},[3252],{"type":34,"tag":39,"props":3253,"children":3254},{},[3255],{"type":43,"value":295},{"type":34,"tag":297,"props":3257,"children":3258},{},[3259,3274,3289,3314,3329],{"type":34,"tag":301,"props":3260,"children":3261},{},[3262,3264,3267,3273],{"type":43,"value":3263},"Sparkle \"hardcodes the number of groups to 7\"; the group id \"is not transmitted to servers\"; phases \"do not take effect for updates that are marked critical or for when the user manually checks\"; critical updates \"do not let the user skip them\"; \"an updater cannot exclude itself from the default channel\".",{"type":34,"tag":91,"props":3265,"children":3266},{},[],{"type":34,"tag":48,"props":3268,"children":3271},{"href":3269,"rel":3270},"https:\u002F\u002Fraw.githubusercontent.com\u002Fsparkle-project\u002Fsparkle-project.github.io\u002Fmaster\u002Fdocumentation\u002Fpublishing\u002Findex.md",[98],[3272],{"type":43,"value":3269},{"type":43,"value":316},{"type":34,"tag":301,"props":3275,"children":3276},{},[3277,3279,3282,3288],{"type":43,"value":3278},"Sparkle's alert: \"%@ %@ is now available—you have %@.\", \"Install Update\", \"Remind Me Later\", \"Skip This Version\", \"Install on Quit\"; first-run, \"Check for updates automatically?\"",{"type":34,"tag":91,"props":3280,"children":3281},{},[],{"type":34,"tag":48,"props":3283,"children":3286},{"href":3284,"rel":3285},"https:\u002F\u002Fraw.githubusercontent.com\u002Fsparkle-project\u002FSparkle\u002F2.x\u002FSparkle\u002FBase.lproj\u002FSparkle.strings",[98],[3287],{"type":43,"value":3284},{"type":43,"value":316},{"type":34,"tag":301,"props":3290,"children":3291},{},[3292,3294,3297,3303,3304,3307,3313],{"type":43,"value":3293},"Sparkle asks for automatic checks \"on second launch\"; automatic installs default to off. For apps without a Dock icon, a scheduled alert never steals focus, and gentle reminders use a badge instead.",{"type":34,"tag":91,"props":3295,"children":3296},{},[],{"type":34,"tag":48,"props":3298,"children":3301},{"href":3299,"rel":3300},"https:\u002F\u002Fraw.githubusercontent.com\u002Fsparkle-project\u002Fsparkle-project.github.io\u002Fmaster\u002Fdocumentation\u002Fcustomization\u002Findex.md",[98],[3302],{"type":43,"value":3299},{"type":43,"value":316},{"type":34,"tag":91,"props":3305,"children":3306},{},[],{"type":34,"tag":48,"props":3308,"children":3311},{"href":3309,"rel":3310},"https:\u002F\u002Fraw.githubusercontent.com\u002Fsparkle-project\u002Fsparkle-project.github.io\u002Fmaster\u002Fdocumentation\u002Fgentle-reminders\u002Findex.md",[98],[3312],{"type":43,"value":3309},{"type":43,"value":316},{"type":34,"tag":301,"props":3315,"children":3316},{},[3317,3319,3322,3328],{"type":43,"value":3318},"Apple: 1%, 2%, 5%, 10%, 20%, 50%, 100% over 7 days, \"without any notification of their participation\"; \"pause the release for up to 30 days\"; it \"can be manually downloaded … by anyone at any time\".",{"type":34,"tag":91,"props":3320,"children":3321},{},[],{"type":34,"tag":48,"props":3323,"children":3326},{"href":3324,"rel":3325},"https:\u002F\u002Fdeveloper.apple.com\u002Fhelp\u002Fapp-store-connect\u002Fupdate-your-app\u002Frelease-a-version-update-in-phases",[98],[3327],{"type":43,"value":3324},{"type":43,"value":316},{"type":34,"tag":301,"props":3330,"children":3331},{},[3332,3334,3340,3342,3348,3350,3353,3359,3360,3363,3369],{"type":43,"value":3333},"Play: after a halt, \"no additional users will receive the app version … Users who already received ",{"type":34,"tag":3335,"props":3336,"children":3337},"span",{},[3338],{"type":43,"value":3339},"it",{"type":43,"value":3341}," will remain on that version.\" Priority runs \"between 0 and 5\"; it \"cannot be changed later\". ",{"type":34,"tag":53,"props":3343,"children":3345},{"className":3344},[],[3346],{"type":43,"value":3347},"clientVersionStalenessDays()",{"type":43,"value":3349}," lets the app wait \"a few days before notifying\".",{"type":34,"tag":91,"props":3351,"children":3352},{},[],{"type":34,"tag":48,"props":3354,"children":3357},{"href":3355,"rel":3356},"https:\u002F\u002Fsupport.google.com\u002Fgoogleplay\u002Fandroid-developer\u002Fanswer\u002F6346149",[98],[3358],{"type":43,"value":3355},{"type":43,"value":102},{"type":34,"tag":91,"props":3361,"children":3362},{},[],{"type":34,"tag":48,"props":3364,"children":3367},{"href":3365,"rel":3366},"https:\u002F\u002Fdeveloper.android.com\u002Fguide\u002Fplaycore\u002Fin-app-updates\u002Fkotlin-java",[98],[3368],{"type":43,"value":3365},{"type":43,"value":316},{"type":34,"tag":35,"props":3371,"children":3372},{},[3373],{"type":34,"tag":39,"props":3374,"children":3375},{},[3376],{"type":43,"value":472},{"type":34,"tag":297,"props":3378,"children":3379},{},[3380,3390,3400,3416,3433],{"type":34,"tag":301,"props":3381,"children":3382},{},[3383,3388],{"type":34,"tag":39,"props":3384,"children":3385},{},[3386],{"type":43,"value":3387},"The share drawn on the install and never sent",{"type":43,"value":3389}," (Sparkle): the plan's stable number per install, with the privacy sentence.",{"type":34,"tag":301,"props":3391,"children":3392},{},[3393,3398],{"type":34,"tag":39,"props":3394,"children":3395},{},[3396],{"type":43,"value":3397},"A manual check bypasses the stage",{"type":43,"value":3399}," (Apple, Sparkle), as the plan says.",{"type":34,"tag":301,"props":3401,"children":3402},{},[3403,3414],{"type":34,"tag":39,"props":3404,"children":3405},{},[3406,3408],{"type":43,"value":3407},"Apple's curve from ",{"type":34,"tag":53,"props":3409,"children":3411},{"className":3410},[],[3412],{"type":43,"value":3413},"published_at",{"type":43,"value":3415},", so CI never edits the feed daily.",{"type":34,"tag":301,"props":3417,"children":3418},{},[3419,3424,3426,3432],{"type":34,"tag":39,"props":3420,"children":3421},{},[3422],{"type":43,"value":3423},"Halt as \"nobody new\"",{"type":43,"value":3425}," (Play): the plan's ",{"type":34,"tag":53,"props":3427,"children":3429},{"className":3428},[],[3430],{"type":43,"value":3431},"pulled",{"type":43,"value":3034},{"type":34,"tag":301,"props":3434,"children":3435},{},[3436,3441,3443,3449],{"type":34,"tag":39,"props":3437,"children":3438},{},[3439],{"type":43,"value":3440},"Priority set once per release; critical unskippable and unstaged",{"type":43,"value":3442}," (Play, Sparkle): question 12 and ",{"type":34,"tag":53,"props":3444,"children":3446},{"className":3445},[],[3447],{"type":43,"value":3448},"min_version",{"type":43,"value":3034},{"type":34,"tag":35,"props":3451,"children":3452},{},[3453],{"type":34,"tag":39,"props":3454,"children":3455},{},[3456],{"type":43,"value":513},{"type":34,"tag":297,"props":3458,"children":3459},{},[3460,3470],{"type":34,"tag":301,"props":3461,"children":3462},{},[3463,3468],{"type":34,"tag":39,"props":3464,"children":3465},{},[3466],{"type":43,"value":3467},"Skip This Version",{"type":43,"value":3469}," (R6, D8).",{"type":34,"tag":301,"props":3471,"children":3472},{},[3473,3478],{"type":34,"tag":39,"props":3474,"children":3475},{},[3476],{"type":43,"value":3477},"The second-launch question.",{"type":43,"value":3479}," A default with a setting instead (D1).",{"type":34,"tag":121,"props":3481,"children":3483},{"id":3482},"_12-early-access-in-b2b-slacks-desktop-beta-and-microsoft-365-frontier",[3484],{"type":43,"value":24},{"type":34,"tag":35,"props":3486,"children":3487},{},[3488,3492],{"type":34,"tag":39,"props":3489,"children":3490},{},[3491],{"type":43,"value":133},{"type":43,"value":3493}," Two ways a business product lets some people go first. Slack's is personal: anyone opts in. Microsoft's is organisational: the administrator chooses who is in Frontier, and the rest stay on Standard or Deferred. Frontier replaces Targeted release, which retires in January 2027. No design-partner update track was found to cite; c62's partner era is our own.",{"type":34,"tag":137,"props":3495,"children":3496},{},[3497,3517],{"type":34,"tag":141,"props":3498,"children":3499},{},[3500],{"type":34,"tag":145,"props":3501,"children":3502},{},[3503,3507,3512],{"type":34,"tag":149,"props":3504,"children":3505},{},[3506],{"type":43,"value":2415},{"type":34,"tag":149,"props":3508,"children":3509},{},[3510],{"type":43,"value":3511},"Slack desktop beta",{"type":34,"tag":149,"props":3513,"children":3514},{},[3515],{"type":43,"value":3516},"Microsoft 365 Frontier · Standard · Deferred",{"type":34,"tag":160,"props":3518,"children":3519},{},[3520,3537,3554,3571,3588,3605],{"type":34,"tag":145,"props":3521,"children":3522},{},[3523,3527,3532],{"type":34,"tag":167,"props":3524,"children":3525},{},[3526],{"type":43,"value":2431},{"type":34,"tag":167,"props":3528,"children":3529},{},[3530],{"type":43,"value":3531},"Anyone who opts in.",{"type":34,"tag":167,"props":3533,"children":3534},{},[3535],{"type":43,"value":3536},"The users an admin enrols; others Standard or Deferred.",{"type":34,"tag":145,"props":3538,"children":3539},{},[3540,3544,3549],{"type":34,"tag":167,"props":3541,"children":3542},{},[3543],{"type":43,"value":2444},{"type":34,"tag":167,"props":3545,"children":3546},{},[3547],{"type":43,"value":3548},"\"Opt into beta\" on slack.com\u002Fbeta; leave in Preferences › Advanced.",{"type":34,"tag":167,"props":3550,"children":3551},{},[3552],{"type":43,"value":3553},"The admin centre's release preferences.",{"type":34,"tag":145,"props":3555,"children":3556},{},[3557,3561,3566],{"type":34,"tag":167,"props":3558,"children":3559},{},[3560],{"type":43,"value":2457},{"type":34,"tag":167,"props":3562,"children":3563},{},[3564],{"type":43,"value":3565},"Beta builds; separate beta notes per OS.",{"type":34,"tag":167,"props":3567,"children":3568},{},[3569],{"type":43,"value":3570},"Features early (Frontier); major updates held about 30 days (Deferred).",{"type":34,"tag":145,"props":3572,"children":3573},{},[3574,3578,3583],{"type":34,"tag":167,"props":3575,"children":3576},{},[3577],{"type":43,"value":2470},{"type":34,"tag":167,"props":3579,"children":3580},{},[3581],{"type":43,"value":3582},"The latest beta within 6 hours.",{"type":34,"tag":167,"props":3584,"children":3585},{},[3586],{"type":43,"value":3587},"Per feature; Deferred about 30 days behind.",{"type":34,"tag":145,"props":3589,"children":3590},{},[3591,3595,3600],{"type":34,"tag":167,"props":3592,"children":3593},{},[3594],{"type":43,"value":2483},{"type":34,"tag":167,"props":3596,"children":3597},{},[3598],{"type":43,"value":3599},"By Slack; not documented to users.",{"type":34,"tag":167,"props":3601,"children":3602},{},[3603],{"type":43,"value":3604},"By the tenant's preferences.",{"type":34,"tag":145,"props":3606,"children":3607},{},[3608,3612,3623],{"type":34,"tag":167,"props":3609,"children":3610},{},[3611],{"type":43,"value":2496},{"type":34,"tag":167,"props":3613,"children":3614},{},[3615,3617,3622],{"type":43,"value":3616},"The stable app with ",{"type":34,"tag":53,"props":3618,"children":3620},{"className":3619},[],[3621],{"type":43,"value":1717},{"type":43,"value":3034},{"type":34,"tag":167,"props":3624,"children":3625},{},[3626],{"type":43,"value":3627},"This is it: a speed per group.",{"type":34,"tag":35,"props":3629,"children":3630},{},[3631],{"type":34,"tag":39,"props":3632,"children":3633},{},[3634],{"type":43,"value":295},{"type":34,"tag":297,"props":3636,"children":3637},{},[3638,3653],{"type":34,"tag":301,"props":3639,"children":3640},{},[3641,3643,3646,3652],{"type":43,"value":3642},"Beta members \"receive new builds … before they become available to the general public\"; the app will \"install the latest beta within 6 hours\"; opt out in Preferences › Advanced.",{"type":34,"tag":91,"props":3644,"children":3645},{},[],{"type":34,"tag":48,"props":3647,"children":3650},{"href":3648,"rel":3649},"https:\u002F\u002Fslack.com\u002Fhelp\u002Farticles\u002F226192087-Join-Slack%E2%80%99s-desktop-app-beta-program",[98],[3651],{"type":43,"value":3648},{"type":43,"value":102},{"type":34,"tag":301,"props":3654,"children":3655},{},[3656,3658,3661,3667,3668,3671,3677],{"type":43,"value":3657},"Administrators \"manage enrollment centrally, choosing users for early access, while others remain on Standard or Deferred\"; Deferred holds major updates about 30 days; \"Standard release should be the primary release channel for most customers.\"",{"type":34,"tag":91,"props":3659,"children":3660},{},[],{"type":34,"tag":48,"props":3662,"children":3665},{"href":3663,"rel":3664},"https:\u002F\u002Fmc.merill.net\u002Fmessage\u002FMC1490899",[98],[3666],{"type":43,"value":3663},{"type":43,"value":102},{"type":34,"tag":91,"props":3669,"children":3670},{},[],{"type":34,"tag":48,"props":3672,"children":3675},{"href":3673,"rel":3674},"https:\u002F\u002Flearn.microsoft.com\u002Fmicrosoft-365\u002Fadmin\u002Fmanage\u002Frelease-options-faq",[98],[3676],{"type":43,"value":3673},{"type":43,"value":102},{"type":34,"tag":35,"props":3679,"children":3680},{},[3681],{"type":34,"tag":39,"props":3682,"children":3683},{},[3684],{"type":43,"value":472},{"type":34,"tag":297,"props":3686,"children":3687},{},[3688,3698,3708],{"type":34,"tag":301,"props":3689,"children":3690},{},[3691,3696],{"type":34,"tag":39,"props":3692,"children":3693},{},[3694],{"type":43,"value":3695},"Leaving early access is a setting in the app",{"type":43,"value":3697},", beside the preference (D11, D12).",{"type":34,"tag":301,"props":3699,"children":3700},{},[3701,3706],{"type":34,"tag":39,"props":3702,"children":3703},{},[3704],{"type":43,"value":3705},"A speed per group, chosen by the organisation",{"type":43,"value":3707},": first, with everyone, a month later.",{"type":34,"tag":301,"props":3709,"children":3710},{},[3711,3716],{"type":34,"tag":39,"props":3712,"children":3713},{},[3714],{"type":43,"value":3715},"The default stated in the policy's own words",{"type":43,"value":3717},", so early access stays a choice.",{"type":34,"tag":35,"props":3719,"children":3720},{},[3721],{"type":34,"tag":39,"props":3722,"children":3723},{},[3724],{"type":43,"value":513},{"type":34,"tag":297,"props":3726,"children":3727},{},[3728],{"type":34,"tag":301,"props":3729,"children":3730},{},[3731,3736],{"type":34,"tag":39,"props":3732,"children":3733},{},[3734],{"type":43,"value":3735},"Early access as an opt-in download.",{"type":43,"value":3737}," In the partner era every install is a partner's; the one channel is theirs.",{"type":34,"tag":114,"props":3739,"children":3741},{"id":3740},"the-reading-against-the-model",[3742],{"type":43,"value":3743},"The reading against the model",{"type":34,"tag":121,"props":3745,"children":3747},{"id":3746},"what-the-reading-says-about-our-model",[3748],{"type":43,"value":25},{"type":34,"tag":35,"props":3750,"children":3751},{},[3752],{"type":43,"value":3753},"Each part of the model against what the precedents do. \"Stricter\" means ours asks more; \"thinner\" means a precedent carries something ours does not yet.",{"type":34,"tag":137,"props":3755,"children":3756},{},[3757,3778],{"type":34,"tag":141,"props":3758,"children":3759},{},[3760],{"type":34,"tag":145,"props":3761,"children":3762},{},[3763,3768,3773],{"type":34,"tag":149,"props":3764,"children":3765},{},[3766],{"type":43,"value":3767},"Part of the model",{"type":34,"tag":149,"props":3769,"children":3770},{},[3771],{"type":43,"value":3772},"What the precedents do",{"type":34,"tag":149,"props":3774,"children":3775},{},[3776],{"type":43,"value":3777},"Ours",{"type":34,"tag":160,"props":3779,"children":3780},{},[3781,3799,3817,3835,3853,3871,3888,3906],{"type":34,"tag":145,"props":3782,"children":3783},{},[3784,3789,3794],{"type":34,"tag":167,"props":3785,"children":3786},{},[3787],{"type":43,"value":3788},"The states (up to date · checking · available · downloading · ready to restart · installed · failed · offline · managed)",{"type":34,"tag":167,"props":3790,"children":3791},{},[3792],{"type":43,"value":3793},"Zed six, VS Code over a dozen, Firefox about ten, each with its own label; VS Code, Firefox and Zed name the managed cause.",{"type":34,"tag":167,"props":3795,"children":3796},{},[3797],{"type":43,"value":3798},"Equal on states, stricter on sentences (R4). Thinner: no state column in the history (Firefox).",{"type":34,"tag":145,"props":3800,"children":3801},{},[3802,3807,3812],{"type":34,"tag":167,"props":3803,"children":3804},{},[3805],{"type":43,"value":3806},"The preference (Automatically · Ask me first · Only when I click)",{"type":34,"tag":167,"props":3808,"children":3809},{},[3810],{"type":43,"value":3811},"On or off (Zed, 1Password), two values (Firefox), check timing (VS Code), none (Slack, Claude, Raycast). Default automatic everywhere but Sparkle.",{"type":34,"tag":167,"props":3813,"children":3814},{},[3815],{"type":43,"value":3816},"Stricter: three outcomes, checks always run.",{"type":34,"tag":145,"props":3818,"children":3819},{},[3820,3825,3830],{"type":34,"tag":167,"props":3821,"children":3822},{},[3823],{"type":43,"value":3824},"Installed silently, then what's new",{"type":34,"tag":167,"props":3826,"children":3827},{},[3828],{"type":43,"value":3829},"Zed: a toast. VS Code: a notes tab, or a title-bar tooltip under test. Raycast: notes after the relaunch. Firefox: history only. Claude: a log line.",{"type":34,"tag":167,"props":3831,"children":3832},{},[3833],{"type":43,"value":3834},"Between VS Code's experiment and Firefox's history (D2). Stricter than Claude.",{"type":34,"tag":145,"props":3836,"children":3837},{},[3838,3843,3848],{"type":34,"tag":167,"props":3839,"children":3840},{},[3841],{"type":43,"value":3842},"Restart",{"type":34,"tag":167,"props":3844,"children":3845},{},[3846],{"type":43,"value":3847},"\"Restart to Update\" everywhere. Escalation by clock: Firefox (4 and 8 days), Sparkle (a week), Claude (72 h, forced), Chrome (a period). Idle restarts: VS Code (guarded), Chrome (chosen), Claude (unguarded).",{"type":34,"tag":167,"props":3849,"children":3850},{},[3851],{"type":43,"value":3852},"Stricter: no modal, no deadline (R1). Thinner: D3 has no guard; Ask me first has no age.",{"type":34,"tag":145,"props":3854,"children":3855},{},[3856,3861,3866],{"type":34,"tag":167,"props":3857,"children":3858},{},[3859],{"type":43,"value":3860},"Notes and version",{"type":34,"tag":167,"props":3862,"children":3863},{},[3864],{"type":43,"value":3865},"VS Code: version, commit, date, Copy. Zed: a page per version, commits for Nightly. TestFlight: a note per build.",{"type":34,"tag":167,"props":3867,"children":3868},{},[3869],{"type":43,"value":3870},"Equal (D5, D6). Thinner: no \"what to try\".",{"type":34,"tag":145,"props":3872,"children":3873},{},[3874,3878,3883],{"type":34,"tag":167,"props":3875,"children":3876},{},[3877],{"type":43,"value":276},{"type":34,"tag":167,"props":3879,"children":3880},{},[3881],{"type":43,"value":3882},"A sentence per cause (VS Code, Firefox); the packager's sentence (Zed); an organisation minimum (VS Code); Check now kept (Claude).",{"type":34,"tag":167,"props":3884,"children":3885},{},[3886],{"type":43,"value":3887},"Equal now (D10, T5).",{"type":34,"tag":145,"props":3889,"children":3890},{},[3891,3896,3901],{"type":34,"tag":167,"props":3892,"children":3893},{},[3894],{"type":43,"value":3895},"Now: one channel, internal notes, trail, no skip",{"type":34,"tag":167,"props":3897,"children":3898},{},[3899],{"type":43,"value":3900},"Fast tracks are separate apps (Insiders, Canary, Zed Preview, Raycast Beta, Slack beta) or groups (TestFlight). Skip only in Sparkle.",{"type":34,"tag":167,"props":3902,"children":3903},{},[3904],{"type":43,"value":3905},"Stricter: one install, one channel, no skip (R6).",{"type":34,"tag":145,"props":3907,"children":3908},{},[3909,3914,3919],{"type":34,"tag":167,"props":3910,"children":3911},{},[3912],{"type":43,"value":3913},"Later: channels, staged %, public notes, policy",{"type":34,"tag":167,"props":3915,"children":3916},{},[3917],{"type":43,"value":3918},"In-place channels (1Password, Sparkle); a 7-day curve, pause and halt (Apple, Play); priority (Play); organisation limits, pins, minimums, windows, speeds (section 12).",{"type":34,"tag":167,"props":3920,"children":3921},{},[3922,3924,3930,3931,3936,3937,3942],{"type":43,"value":3923},"Equal in shape (",{"type":34,"tag":53,"props":3925,"children":3927},{"className":3926},[],[3928],{"type":43,"value":3929},"rollout",{"type":43,"value":1085},{"type":34,"tag":53,"props":3932,"children":3934},{"className":3933},[],[3935],{"type":43,"value":3431},{"type":43,"value":1085},{"type":34,"tag":53,"props":3938,"children":3940},{"className":3939},[],[3941],{"type":43,"value":3448},{"type":43,"value":3943},"). Thinner: no priority, no curve, no \"wait 30 days\".",{"type":34,"tag":35,"props":3945,"children":3946},{},[3947,3952],{"type":34,"tag":39,"props":3948,"children":3949},{},[3950],{"type":43,"value":3951},"Where ours is stricter:",{"type":43,"value":3953}," no restart while the window is open or on a timer (R1); the restart says the sensor keeps watching (R2); a quiet install leaves a visible trace (R3); no skip (R6); the channel in one place (D12). No precedent does all five. VS Code is nearest, and its two experiments move the way the plan points.",{"type":34,"tag":35,"props":3955,"children":3956},{},[3957],{"type":34,"tag":39,"props":3958,"children":3959},{},[3960],{"type":43,"value":3961},"Where ours is thinner, and should not stay so:",{"type":34,"tag":3963,"props":3964,"children":3965},"ol",{},[3966,3976,3986,3996,4006,4016,4026],{"type":34,"tag":301,"props":3967,"children":3968},{},[3969,3974],{"type":34,"tag":39,"props":3970,"children":3971},{},[3972],{"type":43,"value":3973},"No guard on the idle relaunch",{"type":43,"value":3975}," (VS Code names one; the Claude issues show the cost). Question 11.",{"type":34,"tag":301,"props":3977,"children":3978},{},[3979,3984],{"type":34,"tag":39,"props":3980,"children":3981},{},[3982],{"type":43,"value":3983},"No age line",{"type":43,"value":3985}," for an install that has stopped updating (VS Code two months, Firefox 63 days, Chrome \"for # days\"). Question 10.",{"type":34,"tag":301,"props":3987,"children":3988},{},[3989,3994],{"type":34,"tag":39,"props":3990,"children":3991},{},[3992],{"type":43,"value":3993},"No clock in Ask me first.",{"type":43,"value":3995}," It should not escalate, but it can say how long the update has waited. Question 9.",{"type":34,"tag":301,"props":3997,"children":3998},{},[3999,4004],{"type":34,"tag":39,"props":4000,"children":4001},{},[4002],{"type":43,"value":4003},"No state in the history",{"type":43,"value":4005}," (Firefox).",{"type":34,"tag":301,"props":4007,"children":4008},{},[4009,4014],{"type":34,"tag":39,"props":4010,"children":4011},{},[4012],{"type":43,"value":4013},"No priority per release",{"type":43,"value":4015}," (Play, Sparkle), to map onto c137's modes. Question 12.",{"type":34,"tag":301,"props":4017,"children":4018},{},[4019,4024],{"type":34,"tag":39,"props":4020,"children":4021},{},[4022],{"type":43,"value":4023},"No \"what to try\"",{"type":43,"value":4025}," in partner notes (TestFlight).",{"type":34,"tag":301,"props":4027,"children":4028},{},[4029,4034],{"type":34,"tag":39,"props":4030,"children":4031},{},[4032],{"type":43,"value":4033},"No organisation \"wait\"",{"type":43,"value":4035}," beside the pin (Microsoft's Deferred). Question 15.",{"type":34,"tag":121,"props":4037,"children":4039},{"id":4038},"what-we-copy",[4040],{"type":43,"value":26},{"type":34,"tag":297,"props":4042,"children":4043},{},[4044,4054,4063,4087,4096,4104,4114,4123,4132,4156,4165,4175,4185,4195,4211],{"type":34,"tag":301,"props":4045,"children":4046},{},[4047,4052],{"type":34,"tag":39,"props":4048,"children":4049},{},[4050],{"type":43,"value":4051},"The Updates page as VS Code's tooltip",{"type":43,"value":4053},": both versions with commits, release date, notes, one button naming the next step, Copy (VS Code).",{"type":34,"tag":301,"props":4055,"children":4056},{},[4057,4061],{"type":34,"tag":39,"props":4058,"children":4059},{},[4060],{"type":43,"value":483},{"type":43,"value":4062}," (Zed, VS Code, Firefox).",{"type":34,"tag":301,"props":4064,"children":4065},{},[4066,4071,4073,4078,4080,4085],{"type":34,"tag":39,"props":4067,"children":4068},{},[4069],{"type":43,"value":4070},"A sentence per reason updates are managed",{"type":43,"value":4072}," (VS Code, Firefox), and ",{"type":34,"tag":39,"props":4074,"children":4075},{},[4076],{"type":43,"value":4077},"the packager's sentence verbatim",{"type":43,"value":4079}," (Zed's ",{"type":34,"tag":53,"props":4081,"children":4083},{"className":4082},[],[4084],{"type":43,"value":285},{"type":43,"value":4086},").",{"type":34,"tag":301,"props":4088,"children":4089},{},[4090,4094],{"type":34,"tag":39,"props":4091,"children":4092},{},[4093],{"type":43,"value":1249},{"type":43,"value":4095}," (Firefox's \"Open tabs and windows will be restored\").",{"type":34,"tag":301,"props":4097,"children":4098},{},[4099,4103],{"type":34,"tag":39,"props":4100,"children":4101},{},[4102],{"type":43,"value":1239},{"type":43,"value":4005},{"type":34,"tag":301,"props":4105,"children":4106},{},[4107,4112],{"type":34,"tag":39,"props":4108,"children":4109},{},[4110],{"type":43,"value":4111},"Notes per version with the trail behind them, written at the change",{"type":43,"value":4113}," (Zed's notes page, commit list and PR line).",{"type":34,"tag":301,"props":4115,"children":4116},{},[4117,4121],{"type":34,"tag":39,"props":4118,"children":4119},{},[4120],{"type":43,"value":2999},{"type":43,"value":4122}," (TestFlight).",{"type":34,"tag":301,"props":4124,"children":4125},{},[4126,4131],{"type":34,"tag":39,"props":4127,"children":4128},{},[4129],{"type":43,"value":4130},"Update history with a state",{"type":43,"value":4005},{"type":34,"tag":301,"props":4133,"children":4134},{},[4135,4139,4141,4147,4149,4154],{"type":34,"tag":39,"props":4136,"children":4137},{},[4138],{"type":43,"value":906},{"type":43,"value":4140}," (VS Code's ",{"type":34,"tag":53,"props":4142,"children":4144},{"className":4143},[],[4145],{"type":43,"value":4146},"restartWhenIdle",{"type":43,"value":4148},", Sparkle's background-app rule), and ",{"type":34,"tag":39,"props":4150,"children":4151},{},[4152],{"type":43,"value":4153},"\"restart when I'm away\" as a choice",{"type":43,"value":4155}," (Chrome).",{"type":34,"tag":301,"props":4157,"children":4158},{},[4159,4163],{"type":34,"tag":39,"props":4160,"children":4161},{},[4162],{"type":43,"value":2351},{"type":43,"value":4164},": the tray menu and a badge, not a window (Raycast, Slack, Sparkle's gentle reminders).",{"type":34,"tag":301,"props":4166,"children":4167},{},[4168,4173],{"type":34,"tag":39,"props":4169,"children":4170},{},[4171],{"type":43,"value":4172},"An age line, at most monthly",{"type":43,"value":4174}," (VS Code, Firefox, Chrome).",{"type":34,"tag":301,"props":4176,"children":4177},{},[4178,4183],{"type":34,"tag":39,"props":4179,"children":4180},{},[4181],{"type":43,"value":4182},"The channel inside the one install; newer-or-nothing when leaving Beta",{"type":43,"value":4184}," (1Password, Sparkle).",{"type":34,"tag":301,"props":4186,"children":4187},{},[4188,4193],{"type":34,"tag":39,"props":4189,"children":4190},{},[4191],{"type":43,"value":4192},"A local, unsent rollout share; manual checks bypass it; Apple's seven-day curve",{"type":43,"value":4194}," (Sparkle, Apple).",{"type":34,"tag":301,"props":4196,"children":4197},{},[4198,4202,4204,4209],{"type":34,"tag":39,"props":4199,"children":4200},{},[4201],{"type":43,"value":3423},{"type":43,"value":4203}," (Play); ",{"type":34,"tag":39,"props":4205,"children":4206},{},[4207],{"type":43,"value":4208},"priority set once; critical unskippable and unstaged",{"type":43,"value":4210}," (Play, Sparkle).",{"type":34,"tag":301,"props":4212,"children":4213},{},[4214,4219],{"type":34,"tag":39,"props":4215,"children":4216},{},[4217],{"type":43,"value":4218},"The organisation's controls, later",{"type":43,"value":4220},": allowed channels (1Password), a pin (Firefox), a minimum (VS Code), a relaunch window shown in advance (Chrome), a speed per group (Microsoft), Check now kept when automatic is off (Claude).",{"type":34,"tag":121,"props":4222,"children":4224},{"id":4223},"what-we-refuse",[4225],{"type":43,"value":27},{"type":34,"tag":297,"props":4227,"children":4228},{},[4229,4238,4247,4257,4266,4276,4286,4295,4305,4321,4331,4347],{"type":34,"tag":301,"props":4230,"children":4231},{},[4232,4236],{"type":34,"tag":39,"props":4233,"children":4234},{},[4235],{"type":43,"value":2130},{"type":43,"value":4237}," (Claude, Chrome's required relaunch).",{"type":34,"tag":301,"props":4239,"children":4240},{},[4241,4245],{"type":34,"tag":39,"props":4242,"children":4243},{},[4244],{"type":43,"value":2140},{"type":43,"value":4246}," (Claude's stealth update).",{"type":34,"tag":301,"props":4248,"children":4249},{},[4250,4255],{"type":34,"tag":39,"props":4251,"children":4252},{},[4253],{"type":43,"value":4254},"A restart control without notes or \"later\"",{"type":43,"value":4256}," (Claude).",{"type":34,"tag":301,"props":4258,"children":4259},{},[4260,4264],{"type":34,"tag":39,"props":4261,"children":4262},{},[4263],{"type":43,"value":3467},{"type":43,"value":4265}," (Sparkle).",{"type":34,"tag":301,"props":4267,"children":4268},{},[4269,4274],{"type":34,"tag":39,"props":4270,"children":4271},{},[4272],{"type":43,"value":4273},"A modal at any age",{"type":43,"value":4275}," (Firefox's \"big UI\", Sparkle's second-launch question, Play's immediate flow).",{"type":34,"tag":301,"props":4277,"children":4278},{},[4279,4284],{"type":34,"tag":39,"props":4280,"children":4281},{},[4282],{"type":43,"value":4283},"A notes tab or toast that opens itself after a quiet install",{"type":43,"value":4285}," (VS Code's default, Zed).",{"type":34,"tag":301,"props":4287,"children":4288},{},[4289,4293],{"type":34,"tag":39,"props":4290,"children":4291},{},[4292],{"type":43,"value":544},{"type":43,"value":4294}," (Insiders, Chrome, Zed Preview, Raycast Beta, Figma Beta, Slack beta).",{"type":34,"tag":301,"props":4296,"children":4297},{},[4298,4303],{"type":34,"tag":39,"props":4299,"children":4300},{},[4301],{"type":43,"value":4302},"A boolean preference, or none",{"type":43,"value":4304}," (Zed; Slack, Claude, Raycast).",{"type":34,"tag":301,"props":4306,"children":4307},{},[4308,4313,4315,4320],{"type":34,"tag":39,"props":4309,"children":4310},{},[4311],{"type":43,"value":4312},"Off meaning no checks",{"type":43,"value":4314}," (1Password, VS Code ",{"type":34,"tag":53,"props":4316,"children":4318},{"className":4317},[],[4319],{"type":43,"value":678},{"type":43,"value":4086},{"type":34,"tag":301,"props":4322,"children":4323},{},[4324,4329],{"type":34,"tag":39,"props":4325,"children":4326},{},[4327],{"type":43,"value":4328},"A channel stored in two places",{"type":43,"value":4330}," (1Password's reported drift).",{"type":34,"tag":301,"props":4332,"children":4333},{},[4334,4339,4341,4346],{"type":34,"tag":39,"props":4335,"children":4336},{},[4337],{"type":43,"value":4338},"Build expiry as a hard stop",{"type":43,"value":4340}," (TestFlight); ",{"type":34,"tag":39,"props":4342,"children":4343},{},[4344],{"type":43,"value":4345},"a downgrade that costs data",{"type":43,"value":4155},{"type":34,"tag":301,"props":4348,"children":4349},{},[4350,4355],{"type":34,"tag":39,"props":4351,"children":4352},{},[4353],{"type":43,"value":4354},"A Terminal key as the only off switch",{"type":43,"value":4356}," (Linear, Slack's legacy key).",{"type":34,"tag":121,"props":4358,"children":4360},{"id":4359},"open-questions-each-with-a-default",[4361],{"type":43,"value":28},{"type":34,"tag":35,"props":4363,"children":4364},{},[4365],{"type":43,"value":4366},"The plan's decisions are in its §Decisions. These are the questions the reading raised, with the plan's default where it has one and what the reading adds.",{"type":34,"tag":3963,"props":4368,"children":4369},{},[4370,4386,4402,4418,4434,4450,4466,4482,4498,4514,4530,4554,4600,4616,4639,4655],{"type":34,"tag":301,"props":4371,"children":4372},{},[4373,4378,4379,4384],{"type":34,"tag":39,"props":4374,"children":4375},{},[4376],{"type":43,"value":4377},"The preference's default.",{"type":43,"value":2557},{"type":34,"tag":39,"props":4380,"children":4381},{},[4382],{"type":43,"value":4383},"Automatically, labelled \"(recommended)\", with no first-run question",{"type":43,"value":4385}," (D1). Zed, VS Code, Firefox, Slack and Claude update automatically by default. Sparkle asks on the second launch and leaves automatic installs off.",{"type":34,"tag":301,"props":4387,"children":4388},{},[4389,4394,4395,4400],{"type":34,"tag":39,"props":4390,"children":4391},{},[4392],{"type":43,"value":4393},"Silent: no notice, or a quiet trace?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4396,"children":4397},{},[4398],{"type":43,"value":4399},"A quiet trace",{"type":43,"value":4401}," (D2): the footer mark for seven days, the Updates page leading with what's new, the history. The precedents range from a toast (Zed) to a log line (Claude); ours sits beside VS Code's tooltip experiment and Firefox's history.",{"type":34,"tag":301,"props":4403,"children":4404},{},[4405,4410,4411,4416],{"type":34,"tag":39,"props":4406,"children":4407},{},[4408],{"type":43,"value":4409},"Internal notes inline, or behind a link?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4412,"children":4413},{},[4414],{"type":43,"value":4415},"Inline, with the trail one link away",{"type":43,"value":4417}," (D6). VS Code, Sparkle, Zed's local view and TestFlight all show notes in the app. Add \"what to try\".",{"type":34,"tag":301,"props":4419,"children":4420},{},[4421,4426,4427,4432],{"type":34,"tag":39,"props":4422,"children":4423},{},[4424],{"type":43,"value":4425},"Skip this version.",{"type":43,"value":2557},{"type":34,"tag":39,"props":4428,"children":4429},{},[4430],{"type":43,"value":4431},"None; \"Not now\" defers",{"type":43,"value":4433}," (D8). Only Sparkle offers a skip, and it withdraws it for critical updates. In a product whose sensor is the evidence, a skipped version is a gap the organisation did not choose. Holding a version is the organisation's pin, later.",{"type":34,"tag":301,"props":4435,"children":4436},{},[4437,4442,4443,4448],{"type":34,"tag":39,"props":4438,"children":4439},{},[4440],{"type":43,"value":4441},"Who owns release notes.",{"type":43,"value":2557},{"type":34,"tag":39,"props":4444,"children":4445},{},[4446],{"type":43,"value":4447},"The person who cuts the release owns the facts and the gate; the draft comes from the record; design owns the template and the voice",{"type":43,"value":4449}," (D7). Zed's PR line and TestFlight's note put the writing at the change.",{"type":34,"tag":301,"props":4451,"children":4452},{},[4453,4458,4459,4464],{"type":34,"tag":39,"props":4454,"children":4455},{},[4456],{"type":43,"value":4457},"Restart timing.",{"type":43,"value":2557},{"type":34,"tag":39,"props":4460,"children":4461},{},[4462],{"type":43,"value":4463},"Automatically: at quit, at the machine's restart, or idle with the window closed (D3, guarded by question 11). Ask me first: Restart now · When I quit · When I'm away",{"type":43,"value":4465}," (Chrome). No prompt and no deadline.",{"type":34,"tag":301,"props":4467,"children":4468},{},[4469,4474,4475,4480],{"type":34,"tag":39,"props":4470,"children":4471},{},[4472],{"type":43,"value":4473},"What \"managed elsewhere\" says.",{"type":43,"value":2557},{"type":34,"tag":39,"props":4476,"children":4477},{},[4478],{"type":43,"value":4479},"Who manages it and how to update there",{"type":43,"value":4481},": \"Updates are managed by Homebrew.\" with the command. Later: \"Updates are managed by your organization.\" with what the policy allows. The preference is shown disabled with the reason (D10). If policy stops only the automatic path, Check now stays (Claude).",{"type":34,"tag":301,"props":4483,"children":4484},{},[4485,4490,4491,4496],{"type":34,"tag":39,"props":4486,"children":4487},{},[4488],{"type":43,"value":4489},"Semver tag or SHA in the partner era.",{"type":43,"value":2557},{"type":34,"tag":39,"props":4492,"children":4493},{},[4494],{"type":43,"value":4495},"The tag, with the 7-char SHA beside it",{"type":43,"value":4497}," (D5), every partner build tagged (T3). VS Code shows \"1.x (commit)\" for both versions. Later, the tag alone, with the SHA in Copy version info.",{"type":34,"tag":301,"props":4499,"children":4500},{},[4501,4506,4507,4512],{"type":34,"tag":39,"props":4502,"children":4503},{},[4504],{"type":43,"value":4505},"Does Ask me first escalate?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4508,"children":4509},{},[4510],{"type":43,"value":4511},"No prompt, ever; the age is said instead.",{"type":43,"value":4513}," After three days the tray line and the footer read \"ready since Tuesday\" (Chrome's \"available for # days\").",{"type":34,"tag":301,"props":4515,"children":4516},{},[4517,4522,4523,4528],{"type":34,"tag":39,"props":4518,"children":4519},{},[4520],{"type":43,"value":4521},"What does an install that has stopped updating say?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4524,"children":4525},{},[4526],{"type":43,"value":4527},"After 60 days, one tray line at most once a month",{"type":43,"value":4529}," (\"Qpoint 0.1.0 is 2 months old\"), under any preference, managed included (VS Code, Firefox). The Updates page always shows the age.",{"type":34,"tag":301,"props":4531,"children":4532},{},[4533,4538,4539,4544,4546,4552],{"type":34,"tag":39,"props":4534,"children":4535},{},[4536],{"type":43,"value":4537},"What guards the idle relaunch?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4540,"children":4541},{},[4542],{"type":43,"value":4543},"Only when everything comes back as it was",{"type":43,"value":4545},": no developer stream (c138), no mechanic session (c136), no open ",{"type":34,"tag":53,"props":4547,"children":4549},{"className":4548},[],[4550],{"type":43,"value":4551},"required",{"type":43,"value":4553}," message (c137), no tour or capture running, the window closed, no focus taken (VS Code, Sparkle). The history records \"while you were away\". T6 may narrow D3 to quit and restart only.",{"type":34,"tag":301,"props":4555,"children":4556},{},[4557,4562,4563,4568,4570,4576,4578,4584,4586,4592,4594,4599],{"type":34,"tag":39,"props":4558,"children":4559},{},[4560],{"type":43,"value":4561},"Does a release carry a priority mapped to c137's modes?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4564,"children":4565},{},[4566],{"type":43,"value":4567},"Not now. Later, a field set once per release",{"type":43,"value":4569}," (Play, Sparkle): ",{"type":34,"tag":53,"props":4571,"children":4573},{"className":4572},[],[4574],{"type":43,"value":4575},"quiet",{"type":43,"value":4577}," for a normal release (the trace), ",{"type":34,"tag":53,"props":4579,"children":4581},{"className":4580},[],[4582],{"type":43,"value":4583},"normal",{"type":43,"value":4585}," (the tray dot) when it fixes a sharp edge the person reported, never ",{"type":34,"tag":53,"props":4587,"children":4589},{"className":4588},[],[4590],{"type":43,"value":4591},"priority",{"type":43,"value":4593},". The floor is ",{"type":34,"tag":53,"props":4595,"children":4597},{"className":4596},[],[4598],{"type":43,"value":3448},{"type":43,"value":3034},{"type":34,"tag":301,"props":4601,"children":4602},{},[4603,4608,4609,4614],{"type":34,"tag":39,"props":4604,"children":4605},{},[4606],{"type":43,"value":4607},"Channels later: a setting, or a second app?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4610,"children":4611},{},[4612],{"type":43,"value":4613},"A setting in the same install, under Updates.",{"type":43,"value":4615}," Leaving Beta waits for Stable to pass it; the organisation can limit the channels (1Password, Sparkle, Slack's opt-out). A second app puts a second inbox over one sensor.",{"type":34,"tag":301,"props":4617,"children":4618},{},[4619,4624,4625,4630,4632,4637],{"type":34,"tag":39,"props":4620,"children":4621},{},[4622],{"type":43,"value":4623},"Does a partner build expire?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4626,"children":4627},{},[4628],{"type":43,"value":4629},"No",{"type":43,"value":4631}," (against TestFlight's 90 days). The age line (question 10) and, later, ",{"type":34,"tag":53,"props":4633,"children":4635},{"className":4634},[],[4636],{"type":43,"value":3448},{"type":43,"value":4638}," do the work.",{"type":34,"tag":301,"props":4640,"children":4641},{},[4642,4647,4648,4653],{"type":34,"tag":39,"props":4643,"children":4644},{},[4645],{"type":43,"value":4646},"What does the organisation's policy hold, later?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4649,"children":4650},{},[4651],{"type":43,"value":4652},"Allowed channels, a pin, a minimum, a wait of about 30 days, an update window shown in advance, and who goes first",{"type":43,"value":4654}," (1Password, Firefox, VS Code, Microsoft, Chrome). Designed with c134; the native page leaves a slot for each.",{"type":34,"tag":301,"props":4656,"children":4657},{},[4658,4663,4664,4669],{"type":34,"tag":39,"props":4659,"children":4660},{},[4661],{"type":43,"value":4662},"Does the staged rollout tell the person anything?",{"type":43,"value":2557},{"type":34,"tag":39,"props":4665,"children":4666},{},[4667],{"type":43,"value":4668},"No.",{"type":43,"value":4670}," An update not yet offered to this install is not shown, and Check now gets it (Apple, Sparkle), so nothing is hidden from someone who asks. The share is drawn locally and never sent.",{"type":34,"tag":121,"props":4672,"children":4674},{"id":4673},"sources-all-read-2026-11-11",[4675],{"type":43,"value":29},{"type":34,"tag":35,"props":4677,"children":4678},{},[4679],{"type":43,"value":4680},"Read directly: the GitHub repositories of Zed, VS Code and vscode-docs, Firefox and its policy templates, Chromium, and Sparkle; developer.apple.com; developer.android.com; support.claude.com; code.claude.com; two anthropics\u002Fclaude-code issues. Read as search excerpts, the pages being blocked: zed.dev, 1Password's support, blog and community, slack.com, manual.raycast.com, medium.com, support.google.com, chromium.org, learn.microsoft.com and a Microsoft 365 message-centre mirror, help.figma.com, linear.app, helm-app.com, pcworld.com. Cited from memory: Firefox's channel list and Chrome Canary's daily cadence.",{"type":34,"tag":35,"props":4682,"children":4683},{},[4684,4689],{"type":34,"tag":39,"props":4685,"children":4686},{},[4687],{"type":43,"value":4688},"To re-read from a laptop before the mocks are final:",{"type":43,"value":4690}," 1Password's Settings labels and restart prompt; Slack's update card; Raycast's macOS behaviour today (the post is from 2020); TestFlight's \"What to Test\" limit; Play's halt at 100%; Microsoft 365 Frontier's group rules; whether VS Code's two experiments have shipped.",{"type":34,"tag":35,"props":4692,"children":4693},{},[4694,4699,4700,4705,4706,4711,4712,4717,4718,4723,4724,4729,4730,4735,4736,4741,4742,4747,4748,4753,4754,4759,4760,4765,4766,4771,4772,4777,4778,4783,4784,4789,4790,4795,4796,4801,4802,4807,4808,4813,4814,4819,4820,4825,4826,4831,4832,4837,4838,4843,4844,4849,4850,4855,4856,4861,4862,4867,4868,4873,4874,4879,4880,4885,4886,4891,4892,4897,4898,4903,4904,4909,4910,4915,4916,4921,4922,4927,4928,4933,4934,4939,4940,4945,4946,4951,4952,4957,4958,4963,4964,4969,4970,4975,4976,4981,4982,4987,4988,4993,4994,4999,5000,5005,5006,5011,5012,5017,5018],{"type":34,"tag":48,"props":4695,"children":4697},{"href":311,"rel":4696},[98],[4698],{"type":43,"value":311},{"type":43,"value":658},{"type":34,"tag":48,"props":4701,"children":4703},{"href":322,"rel":4702},[98],[4704],{"type":43,"value":322},{"type":43,"value":658},{"type":34,"tag":48,"props":4707,"children":4709},{"href":385,"rel":4708},[98],[4710],{"type":43,"value":385},{"type":43,"value":658},{"type":34,"tag":48,"props":4713,"children":4715},{"href":395,"rel":4714},[98],[4716],{"type":43,"value":395},{"type":43,"value":658},{"type":34,"tag":48,"props":4719,"children":4721},{"href":410,"rel":4720},[98],[4722],{"type":43,"value":410},{"type":43,"value":658},{"type":34,"tag":48,"props":4725,"children":4727},{"href":434,"rel":4726},[98],[4728],{"type":43,"value":434},{"type":43,"value":658},{"type":34,"tag":48,"props":4731,"children":4733},{"href":450,"rel":4732},[98],[4734],{"type":43,"value":450},{"type":43,"value":658},{"type":34,"tag":48,"props":4737,"children":4739},{"href":460,"rel":4738},[98],[4740],{"type":43,"value":460},{"type":43,"value":658},{"type":34,"tag":48,"props":4743,"children":4745},{"href":792,"rel":4744},[98],[4746],{"type":43,"value":792},{"type":43,"value":658},{"type":34,"tag":48,"props":4749,"children":4751},{"href":827,"rel":4750},[98],[4752],{"type":43,"value":827},{"type":43,"value":658},{"type":34,"tag":48,"props":4755,"children":4757},{"href":2544,"rel":4756},[98],[4758],{"type":43,"value":2544},{"type":43,"value":658},{"type":34,"tag":48,"props":4761,"children":4763},{"href":842,"rel":4762},[98],[4764],{"type":43,"value":842},{"type":43,"value":658},{"type":34,"tag":48,"props":4767,"children":4769},{"href":864,"rel":4768},[98],[4770],{"type":43,"value":864},{"type":43,"value":658},{"type":34,"tag":48,"props":4773,"children":4775},{"href":2529,"rel":4774},[98],[4776],{"type":43,"value":2529},{"type":43,"value":658},{"type":34,"tag":48,"props":4779,"children":4781},{"href":1128,"rel":4780},[98],[4782],{"type":43,"value":1128},{"type":43,"value":658},{"type":34,"tag":48,"props":4785,"children":4787},{"href":1143,"rel":4786},[98],[4788],{"type":43,"value":1143},{"type":43,"value":658},{"type":34,"tag":48,"props":4791,"children":4793},{"href":1153,"rel":4792},[98],[4794],{"type":43,"value":1153},{"type":43,"value":658},{"type":34,"tag":48,"props":4797,"children":4799},{"href":1168,"rel":4798},[98],[4800],{"type":43,"value":1168},{"type":43,"value":658},{"type":34,"tag":48,"props":4803,"children":4805},{"href":1183,"rel":4804},[98],[4806],{"type":43,"value":1183},{"type":43,"value":658},{"type":34,"tag":48,"props":4809,"children":4811},{"href":1217,"rel":4810},[98],[4812],{"type":43,"value":1217},{"type":43,"value":658},{"type":34,"tag":48,"props":4815,"children":4817},{"href":1443,"rel":4816},[98],[4818],{"type":43,"value":1443},{"type":43,"value":658},{"type":34,"tag":48,"props":4821,"children":4823},{"href":1483,"rel":4822},[98],[4824],{"type":43,"value":1483},{"type":43,"value":658},{"type":34,"tag":48,"props":4827,"children":4829},{"href":1493,"rel":4828},[98],[4830],{"type":43,"value":1493},{"type":43,"value":658},{"type":34,"tag":48,"props":4833,"children":4835},{"href":1458,"rel":4834},[98],[4836],{"type":43,"value":1458},{"type":43,"value":658},{"type":34,"tag":48,"props":4839,"children":4841},{"href":1468,"rel":4840},[98],[4842],{"type":43,"value":1468},{"type":43,"value":658},{"type":34,"tag":48,"props":4845,"children":4847},{"href":1508,"rel":4846},[98],[4848],{"type":43,"value":1508},{"type":43,"value":658},{"type":34,"tag":48,"props":4851,"children":4853},{"href":1740,"rel":4852},[98],[4854],{"type":43,"value":1740},{"type":43,"value":658},{"type":34,"tag":48,"props":4857,"children":4859},{"href":1760,"rel":4858},[98],[4860],{"type":43,"value":1760},{"type":43,"value":658},{"type":34,"tag":48,"props":4863,"children":4865},{"href":3648,"rel":4864},[98],[4866],{"type":43,"value":3648},{"type":43,"value":658},{"type":34,"tag":48,"props":4869,"children":4871},{"href":1985,"rel":4870},[98],[4872],{"type":43,"value":1985},{"type":43,"value":658},{"type":34,"tag":48,"props":4875,"children":4877},{"href":2016,"rel":4876},[98],[4878],{"type":43,"value":2016},{"type":43,"value":658},{"type":34,"tag":48,"props":4881,"children":4883},{"href":2031,"rel":4882},[98],[4884],{"type":43,"value":2031},{"type":43,"value":658},{"type":34,"tag":48,"props":4887,"children":4889},{"href":2047,"rel":4888},[98],[4890],{"type":43,"value":2047},{"type":43,"value":658},{"type":34,"tag":48,"props":4893,"children":4895},{"href":2078,"rel":4894},[98],[4896],{"type":43,"value":2078},{"type":43,"value":658},{"type":34,"tag":48,"props":4899,"children":4901},{"href":2304,"rel":4900},[98],[4902],{"type":43,"value":2304},{"type":43,"value":658},{"type":34,"tag":48,"props":4905,"children":4907},{"href":2314,"rel":4906},[98],[4908],{"type":43,"value":2314},{"type":43,"value":658},{"type":34,"tag":48,"props":4911,"children":4913},{"href":2329,"rel":4912},[98],[4914],{"type":43,"value":2329},{"type":43,"value":658},{"type":34,"tag":48,"props":4917,"children":4919},{"href":2715,"rel":4918},[98],[4920],{"type":43,"value":2715},{"type":43,"value":658},{"type":34,"tag":48,"props":4923,"children":4925},{"href":2730,"rel":4924},[98],[4926],{"type":43,"value":2730},{"type":43,"value":658},{"type":34,"tag":48,"props":4929,"children":4931},{"href":2745,"rel":4930},[98],[4932],{"type":43,"value":2745},{"type":43,"value":658},{"type":34,"tag":48,"props":4935,"children":4937},{"href":2755,"rel":4936},[98],[4938],{"type":43,"value":2755},{"type":43,"value":658},{"type":34,"tag":48,"props":4941,"children":4943},{"href":2947,"rel":4942},[98],[4944],{"type":43,"value":2947},{"type":43,"value":658},{"type":34,"tag":48,"props":4947,"children":4949},{"href":2962,"rel":4948},[98],[4950],{"type":43,"value":2962},{"type":43,"value":658},{"type":34,"tag":48,"props":4953,"children":4955},{"href":2977,"rel":4954},[98],[4956],{"type":43,"value":2977},{"type":43,"value":658},{"type":34,"tag":48,"props":4959,"children":4961},{"href":3269,"rel":4960},[98],[4962],{"type":43,"value":3269},{"type":43,"value":658},{"type":34,"tag":48,"props":4965,"children":4967},{"href":3299,"rel":4966},[98],[4968],{"type":43,"value":3299},{"type":43,"value":658},{"type":34,"tag":48,"props":4971,"children":4973},{"href":3309,"rel":4972},[98],[4974],{"type":43,"value":3309},{"type":43,"value":658},{"type":34,"tag":48,"props":4977,"children":4979},{"href":3284,"rel":4978},[98],[4980],{"type":43,"value":3284},{"type":43,"value":658},{"type":34,"tag":48,"props":4983,"children":4985},{"href":3324,"rel":4984},[98],[4986],{"type":43,"value":3324},{"type":43,"value":658},{"type":34,"tag":48,"props":4989,"children":4991},{"href":3355,"rel":4990},[98],[4992],{"type":43,"value":3355},{"type":43,"value":658},{"type":34,"tag":48,"props":4995,"children":4997},{"href":3365,"rel":4996},[98],[4998],{"type":43,"value":3365},{"type":43,"value":658},{"type":34,"tag":48,"props":5001,"children":5003},{"href":3663,"rel":5002},[98],[5004],{"type":43,"value":3663},{"type":43,"value":658},{"type":34,"tag":48,"props":5007,"children":5009},{"href":3673,"rel":5008},[98],[5010],{"type":43,"value":3673},{"type":43,"value":658},{"type":34,"tag":48,"props":5013,"children":5015},{"href":96,"rel":5014},[98],[5016],{"type":43,"value":96},{"type":43,"value":658},{"type":34,"tag":48,"props":5019,"children":5021},{"href":108,"rel":5020},[98],[5022],{"type":43,"value":108},1794599397509]