@mean-weasel/lineage 0.1.23 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +37 -0
  3. package/dist/cli/lineage-dev.js +605 -36
  4. package/dist/cli/lineage-dev.js.map +4 -4
  5. package/dist/cli/lineage-preview.js +605 -36
  6. package/dist/cli/lineage-preview.js.map +4 -4
  7. package/dist/cli/lineage.js +605 -36
  8. package/dist/cli/lineage.js.map +4 -4
  9. package/dist/docs-site/operations/channels/index.html +11 -2
  10. package/dist/docs-site/operations/profiles-database-identity/index.html +16 -2
  11. package/dist/docs-site/pagefind/fragment/en_761fab1.pf_fragment +0 -0
  12. package/dist/docs-site/pagefind/fragment/en_bd3e194.pf_fragment +0 -0
  13. package/dist/docs-site/pagefind/fragment/en_ee82be6.pf_fragment +0 -0
  14. package/dist/docs-site/pagefind/fragment/en_f4db9e2.pf_fragment +0 -0
  15. package/dist/docs-site/pagefind/index/en_7b1363c.pf_index +0 -0
  16. package/dist/docs-site/pagefind/pagefind-entry.json +1 -1
  17. package/dist/docs-site/pagefind/pagefind.en_4e77743529.pf_meta +0 -0
  18. package/dist/docs-site/reference/cli/index.html +11 -2
  19. package/dist/docs-site/start-here/installation-first-run/index.html +7 -1
  20. package/dist/pages/assets/{app-B-fAyNsU.css → app-CuBsKrS-.css} +1 -1
  21. package/dist/pages/assets/app-TEMX-pOn.js +50 -0
  22. package/dist/pages/docs/operations/channels/index.html +11 -2
  23. package/dist/pages/docs/operations/profiles-database-identity/index.html +16 -2
  24. package/dist/pages/docs/pagefind/fragment/en_761fab1.pf_fragment +0 -0
  25. package/dist/pages/docs/pagefind/fragment/en_bd3e194.pf_fragment +0 -0
  26. package/dist/pages/docs/pagefind/fragment/en_ee82be6.pf_fragment +0 -0
  27. package/dist/pages/docs/pagefind/fragment/en_f4db9e2.pf_fragment +0 -0
  28. package/dist/pages/docs/pagefind/index/en_7b1363c.pf_index +0 -0
  29. package/dist/pages/docs/pagefind/pagefind-entry.json +1 -1
  30. package/dist/pages/docs/pagefind/pagefind.en_4e77743529.pf_meta +0 -0
  31. package/dist/pages/docs/reference/cli/index.html +11 -2
  32. package/dist/pages/docs/start-here/installation-first-run/index.html +7 -1
  33. package/dist/runtime-build.json +4 -4
  34. package/dist/server.js +375 -39
  35. package/dist/server.js.map +4 -4
  36. package/dist/web/assets/{app-B-fAyNsU.css → app-CuBsKrS-.css} +1 -1
  37. package/dist/web/assets/app-TEMX-pOn.js +50 -0
  38. package/dist/web/index.html +2 -2
  39. package/package.json +3 -2
  40. package/dist/docs-site/pagefind/fragment/en_4db923b.pf_fragment +0 -0
  41. package/dist/docs-site/pagefind/fragment/en_581a7cb.pf_fragment +0 -0
  42. package/dist/docs-site/pagefind/fragment/en_8c1c735.pf_fragment +0 -0
  43. package/dist/docs-site/pagefind/fragment/en_bcc29c5.pf_fragment +0 -0
  44. package/dist/docs-site/pagefind/index/en_f279b04.pf_index +0 -0
  45. package/dist/docs-site/pagefind/pagefind.en_74951c3ca7.pf_meta +0 -0
  46. package/dist/pages/assets/app-DdU93vp2.js +0 -50
  47. package/dist/pages/docs/pagefind/fragment/en_4db923b.pf_fragment +0 -0
  48. package/dist/pages/docs/pagefind/fragment/en_581a7cb.pf_fragment +0 -0
  49. package/dist/pages/docs/pagefind/fragment/en_8c1c735.pf_fragment +0 -0
  50. package/dist/pages/docs/pagefind/fragment/en_bcc29c5.pf_fragment +0 -0
  51. package/dist/pages/docs/pagefind/index/en_f279b04.pf_index +0 -0
  52. package/dist/pages/docs/pagefind/pagefind.en_74951c3ca7.pf_meta +0 -0
  53. package/dist/web/assets/app-DdU93vp2.js +0 -50
@@ -70,7 +70,7 @@
70
70
  })();
71
71
  </script></sl-sidebar-state-persist><div class="md:sl-hidden"><div class="mobile-preferences sl-flex astro-iguen2c2"><div class="social-icons astro-iguen2c2"><a href="https://github.com/mean-weasel/lineage" rel="me" class="sl-flex astro-ecrtf6pm"><span class="sr-only astro-ecrtf6pm">GitHub</span><svg aria-hidden="true" class="astro-ecrtf6pm astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-nwqewnqn"><span class="sr-only astro-nwqewnqn">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-nwqewnqn astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-nwqewnqn"><option value="dark" class="astro-nwqewnqn">Dark</option><option value="light" class="astro-nwqewnqn">Light</option><option value="auto" selected class="astro-nwqewnqn">Auto</option></select><svg aria-hidden="true" class="icon caret astro-nwqewnqn astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
72
72
  StarlightThemeProvider.updatePickers();
73
- </script></div></div></div></div></nav><div class="main-frame astro-gliozamz"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-zytntmjz"><aside class="right-sidebar-container print:hidden astro-zytntmjz"><div class="right-sidebar astro-zytntmjz"><div class="lg:sl-hidden astro-taqbctct"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-3qatgygh"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-3qatgygh"><details id="starlight__mobile-toc" class="astro-3qatgygh"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-3qatgygh"><span class="toggle sl-flex astro-3qatgygh">On this page<svg aria-hidden="true" class="caret astro-3qatgygh astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-3qatgygh"></span></summary><div class="dropdown astro-3qatgygh"><ul class="isMobile astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#channel-model" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Channel model</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#safety-behavior" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Safety behavior</span></a></li></ul></div></details></nav></mobile-starlight-toc><script type="module" src="/lineage/docs/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-taqbctct"><div class="sl-container astro-taqbctct"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#channel-model" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Channel model</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#safety-behavior" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Safety behavior</span></a></li></ul></nav></starlight-toc><script type="module" src="/lineage/docs/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js"></script></div></div></div></aside><div class="main-pane astro-zytntmjz"><main data-pagefind-body class="astro-kewpbc5u" lang="en" dir="ltr"><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><h1 id="_top" class="astro-qqx2gqcc">Stable, preview, and development channels</h1></div></div><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><div class="sl-markdown-content"><div class="sl-heading-wrapper level-h2"><h2 id="channel-model">Channel model</h2><a class="sl-anchor-link" href="#channel-model"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Channel model”</span></a></div>
73
+ </script></div></div></div></div></nav><div class="main-frame astro-gliozamz"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-zytntmjz"><aside class="right-sidebar-container print:hidden astro-zytntmjz"><div class="right-sidebar astro-zytntmjz"><div class="lg:sl-hidden astro-taqbctct"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-3qatgygh"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-3qatgygh"><details id="starlight__mobile-toc" class="astro-3qatgygh"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-3qatgygh"><span class="toggle sl-flex astro-3qatgygh">On this page<svg aria-hidden="true" class="caret astro-3qatgygh astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-3qatgygh"></span></summary><div class="dropdown astro-3qatgygh"><ul class="isMobile astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#channel-model" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Channel model</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#safety-behavior" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Safety behavior</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#moving-stable-forward" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Moving stable forward</span></a></li></ul></div></details></nav></mobile-starlight-toc><script type="module" src="/lineage/docs/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-taqbctct"><div class="sl-container astro-taqbctct"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#channel-model" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Channel model</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#safety-behavior" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Safety behavior</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#moving-stable-forward" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Moving stable forward</span></a></li></ul></nav></starlight-toc><script type="module" src="/lineage/docs/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js"></script></div></div></div></aside><div class="main-pane astro-zytntmjz"><main data-pagefind-body class="astro-kewpbc5u" lang="en" dir="ltr"><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><h1 id="_top" class="astro-qqx2gqcc">Stable, preview, and development channels</h1></div></div><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><div class="sl-markdown-content"><div class="sl-heading-wrapper level-h2"><h2 id="channel-model">Channel model</h2><a class="sl-anchor-link" href="#channel-model"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Channel model”</span></a></div>
74
74
  <ul>
75
75
  <li><strong>Stable</strong> resolves npm <code dir="auto">latest</code> into an isolated receipt-bound code root and
76
76
  runs through <code dir="auto">lineage-stable</code>.</li>
@@ -85,4 +85,13 @@ PATH-resolved <code dir="auto">lineage-dev</code> as proof that checkout code is
85
85
  operational command should begin with runtime doctor and use a profile whose
86
86
  expected runtime matches that channel.</p>
87
87
  <p>Preview and development code must not write to the stable database.</p>
88
- </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/operations/channels.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T12:45:14.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/operations/local-first-data/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Local-first data and privacy</span></span></a><a href="/lineage/docs/operations/profiles-database-identity/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Profiles and database identity</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
88
+ <div class="sl-heading-wrapper level-h2"><h2 id="moving-stable-forward">Moving stable forward</h2><a class="sl-anchor-link" href="#moving-stable-forward"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Moving stable forward”</span></a></div>
89
+ <p>Installing a newer stable package does not silently retarget an existing
90
+ production profile. Stop its managed service, install the new stable package,
91
+ run the confirmed stable-only profile upgrade, repeat the complete identity
92
+ gate, and then start it again:</p>
93
+ <div class="expressive-code"><link rel="stylesheet" href="/lineage/docs/_astro/ec.w36nc.css"><script type="module" src="/lineage/docs/_astro/ec.0vx5m.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">stop-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">upgrade-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">start-prod-bg</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">status-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="make stop-prod LINEAGE_PROD_PROFILE=team-productionmake upgrade-prod LINEAGE_PROD_PROFILE=team-productionmake start-prod-bg LINEAGE_PROD_PROFILE=team-productionmake status-prod LINEAGE_PROD_PROFILE=team-production"><div></div></button></div></figure></div>
94
+ <p><code dir="auto">profile upgrade-runtime</code> accepts no caller-supplied fingerprint, version,
95
+ receipt, or code root; the verified executing stable package is the sole target
96
+ authority. Preview and development have no equivalent command.</p>
97
+ </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/operations/channels.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T20:54:27.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/operations/local-first-data/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Local-first data and privacy</span></span></a><a href="/lineage/docs/operations/profiles-database-identity/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Profiles and database identity</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
@@ -70,7 +70,7 @@
70
70
  })();
71
71
  </script></sl-sidebar-state-persist><div class="md:sl-hidden"><div class="mobile-preferences sl-flex astro-iguen2c2"><div class="social-icons astro-iguen2c2"><a href="https://github.com/mean-weasel/lineage" rel="me" class="sl-flex astro-ecrtf6pm"><span class="sr-only astro-ecrtf6pm">GitHub</span><svg aria-hidden="true" class="astro-ecrtf6pm astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-nwqewnqn"><span class="sr-only astro-nwqewnqn">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-nwqewnqn astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-nwqewnqn"><option value="dark" class="astro-nwqewnqn">Dark</option><option value="light" class="astro-nwqewnqn">Light</option><option value="auto" selected class="astro-nwqewnqn">Auto</option></select><svg aria-hidden="true" class="icon caret astro-nwqewnqn astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
72
72
  StarlightThemeProvider.updatePickers();
73
- </script></div></div></div></div></nav><div class="main-frame astro-gliozamz"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-zytntmjz"><aside class="right-sidebar-container print:hidden astro-zytntmjz"><div class="right-sidebar astro-zytntmjz"><div class="lg:sl-hidden astro-taqbctct"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-3qatgygh"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-3qatgygh"><details id="starlight__mobile-toc" class="astro-3qatgygh"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-3qatgygh"><span class="toggle sl-flex astro-3qatgygh">On this page<svg aria-hidden="true" class="caret astro-3qatgygh astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-3qatgygh"></span></summary><div class="dropdown astro-3qatgygh"><ul class="isMobile astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#what-this-does" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">What this does</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-gate" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity gate</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#development-repinning" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Development repinning</span></a></li></ul></div></details></nav></mobile-starlight-toc><script type="module" src="/lineage/docs/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-taqbctct"><div class="sl-container astro-taqbctct"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#what-this-does" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">What this does</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-gate" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity gate</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#development-repinning" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Development repinning</span></a></li></ul></nav></starlight-toc><script type="module" src="/lineage/docs/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js"></script></div></div></div></aside><div class="main-pane astro-zytntmjz"><main data-pagefind-body class="astro-kewpbc5u" lang="en" dir="ltr"><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><h1 id="_top" class="astro-qqx2gqcc">Profiles and database identity</h1></div></div><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><div class="sl-markdown-content"><div class="sl-heading-wrapper level-h2"><h2 id="what-this-does">What this does</h2><a class="sl-anchor-link" href="#what-this-does"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “What this does”</span></a></div>
73
+ </script></div></div></div></div></nav><div class="main-frame astro-gliozamz"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-zytntmjz"><aside class="right-sidebar-container print:hidden astro-zytntmjz"><div class="right-sidebar astro-zytntmjz"><div class="lg:sl-hidden astro-taqbctct"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-3qatgygh"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-3qatgygh"><details id="starlight__mobile-toc" class="astro-3qatgygh"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-3qatgygh"><span class="toggle sl-flex astro-3qatgygh">On this page<svg aria-hidden="true" class="caret astro-3qatgygh astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-3qatgygh"></span></summary><div class="dropdown astro-3qatgygh"><ul class="isMobile astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#what-this-does" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">What this does</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-gate" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity gate</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#development-repinning" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Development repinning</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#stable-package-upgrades" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Stable package upgrades</span></a></li></ul></div></details></nav></mobile-starlight-toc><script type="module" src="/lineage/docs/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-taqbctct"><div class="sl-container astro-taqbctct"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#what-this-does" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">What this does</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-gate" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity gate</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#development-repinning" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Development repinning</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#stable-package-upgrades" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Stable package upgrades</span></a></li></ul></nav></starlight-toc><script type="module" src="/lineage/docs/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js"></script></div></div></div></aside><div class="main-pane astro-zytntmjz"><main data-pagefind-body class="astro-kewpbc5u" lang="en" dir="ltr"><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><h1 id="_top" class="astro-qqx2gqcc">Profiles and database identity</h1></div></div><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><div class="sl-markdown-content"><div class="sl-heading-wrapper level-h2"><h2 id="what-this-does">What this does</h2><a class="sl-anchor-link" href="#what-this-does"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “What this does”</span></a></div>
74
74
  <p>A named profile binds Lineage to an environment, database, media root, service
75
75
  origin, and expected runtime fingerprint.</p>
76
76
  <div class="sl-heading-wrapper level-h2"><h2 id="identity-gate">Identity gate</h2><a class="sl-anchor-link" href="#identity-gate"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Identity gate”</span></a></div>
@@ -87,4 +87,18 @@ identity, profile fingerprint, and service origin all agree.</li>
87
87
  <p>After an intentional checkout change, stop the matching development service,
88
88
  run <code dir="auto">make repin-dev LINEAGE_DEV_PROFILE=&lt;profile&gt;</code>, and repeat the gate.
89
89
  Repinning never applies to stable or preview package code.</p>
90
- </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/operations/profiles-database-identity.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T12:45:14.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/operations/channels/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Stable, preview, and development channels</span></span></a><a href="/lineage/docs/operations/backup-recovery/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Backup and recovery</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
90
+ <div class="sl-heading-wrapper level-h2"><h2 id="stable-package-upgrades">Stable package upgrades</h2><a class="sl-anchor-link" href="#stable-package-upgrades"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Stable package upgrades”</span></a></div>
91
+ <p>For an existing production profile, make the stopped interval explicit:</p>
92
+ <div class="expressive-code"><link rel="stylesheet" href="/lineage/docs/_astro/ec.w36nc.css"><script type="module" src="/lineage/docs/_astro/ec.0vx5m.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">stop-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">upgrade-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">start-prod-bg</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">status-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="make stop-prod LINEAGE_PROD_PROFILE=team-productionmake upgrade-prod LINEAGE_PROD_PROFILE=team-productionmake start-prod-bg LINEAGE_PROD_PROFILE=team-productionmake status-prod LINEAGE_PROD_PROFILE=team-production"><div></div></button></div></figure></div>
93
+ <p><code dir="auto">upgrade-prod</code> installs npm <code dir="auto">latest</code>, verifies the new stable runtime, runs
94
+ <code dir="auto">lineage-stable profile upgrade-runtime --profile &lt;profile&gt; --confirm-write</code>,
95
+ and repeats runtime doctor, profile doctor, and profile-selected <code dir="auto">db info</code>.
96
+ It does not stop or restart the service.</p>
97
+ <p>The command derives its target from the executing verified stable package. It
98
+ requires a production profile already pinned to stable package code and an
99
+ available profile writer lease. It preserves profile/database identity,
100
+ database and media paths and contents, service origin, migration requirements,
101
+ and unknown manifest fields. Preview/dev/unverified code, active writers,
102
+ downgrades, same-version identity anomalies, unhealthy data, and unsafe
103
+ manifest ownership fail closed.</p>
104
+ </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/operations/profiles-database-identity.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T20:54:27.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/operations/channels/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Stable, preview, and development channels</span></span></a><a href="/lineage/docs/operations/backup-recovery/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Backup and recovery</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
@@ -1 +1 @@
1
- {"version":"1.5.2","languages":{"en":{"hash":"en_74951c3ca7","wasm":"en","page_count":31}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
1
+ {"version":"1.5.2","languages":{"en":{"hash":"en_4e77743529","wasm":"en","page_count":31}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
@@ -70,17 +70,26 @@
70
70
  })();
71
71
  </script></sl-sidebar-state-persist><div class="md:sl-hidden"><div class="mobile-preferences sl-flex astro-iguen2c2"><div class="social-icons astro-iguen2c2"><a href="https://github.com/mean-weasel/lineage" rel="me" class="sl-flex astro-ecrtf6pm"><span class="sr-only astro-ecrtf6pm">GitHub</span><svg aria-hidden="true" class="astro-ecrtf6pm astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-nwqewnqn"><span class="sr-only astro-nwqewnqn">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-nwqewnqn astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-nwqewnqn"><option value="dark" class="astro-nwqewnqn">Dark</option><option value="light" class="astro-nwqewnqn">Light</option><option value="auto" selected class="astro-nwqewnqn">Auto</option></select><svg aria-hidden="true" class="icon caret astro-nwqewnqn astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
72
72
  StarlightThemeProvider.updatePickers();
73
- </script></div></div></div></div></nav><div class="main-frame astro-gliozamz"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-zytntmjz"><aside class="right-sidebar-container print:hidden astro-zytntmjz"><div class="right-sidebar astro-zytntmjz"><div class="lg:sl-hidden astro-taqbctct"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-3qatgygh"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-3qatgygh"><details id="starlight__mobile-toc" class="astro-3qatgygh"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-3qatgygh"><span class="toggle sl-flex astro-3qatgygh">On this page<svg aria-hidden="true" class="caret astro-3qatgygh astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-3qatgygh"></span></summary><div class="dropdown astro-3qatgygh"><ul class="isMobile astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#creative-workflow-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Creative workflow commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#agent-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Agent commands</span></a></li></ul></div></details></nav></mobile-starlight-toc><script type="module" src="/lineage/docs/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-taqbctct"><div class="sl-container astro-taqbctct"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#creative-workflow-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Creative workflow commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#agent-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Agent commands</span></a></li></ul></nav></starlight-toc><script type="module" src="/lineage/docs/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js"></script></div></div></div></aside><div class="main-pane astro-zytntmjz"><main data-pagefind-body class="astro-kewpbc5u" lang="en" dir="ltr"><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><h1 id="_top" class="astro-qqx2gqcc">CLI commands</h1></div></div><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><div class="sl-markdown-content"><div class="sl-heading-wrapper level-h2"><h2 id="identity-commands">Identity commands</h2><a class="sl-anchor-link" href="#identity-commands"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Identity commands”</span></a></div>
73
+ </script></div></div></div></div></nav><div class="main-frame astro-gliozamz"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-zytntmjz"><aside class="right-sidebar-container print:hidden astro-zytntmjz"><div class="right-sidebar astro-zytntmjz"><div class="lg:sl-hidden astro-taqbctct"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-3qatgygh"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-3qatgygh"><details id="starlight__mobile-toc" class="astro-3qatgygh"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-3qatgygh"><span class="toggle sl-flex astro-3qatgygh">On this page<svg aria-hidden="true" class="caret astro-3qatgygh astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-3qatgygh"></span></summary><div class="dropdown astro-3qatgygh"><ul class="isMobile astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#creative-workflow-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Creative workflow commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#social-marks" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Social marks</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#agent-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Agent commands</span></a></li></ul></div></details></nav></mobile-starlight-toc><script type="module" src="/lineage/docs/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-taqbctct"><div class="sl-container astro-taqbctct"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-evf2ngtx" style="--depth: 0;"><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#_top" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Overview</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#identity-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Identity commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#creative-workflow-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Creative workflow commands</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#social-marks" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Social marks</span></a></li><li style="--depth: 0;" class="astro-evf2ngtx"><a href="#agent-commands" style="--depth: 0;" class="astro-evf2ngtx"><span style="--depth: 0;" class="astro-evf2ngtx">Agent commands</span></a></li></ul></nav></starlight-toc><script type="module" src="/lineage/docs/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js"></script></div></div></div></aside><div class="main-pane astro-zytntmjz"><main data-pagefind-body class="astro-kewpbc5u" lang="en" dir="ltr"><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><h1 id="_top" class="astro-qqx2gqcc">CLI commands</h1></div></div><div class="content-panel astro-kjcc4ior"><div class="sl-container astro-kjcc4ior"><div class="sl-markdown-content"><div class="sl-heading-wrapper level-h2"><h2 id="identity-commands">Identity commands</h2><a class="sl-anchor-link" href="#identity-commands"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Identity commands”</span></a></div>
74
74
  <div class="expressive-code"><link rel="stylesheet" href="/lineage/docs/_astro/ec.w36nc.css"><script type="module" src="/lineage/docs/_astro/ec.0vx5m.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">lineage-stable</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">runtime</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">doctor</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">--json</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">lineage-stable</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">profile</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">doctor</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">--profile</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">team-production</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">--json</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">lineage-stable</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">db</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">info</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">--profile</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">team-production</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">--json</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="lineage-stable runtime doctor --jsonlineage-stable profile doctor --profile team-production --jsonlineage-stable db info --profile team-production --json"><div></div></button></div></figure></div>
75
75
  <div class="sl-heading-wrapper level-h2"><h2 id="creative-workflow-commands">Creative workflow commands</h2><a class="sl-anchor-link" href="#creative-workflow-commands"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Creative workflow commands”</span></a></div>
76
76
  <p>Use <code dir="auto">inspect</code>, <code dir="auto">next</code>, and <code dir="auto">brief</code> for read-only context. Use <code dir="auto">link-child</code> for a
77
77
  new visible branch. Use the <code dir="auto">reroll</code> sequence for another attempt on one asset.
78
78
  Use <code dir="auto">generate image plan</code>, <code dir="auto">inspect</code>, and <code dir="auto">import</code> for the Codex handoff
79
79
  workflow.</p>
80
+ <div class="sl-heading-wrapper level-h2"><h2 id="social-marks">Social marks</h2><a class="sl-anchor-link" href="#social-marks"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Social marks”</span></a></div>
81
+ <p>Mark an asset when it is ready for social discussion, captioning, or scheduling.
82
+ Marks are scoped to one project and lineage canvas; Lineage does not upload,
83
+ schedule, or publish the media.</p>
84
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">lineage-stable</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">social</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">list</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--profile</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">team-production</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--project</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;project&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--root</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;root-asset-id&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--json</span></div></div><div class="ec-line"><div class="code">
85
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">lineage-stable</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">social</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">mark</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--profile</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">team-production</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--project</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;project&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--root</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;root-asset-id&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--asset</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;asset-id-or-exact-title&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--confirm-write</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--json</span></div></div><div class="ec-line"><div class="code">
86
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">lineage-stable</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">social</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">unmark</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--profile</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">team-production</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--project</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;project&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--root</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;root-asset-id&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--asset</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">&lt;asset-id-or-exact-title&gt;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--confirm-write</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">--json</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="lineage-stable social list \ --profile team-production \ --project <project> \ --root <root-asset-id> \ --jsonlineage-stable social mark \ --profile team-production \ --project <project> \ --root <root-asset-id> \ --asset <asset-id-or-exact-title> \ --confirm-write \ --jsonlineage-stable social unmark \ --profile team-production \ --project <project> \ --root <root-asset-id> \ --asset <asset-id-or-exact-title> \ --confirm-write \ --json"><div></div></button></div></figure></div>
87
+ <p>The canvas exposes the same state from the asset card, context menu, and <code dir="auto">S</code>
88
+ keyboard shortcut. Agent mutations still require any active claim token.</p>
80
89
  <div class="sl-heading-wrapper level-h2"><h2 id="agent-commands">Agent commands</h2><a class="sl-anchor-link" href="#agent-commands"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Agent commands”</span></a></div>
81
90
  <p>Use <code dir="auto">agent claim</code>, <code dir="auto">heartbeat</code>, and <code dir="auto">release</code> around a bounded mutation. Claim
82
91
  tokens are sensitive authorization material and should not be pasted into
83
92
  documentation or logs.</p>
84
93
  <p>Run <code dir="auto">&lt;launcher&gt; --help</code> for the exact commands supported by the installed
85
94
  version.</p>
86
- </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/reference/cli.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T12:45:14.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/reference/settings/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Settings reference</span></span></a><a href="/lineage/docs/reference/terminology/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Terminology</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
95
+ </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/reference/cli.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T21:32:39.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/reference/settings/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Settings reference</span></span></a><a href="/lineage/docs/reference/terminology/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Terminology</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
@@ -82,5 +82,11 @@ database identity, or service origin disagree.</p>
82
82
  <p>Persistent writes require a named profile. Direct database paths are intended
83
83
  for diagnostic, read-only use; they are not a substitute for profile identity.
84
84
  Stable, preview, and development code must use separate profiles and databases.</p>
85
+ <p>For later stable releases, do not reinitialize the profile. Follow the guarded
86
+ stopped-service workflow:</p>
87
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">stop-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">upgrade-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">start-prod-bg</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">make</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">status-prod</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">LINEAGE_PROD_PROFILE=team-production</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="make stop-prod LINEAGE_PROD_PROFILE=team-productionmake upgrade-prod LINEAGE_PROD_PROFILE=team-productionmake start-prod-bg LINEAGE_PROD_PROFILE=team-productionmake status-prod LINEAGE_PROD_PROFILE=team-production"><div></div></button></div></figure></div>
88
+ <p>The upgrade target is derived from the newly installed verified stable package,
89
+ and the Make target repeats runtime doctor, profile doctor, and <code dir="auto">db info</code> before
90
+ you restart.</p>
85
91
  <p>Continue with <a href="first-workspace">Create your first workspace</a>.</p>
86
- </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/start-here/installation-first-run.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T12:45:14.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/start-here/what-is-lineage/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">What is Lineage?</span></span></a><a href="/lineage/docs/start-here/first-workspace/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Create your first workspace</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
92
+ </div><footer class="sl-flex astro-s7s6jy2o"><div class="meta sl-flex astro-s7s6jy2o"><a href="https://github.com/mean-weasel/lineage/edit/main/docs-site/src/content/docs/start-here/installation-first-run.md" class="sl-flex print:hidden astro-xkimho4o"><svg aria-hidden="true" class="astro-xkimho4o astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a><p>Last updated: <time datetime="2026-07-25T20:54:27.000Z">Jul 25, 2026</time></p></div><div class="pagination-links print:hidden astro-acaqesae" dir="ltr"><a href="/lineage/docs/start-here/what-is-lineage/" rel="prev" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-acaqesae">Previous<br class="astro-acaqesae"><span class="link-title astro-acaqesae">What is Lineage?</span></span></a><a href="/lineage/docs/start-here/first-workspace/" rel="next" class="astro-acaqesae"><svg aria-hidden="true" class="astro-acaqesae astro-t4uoh32v" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-acaqesae">Next<br class="astro-acaqesae"><span class="link-title astro-acaqesae">Create your first workspace</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
@@ -1,9 +1,9 @@
1
1
  {
2
- "build_fingerprint": "87af6fb6a6939fd2ab1e8429905df2c9488cd178906b74b3385b1fcf63e4fcfb",
2
+ "build_fingerprint": "1de9a20d920379b657767e159916911a4e232357924c1ce80fff291f73de9c46",
3
3
  "package_name": "@mean-weasel/lineage",
4
- "package_version": "0.1.23",
4
+ "package_version": "0.1.24",
5
5
  "schema_version": "lineage.runtime_build.v1",
6
6
  "source_dirty": true,
7
- "source_fingerprint": "0e6a9e74e2bd363fa5a66455137a443863e75aa171e5ad8e672177020cd25eef",
8
- "source_git_sha": "08ee55e788d4bf5debee2b45ac305610863603b6"
7
+ "source_fingerprint": "bc512d2d50f082c272f6dda86a69aae05b6175f31344163206be59752a52cc2d",
8
+ "source_git_sha": "d6299071a5a3d71b0c0c3c9ee28b6955ef1a7c7c"
9
9
  }