docs(website): add updates guide for daemon and apps
This commit is contained in:
@@ -15,6 +15,7 @@ import { Route as IndexRouteImport } from './routes/index'
|
|||||||
import { Route as DocsIndexRouteImport } from './routes/docs/index'
|
import { Route as DocsIndexRouteImport } from './routes/docs/index'
|
||||||
import { Route as DocsWorktreesRouteImport } from './routes/docs/worktrees'
|
import { Route as DocsWorktreesRouteImport } from './routes/docs/worktrees'
|
||||||
import { Route as DocsVoiceRouteImport } from './routes/docs/voice'
|
import { Route as DocsVoiceRouteImport } from './routes/docs/voice'
|
||||||
|
import { Route as DocsUpdatesRouteImport } from './routes/docs/updates'
|
||||||
import { Route as DocsSecurityRouteImport } from './routes/docs/security'
|
import { Route as DocsSecurityRouteImport } from './routes/docs/security'
|
||||||
import { Route as DocsConfigurationRouteImport } from './routes/docs/configuration'
|
import { Route as DocsConfigurationRouteImport } from './routes/docs/configuration'
|
||||||
import { Route as DocsCliRouteImport } from './routes/docs/cli'
|
import { Route as DocsCliRouteImport } from './routes/docs/cli'
|
||||||
@@ -50,6 +51,11 @@ const DocsVoiceRoute = DocsVoiceRouteImport.update({
|
|||||||
path: '/voice',
|
path: '/voice',
|
||||||
getParentRoute: () => DocsRoute,
|
getParentRoute: () => DocsRoute,
|
||||||
} as any)
|
} as any)
|
||||||
|
const DocsUpdatesRoute = DocsUpdatesRouteImport.update({
|
||||||
|
id: '/updates',
|
||||||
|
path: '/updates',
|
||||||
|
getParentRoute: () => DocsRoute,
|
||||||
|
} as any)
|
||||||
const DocsSecurityRoute = DocsSecurityRouteImport.update({
|
const DocsSecurityRoute = DocsSecurityRouteImport.update({
|
||||||
id: '/security',
|
id: '/security',
|
||||||
path: '/security',
|
path: '/security',
|
||||||
@@ -79,6 +85,7 @@ export interface FileRoutesByFullPath {
|
|||||||
'/docs/cli': typeof DocsCliRoute
|
'/docs/cli': typeof DocsCliRoute
|
||||||
'/docs/configuration': typeof DocsConfigurationRoute
|
'/docs/configuration': typeof DocsConfigurationRoute
|
||||||
'/docs/security': typeof DocsSecurityRoute
|
'/docs/security': typeof DocsSecurityRoute
|
||||||
|
'/docs/updates': typeof DocsUpdatesRoute
|
||||||
'/docs/voice': typeof DocsVoiceRoute
|
'/docs/voice': typeof DocsVoiceRoute
|
||||||
'/docs/worktrees': typeof DocsWorktreesRoute
|
'/docs/worktrees': typeof DocsWorktreesRoute
|
||||||
'/docs/': typeof DocsIndexRoute
|
'/docs/': typeof DocsIndexRoute
|
||||||
@@ -90,6 +97,7 @@ export interface FileRoutesByTo {
|
|||||||
'/docs/cli': typeof DocsCliRoute
|
'/docs/cli': typeof DocsCliRoute
|
||||||
'/docs/configuration': typeof DocsConfigurationRoute
|
'/docs/configuration': typeof DocsConfigurationRoute
|
||||||
'/docs/security': typeof DocsSecurityRoute
|
'/docs/security': typeof DocsSecurityRoute
|
||||||
|
'/docs/updates': typeof DocsUpdatesRoute
|
||||||
'/docs/voice': typeof DocsVoiceRoute
|
'/docs/voice': typeof DocsVoiceRoute
|
||||||
'/docs/worktrees': typeof DocsWorktreesRoute
|
'/docs/worktrees': typeof DocsWorktreesRoute
|
||||||
'/docs': typeof DocsIndexRoute
|
'/docs': typeof DocsIndexRoute
|
||||||
@@ -103,6 +111,7 @@ export interface FileRoutesById {
|
|||||||
'/docs/cli': typeof DocsCliRoute
|
'/docs/cli': typeof DocsCliRoute
|
||||||
'/docs/configuration': typeof DocsConfigurationRoute
|
'/docs/configuration': typeof DocsConfigurationRoute
|
||||||
'/docs/security': typeof DocsSecurityRoute
|
'/docs/security': typeof DocsSecurityRoute
|
||||||
|
'/docs/updates': typeof DocsUpdatesRoute
|
||||||
'/docs/voice': typeof DocsVoiceRoute
|
'/docs/voice': typeof DocsVoiceRoute
|
||||||
'/docs/worktrees': typeof DocsWorktreesRoute
|
'/docs/worktrees': typeof DocsWorktreesRoute
|
||||||
'/docs/': typeof DocsIndexRoute
|
'/docs/': typeof DocsIndexRoute
|
||||||
@@ -117,6 +126,7 @@ export interface FileRouteTypes {
|
|||||||
| '/docs/cli'
|
| '/docs/cli'
|
||||||
| '/docs/configuration'
|
| '/docs/configuration'
|
||||||
| '/docs/security'
|
| '/docs/security'
|
||||||
|
| '/docs/updates'
|
||||||
| '/docs/voice'
|
| '/docs/voice'
|
||||||
| '/docs/worktrees'
|
| '/docs/worktrees'
|
||||||
| '/docs/'
|
| '/docs/'
|
||||||
@@ -128,6 +138,7 @@ export interface FileRouteTypes {
|
|||||||
| '/docs/cli'
|
| '/docs/cli'
|
||||||
| '/docs/configuration'
|
| '/docs/configuration'
|
||||||
| '/docs/security'
|
| '/docs/security'
|
||||||
|
| '/docs/updates'
|
||||||
| '/docs/voice'
|
| '/docs/voice'
|
||||||
| '/docs/worktrees'
|
| '/docs/worktrees'
|
||||||
| '/docs'
|
| '/docs'
|
||||||
@@ -140,6 +151,7 @@ export interface FileRouteTypes {
|
|||||||
| '/docs/cli'
|
| '/docs/cli'
|
||||||
| '/docs/configuration'
|
| '/docs/configuration'
|
||||||
| '/docs/security'
|
| '/docs/security'
|
||||||
|
| '/docs/updates'
|
||||||
| '/docs/voice'
|
| '/docs/voice'
|
||||||
| '/docs/worktrees'
|
| '/docs/worktrees'
|
||||||
| '/docs/'
|
| '/docs/'
|
||||||
@@ -195,6 +207,13 @@ declare module '@tanstack/react-router' {
|
|||||||
preLoaderRoute: typeof DocsVoiceRouteImport
|
preLoaderRoute: typeof DocsVoiceRouteImport
|
||||||
parentRoute: typeof DocsRoute
|
parentRoute: typeof DocsRoute
|
||||||
}
|
}
|
||||||
|
'/docs/updates': {
|
||||||
|
id: '/docs/updates'
|
||||||
|
path: '/updates'
|
||||||
|
fullPath: '/docs/updates'
|
||||||
|
preLoaderRoute: typeof DocsUpdatesRouteImport
|
||||||
|
parentRoute: typeof DocsRoute
|
||||||
|
}
|
||||||
'/docs/security': {
|
'/docs/security': {
|
||||||
id: '/docs/security'
|
id: '/docs/security'
|
||||||
path: '/security'
|
path: '/security'
|
||||||
@@ -231,6 +250,7 @@ interface DocsRouteChildren {
|
|||||||
DocsCliRoute: typeof DocsCliRoute
|
DocsCliRoute: typeof DocsCliRoute
|
||||||
DocsConfigurationRoute: typeof DocsConfigurationRoute
|
DocsConfigurationRoute: typeof DocsConfigurationRoute
|
||||||
DocsSecurityRoute: typeof DocsSecurityRoute
|
DocsSecurityRoute: typeof DocsSecurityRoute
|
||||||
|
DocsUpdatesRoute: typeof DocsUpdatesRoute
|
||||||
DocsVoiceRoute: typeof DocsVoiceRoute
|
DocsVoiceRoute: typeof DocsVoiceRoute
|
||||||
DocsWorktreesRoute: typeof DocsWorktreesRoute
|
DocsWorktreesRoute: typeof DocsWorktreesRoute
|
||||||
DocsIndexRoute: typeof DocsIndexRoute
|
DocsIndexRoute: typeof DocsIndexRoute
|
||||||
@@ -241,6 +261,7 @@ const DocsRouteChildren: DocsRouteChildren = {
|
|||||||
DocsCliRoute: DocsCliRoute,
|
DocsCliRoute: DocsCliRoute,
|
||||||
DocsConfigurationRoute: DocsConfigurationRoute,
|
DocsConfigurationRoute: DocsConfigurationRoute,
|
||||||
DocsSecurityRoute: DocsSecurityRoute,
|
DocsSecurityRoute: DocsSecurityRoute,
|
||||||
|
DocsUpdatesRoute: DocsUpdatesRoute,
|
||||||
DocsVoiceRoute: DocsVoiceRoute,
|
DocsVoiceRoute: DocsVoiceRoute,
|
||||||
DocsWorktreesRoute: DocsWorktreesRoute,
|
DocsWorktreesRoute: DocsWorktreesRoute,
|
||||||
DocsIndexRoute: DocsIndexRoute,
|
DocsIndexRoute: DocsIndexRoute,
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ export const Route = createFileRoute('/docs')({
|
|||||||
|
|
||||||
const navigation = [
|
const navigation = [
|
||||||
{ name: 'Getting started', href: '/docs' },
|
{ name: 'Getting started', href: '/docs' },
|
||||||
|
{ name: 'Updates', href: '/docs/updates' },
|
||||||
{ name: 'Voice', href: '/docs/voice' },
|
{ name: 'Voice', href: '/docs/voice' },
|
||||||
{ name: 'Git worktrees', href: '/docs/worktrees' },
|
{ name: 'Git worktrees', href: '/docs/worktrees' },
|
||||||
{ name: 'CLI', href: '/docs/cli' },
|
{ name: 'CLI', href: '/docs/cli' },
|
||||||
|
|||||||
@@ -101,6 +101,11 @@ function GettingStarted() {
|
|||||||
<section className="space-y-4">
|
<section className="space-y-4">
|
||||||
<h2 className="text-xl font-medium">Next</h2>
|
<h2 className="text-xl font-medium">Next</h2>
|
||||||
<ul className="text-white/60 space-y-2 list-disc list-inside">
|
<ul className="text-white/60 space-y-2 list-disc list-inside">
|
||||||
|
<li>
|
||||||
|
<a href="/docs/updates" className="underline hover:text-white/80">
|
||||||
|
Updates
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/docs/voice" className="underline hover:text-white/80">
|
<a href="/docs/voice" className="underline hover:text-white/80">
|
||||||
Voice
|
Voice
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
import { createFileRoute } from '@tanstack/react-router'
|
||||||
|
|
||||||
|
export const Route = createFileRoute('/docs/updates')({
|
||||||
|
head: () => ({
|
||||||
|
meta: [
|
||||||
|
{ title: 'Updates - Paseo Docs' },
|
||||||
|
{
|
||||||
|
name: 'description',
|
||||||
|
content: 'How to update Paseo daemon and apps across web, desktop, and mobile.',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
component: UpdatesDocs,
|
||||||
|
})
|
||||||
|
|
||||||
|
function UpdatesDocs() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-8">
|
||||||
|
<div>
|
||||||
|
<h1 className="text-3xl font-medium font-title mb-4">Updates</h1>
|
||||||
|
<p className="text-white/60 leading-relaxed">
|
||||||
|
Keep your daemon and apps current to get the latest fixes and features.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section className="space-y-4">
|
||||||
|
<h2 className="text-xl font-medium">Version compatibility</h2>
|
||||||
|
<p className="text-white/60">
|
||||||
|
For now, daemon and app versions should be kept in lockstep. If your daemon is version X,
|
||||||
|
make sure your clients are also version X.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section className="space-y-4">
|
||||||
|
<h2 className="text-xl font-medium">Update the daemon</h2>
|
||||||
|
<p className="text-white/60">Install the latest CLI/daemon package globally:</p>
|
||||||
|
<div className="bg-card border border-border rounded-lg p-4 font-mono text-sm">
|
||||||
|
<span className="text-muted-foreground select-none">$ </span>
|
||||||
|
<span>npm install -g @getpaseo/cli@latest</span>
|
||||||
|
</div>
|
||||||
|
<p className="text-white/60">Then restart the daemon:</p>
|
||||||
|
<div className="bg-card border border-border rounded-lg p-4 font-mono text-sm">
|
||||||
|
<span className="text-muted-foreground select-none">$ </span>
|
||||||
|
<span>paseo daemon restart</span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section className="space-y-4">
|
||||||
|
<h2 className="text-xl font-medium">Web app</h2>
|
||||||
|
<p className="text-white/60">
|
||||||
|
<a
|
||||||
|
href="https://app.paseo.sh"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="underline hover:text-white/80"
|
||||||
|
>
|
||||||
|
app.paseo.sh
|
||||||
|
</a>{' '}
|
||||||
|
is always up to date. No manual update needed.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section className="space-y-4">
|
||||||
|
<h2 className="text-xl font-medium">Desktop app</h2>
|
||||||
|
<p className="text-white/60">
|
||||||
|
Download the latest desktop build from the GitHub releases page and install it over your
|
||||||
|
current version.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://github.com/getpaseo/paseo/releases"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="underline hover:text-white/80"
|
||||||
|
>
|
||||||
|
Paseo releases
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section className="space-y-4">
|
||||||
|
<h2 className="text-xl font-medium">Mobile apps</h2>
|
||||||
|
<p className="text-white/60">
|
||||||
|
Mobile apps are not yet publicly available in the App Store or Play Store. We are working
|
||||||
|
on public store availability.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user