diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 67fc0f9fa..f2a420429 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -8,11 +8,11 @@ body: attributes: label: Pre-flight checklist options: - - label: I have searched [existing issues](https://github.com/mauriceboe/TREK/issues) and this bug has not been reported yet + - label: I have searched [existing issues](https://github.com/liketrek/TREK/issues) and this bug has not been reported yet required: true - label: I am running the latest available version of TREK required: true - - label: I have read the [Troubleshooting guide](https://github.com/mauriceboe/TREK/wiki/Troubleshooting) and my issue is not covered there + - label: I have read the [Troubleshooting guide](https://github.com/liketrek/TREK/wiki/Troubleshooting) and my issue is not covered there required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index a1e0f7bb9..4ec777110 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,11 @@ blank_issues_enabled: false contact_links: - name: Documentation - url: https://github.com/mauriceboe/TREK/wiki + url: https://github.com/liketrek/TREK/wiki about: Check the docs before opening an issue - name: Feature Request - url: https://github.com/mauriceboe/TREK/discussions/new?category=feature-requests + url: https://github.com/liketrek/TREK/discussions/new?category=feature-requests about: Suggest a new feature or improvement in Discussions - name: Questions & Help - url: https://github.com/mauriceboe/TREK/discussions + url: https://github.com/liketrek/TREK/discussions about: For questions and general help, use Discussions instead \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index be0f9d72e..bcb8250db 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -13,8 +13,8 @@ - [ ] Documentation update ## Checklist -- [ ] I have read the [Contributing Guidelines](https://github.com/mauriceboe/TREK/wiki/Contributing) -- [ ] My branch is [up to date with `dev`](https://github.com/mauriceboe/TREK/wiki/Development-environment#3-keep-your-fork-up-to-date) +- [ ] I have read the [Contributing Guidelines](https://github.com/liketrek/TREK/wiki/Contributing) +- [ ] My branch is [up to date with `dev`](https://github.com/liketrek/TREK/wiki/Development-environment#3-keep-your-fork-up-to-date) - [ ] This PR targets the `dev` branch, not `main` *(wiki-only PRs are exempt)* - [ ] I have tested my changes locally - [ ] I have added/updated tests that prove my fix is effective or that my feature works diff --git a/.github/workflows/close-untitled-issues.yml b/.github/workflows/close-untitled-issues.yml index 0cd817682..0e303dffe 100644 --- a/.github/workflows/close-untitled-issues.yml +++ b/.github/workflows/close-untitled-issues.yml @@ -77,7 +77,7 @@ jobs: body: [ '## Wrong place for feature requests', '', - 'Feature requests should be submitted in [Discussions](https://github.com/mauriceboe/TREK/discussions/new?category=feature-requests), not as issues.', + 'Feature requests should be submitted in [Discussions](https://github.com/liketrek/TREK/discussions/new?category=feature-requests), not as issues.', '', 'This issue has been closed. Feel free to re-submit your idea in the right place!', ].join('\n'), diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 73def1e0d..2c4cf649a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ Thanks for your interest in contributing! Please read these guidelines before op 4. **Target the `dev` branch** — All PRs must be opened against `dev`, not `main`. Exception: PRs that only modify files under `wiki/` may target any branch 5. **Match the existing style** — No reformatting, no linter config changes, no "while I'm here" cleanups 6. **Tests** — Your changes must include tests. The project maintains 80%+ coverage; PRs that drop it will be closed -7. **Branch up to date** — Your branch must be [up to date with `dev`](https://github.com/mauriceboe/TREK/wiki/Development-environment#3-keep-your-fork-up-to-date) before submitting a PR +7. **Branch up to date** — Your branch must be [up to date with `dev`](https://github.com/liketrek/TREK/wiki/Development-environment#3-keep-your-fork-up-to-date) before submitting a PR ## Pull Requests @@ -39,8 +39,8 @@ feat(budget): add CSV export for expenses ## Development Environment -See the [Developer Environment page](https://github.com/mauriceboe/TREK/wiki/Development-environment) for more information on setting up your development environment. +See the [Developer Environment page](https://github.com/liketrek/TREK/wiki/Development-environment) for more information on setting up your development environment. ## More Details -See the [Contributing wiki page](https://github.com/mauriceboe/TREK/wiki/Contributing) for the full tech stack, architecture overview, and detailed guidelines. +See the [Contributing wiki page](https://github.com/liketrek/TREK/wiki/Contributing) for the full tech stack, architecture overview, and detailed guidelines. diff --git a/README.md b/README.md index 0b0920e14..724bcd710 100644 --- a/README.md +++ b/README.md @@ -31,9 +31,9 @@ A self-hosted, real-time collaborative travel planner — with maps, budgets, pa BMAC
License -Latest Release +Latest Release Docker Pulls -Stars +Stars @@ -41,7 +41,7 @@ A self-hosted, real-time collaborative travel planner — with maps, budgets, pa
-TREK — 60-second tour +TREK — 60-second tour
@@ -280,7 +280,7 @@ helm repo update helm install trek trek/trek ``` -See [`charts/README.md`](https://github.com/mauriceboe/TREK/blob/main/charts/README.md) for values. +See [`charts/README.md`](https://github.com/liketrek/TREK/blob/main/charts/README.md) for values.

Install as App (PWA)

@@ -331,7 +331,7 @@ The script creates a timestamped DB backup before making changes and prompts for For production, put TREK behind a TLS-terminating reverse proxy. TREK uses WebSockets for real-time sync, so the proxy **must** support WebSocket upgrades on `/ws`. -If you use the MCP addon, the proxy must also pass the `Mcp-Session-Id` header through in both directions on `/mcp` — Nginx and Caddy do this by default, but a proxy that strips it makes every tool call open a new session instead of reusing one. See the [Reverse Proxy wiki page](https://github.com/mauriceboe/TREK/wiki/Reverse-Proxy) for details. +If you use the MCP addon, the proxy must also pass the `Mcp-Session-Id` header through in both directions on `/mcp` — Nginx and Caddy do this by default, but a proxy that strips it makes every tool call open a new session instead of reusing one. See the [Reverse Proxy wiki page](https://github.com/liketrek/TREK/wiki/Reverse-Proxy) for details.
Nginx diff --git a/ca_profile.xml b/ca_profile.xml index 1c129c1ed..60e60a0bf 100644 --- a/ca_profile.xml +++ b/ca_profile.xml @@ -2,8 +2,8 @@ TREK is a self-hosted, real-time collaborative travel planner. Plan trips together with interactive maps, budgets, bookings, packing lists, day-by-day itineraries and file management — every change syncs instantly across everyone in your group. Includes OIDC/SSO, TOTP MFA, dark mode, PWA support, multi-language UI and a modular addon system (Vacay, Atlas, Collab, Budget, Packing, Journey). Maintained by mauriceboe — support and bug reports via GitHub Issues. https://raw.githubusercontent.com/mauriceboe/TREK/main/docs/trek-icon.png - https://github.com/mauriceboe/TREK - https://github.com/mauriceboe/TREK/issues + https://github.com/liketrek/TREK + https://github.com/liketrek/TREK/issues https://ko-fi.com/mauriceboe Support TREK development diff --git a/client/src/components/Admin/GitHubPanel.tsx b/client/src/components/Admin/GitHubPanel.tsx index 4ea99b0de..bc64a1648 100644 --- a/client/src/components/Admin/GitHubPanel.tsx +++ b/client/src/components/Admin/GitHubPanel.tsx @@ -1,146 +1,187 @@ -import { useState, useEffect } from 'react' -import { Tag, Calendar, ExternalLink, ChevronDown, ChevronUp, Loader2, Heart, Coffee, Bug, Lightbulb, BookOpen } from 'lucide-react' -import { getLocaleForLanguage, useTranslation } from '../../i18n' -import apiClient from '../../api/client' +import { + BookOpen, + Bug, + Calendar, + ChevronDown, + ChevronUp, + Coffee, + ExternalLink, + Heart, + Lightbulb, + Loader2, + Tag, +} from 'lucide-react'; +import { useEffect, useState } from 'react'; +import apiClient from '../../api/client'; +import { getLocaleForLanguage, useTranslation } from '../../i18n'; -const REPO = 'mauriceboe/TREK' -const PER_PAGE = 10 +const REPO = 'mauriceboe/TREK'; +const PER_PAGE = 10; interface GithubRelease { - id: number - prerelease: boolean - tag_name: string - name: string | null - body: string | null - published_at: string | null - created_at: string - author: { login: string } | null - [key: string]: unknown + id: number; + prerelease: boolean; + tag_name: string; + name: string | null; + body: string | null; + published_at: string | null; + created_at: string; + author: { login: string } | null; + [key: string]: unknown; } export default function GitHubPanel({ isPrerelease = false }: { isPrerelease?: boolean }) { - const { t, language } = useTranslation() - const [releases, setReleases] = useState([]) - const [loading, setLoading] = useState(true) - const [error, setError] = useState(null) - const [expanded, setExpanded] = useState>({}) - const [page, setPage] = useState(1) - const [hasMore, setHasMore] = useState(true) - const [loadingMore, setLoadingMore] = useState(false) + const { t, language } = useTranslation(); + const [releases, setReleases] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [expanded, setExpanded] = useState>({}); + const [page, setPage] = useState(1); + const [hasMore, setHasMore] = useState(true); + const [loadingMore, setLoadingMore] = useState(false); const fetchReleases = async (pageNum = 1, append = false) => { try { - const res = await apiClient.get(`/admin/github-releases`, { params: { per_page: PER_PAGE, page: pageNum } }) - const data = Array.isArray(res.data) ? res.data : [] - setReleases(prev => append ? [...prev, ...data] : data) - setHasMore(data.length === PER_PAGE) + const res = await apiClient.get(`/admin/github-releases`, { params: { per_page: PER_PAGE, page: pageNum } }); + const data = Array.isArray(res.data) ? res.data : []; + setReleases((prev) => (append ? [...prev, ...data] : data)); + setHasMore(data.length === PER_PAGE); } catch (err: unknown) { - setError(err instanceof Error ? err.message : 'Unknown error') + setError(err instanceof Error ? err.message : 'Unknown error'); } - } + }; useEffect(() => { - setLoading(true) - fetchReleases(1).finally(() => setLoading(false)) - }, []) + setLoading(true); + fetchReleases(1).finally(() => setLoading(false)); + }, []); const handleLoadMore = async () => { - const next = page + 1 - setLoadingMore(true) - await fetchReleases(next, true) - setPage(next) - setLoadingMore(false) - } + const next = page + 1; + setLoadingMore(true); + await fetchReleases(next, true); + setPage(next); + setLoadingMore(false); + }; const toggleExpand = (id) => { - setExpanded(prev => ({ ...prev, [id]: !prev[id] })) - } + setExpanded((prev) => ({ ...prev, [id]: !prev[id] })); + }; const formatDate = (dateStr) => { - const d = new Date(dateStr) - return d.toLocaleDateString(getLocaleForLanguage(language), { day: 'numeric', month: 'short', year: 'numeric' }) - } + const d = new Date(dateStr); + return d.toLocaleDateString(getLocaleForLanguage(language), { day: 'numeric', month: 'short', year: 'numeric' }); + }; // Simple markdown-to-html for release notes (handles headers, bold, lists, links) const renderBody = (body) => { - if (!body) return null - const lines = body.split('\n') - const elements = [] - let listItems = [] + if (!body) return null; + const lines = body.split('\n'); + const elements = []; + let listItems = []; const flushList = () => { if (listItems.length > 0) { elements.push( -