Commit Graph

1243 Commits

Author SHA1 Message Date
github-actions[bot] 6ab95c189f chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22935621833)
2026-03-11 03:50:02 +00:00
Dani f0b42118fe chore: Regenerate components catalog with PocketBase skills
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:27:54 -04:00
Ilya B. 8f77ba028a feat: add 6 PocketBase skills (1,983 lines) (#404)
* feat: add 6 PocketBase skills (1,983 lines)

Add a comprehensive set of Claude Code Skills for PocketBase covering:
- pb-collections: schema design, field types, relations
- pb-api-rules: access control, filter expressions, rule debugging
- pb-hooks: server-side JS (goja ES5), custom routes, event hooks
- pb-migrations: schema versioning, automigrate, snapshot import
- pb-sdk: JS SDK, auth, realtime SSE, file uploads, batch ops
- pb-deploy: Docker, systemd, nginx/Caddy, TLS, S3, backups

Written for PocketBase v0.25+. Prevents common AI mistakes like
using ES6 in goja, confusing empty-string rules with locked rules,
wrong maxSelect semantics, and missing e.next() in Execute hooks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address code review findings (10 issues)

P1 fixes:
- Fix hook names: onRecordAfterCreateSuccess/Error (not ...CreateAfter...)
- Use record.hide() instead of set(undefined) in enrich hook
- Replace hardcoded superuser credentials with env var fallback
- Add checksum verification note to Docker binary download

P2 fixes:
- Clarify locked API rules: superusers can still access (not "nobody")
- Add public-access warnings to empty listRule/viewRule in migration example
- Warn that onBootstrap seed data must be idempotent
- Pin SDK CDN to versioned npm URL instead of @master
- Block /_/ dashboard path in nginx reverse proxy config
- Fix OTP/MFA config keys to lowercase (otp.*/mfa.*)
- Add after-success/error hooks to the hooks reference table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: pin SDK CDN to pocketbase@0.36.6 (current release)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address second round of review findings (3 issues)

- Superuser migration: throw error if env vars missing instead of fallback
  to predictable defaults (P1)
- API rules table: change "nobody" to "superusers only" to match the
  Critical note and actual PocketBase behavior (P2)
- Docker compose: bind port to 127.0.0.1 only so dashboard is not
  publicly exposed, consistent with nginx blocking /_/ (P2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 20:12:09 -04:00
Dani 908e21ce8c feat: Add UTM tracking params to BrainGrid partner banner link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:33:27 -04:00
Dani 9212d24244 feat: Add BrainGrid partner banner across all pages
Add PartnerBanner component with BrainGrid branding to index and all
type pages (agents, commands, skills, etc.). Remove BrainGrid from
featured cards section. Include logo assets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:29:33 -04:00
github-actions[bot] ae3d21bc4e chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22886039684)
2026-03-10 03:49:47 +00:00
Dani 1aa6c47d21 feat(seo): Add critical SEO foundations — meta tags, canonical, OG, JSON-LD, robots.txt
- Add robots.txt with crawl directives and AI crawler policies
- Add canonical tags to all pages via DashboardLayout
- Add meta descriptions (unique per page type)
- Add Open Graph and Twitter Card meta tags
- Add WebSite + Organization JSON-LD schema (global)
- Add SoftwareApplication JSON-LD schema (homepage)
- Optimize page titles with keywords and component counts
- Add security headers (HSTS, X-Frame-Options, CSP) to vercel.json

SEO Health Score: 22/100 → ~47/100 (estimated)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:20:37 -04:00
Dani a50338d5d1 chore: Sync Anthropic official skills from upstream
Updated 5 Anthropic skill mirrors with latest upstream content:
- docx-official: Major update with new scripts, templates, office schemas
- pptx-official: Restructured with editing.md, pptxgenjs.md, new scripts
- pdf-anthropic: Added subscript/superscript section, extract_form_structure.py
- xlsx-official: Updated SKILL.md, added scripts/office directory
- skill-creator: Major update with agents, eval-viewer, benchmark scripts

Skipped locally customized skills (mcp-builder, slack-gif-creator).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 09:33:42 -04:00
github-actions[bot] afa212ebb9 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22837440410)
2026-03-09 03:48:15 +00:00
Dani 196a569212 feat: Migrate blog to dashboard for www.aitmpl.com
Copy blog posts, assets, CSS, and static files from docs/ to
dashboard/public/ so they are served by the Astro dashboard project.
This restores /blog/ URLs that broke after the domain migration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 17:36:36 -04:00
github-actions[bot] 5b5ac94ea0 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22813219599)
2026-03-08 03:50:21 +00:00
Dani 90d00a22ab fix: Use resolved absolute URL in SSR fetch instead of relative path
The url variable was computed correctly but never used - fetch() still
received the original relative COMPONENTS_JSON_URL, causing "Failed to
parse URL from /components.json" on server-side rendering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:19:15 -05:00
Dani 05f10a87f2 docs: Update README dashboard link to www.aitmpl.com
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:16:01 -05:00
Dani 8432c377c6 fix: Resolve SSR fetch for components.json + update CLAUDE.md
- Use absolute URL (https://www.aitmpl.com) for server-side fetch of components.json
- Set site config in astro.config.mjs as fallback
- Update CLAUDE.md to reflect unified single Vercel project architecture

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:13:00 -05:00
Dani 571986c94c fix: Resolve SSR fetch for components.json on Vercel
- Set site: 'https://www.aitmpl.com' in astro.config.mjs so import.meta.env.SITE is defined
- Server-side fetch resolves relative /components.json URL using SITE, VERCEL_URL, or localhost fallback
- Fixes "fetch failed" error on component detail pages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:08:20 -05:00
Dani d1f561f914 feat: Migrate API endpoints to Astro dashboard, unify under single Vercel project
- Migrate all API endpoints from api/ (Vercel serverless) to dashboard/src/pages/api/ (Astro routes)
  - track-download-supabase, track-command-usage, track-installation-outcome, track-website-events
  - collections (index, [id], items)
  - health-check, claude-code-check, discord/interactions
- Add shared API libs: cors.ts, neon.ts, auth.ts, changelog-parser.ts
- Add @supabase/supabase-js, @neondatabase/serverless, discord-interactions, @clerk/backend deps
- Remove catch-all API proxy ([...path].ts) - APIs are now native Astro routes
- Serve components.json and trending-data.json from dashboard/public/
- Switch to same-origin fetching (relative URLs) for data files
- Add dashboard/vercel.json with crons and CORS headers
- Simplify CI/CD to single deploy target (dashboard project)
- Update deploy script and package.json scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:59:52 -05:00
Dani cf8330e0f6 feat: Migrate claude-api skill from anthropics/skills
Add official Anthropic claude-api skill with multi-language SDK references
(Python, TypeScript, Go, Java, C#, Ruby, PHP, curl) and Agent SDK patterns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:15:14 -05:00
Dani 6ac16aed3c feat: Add metadata cards carousel and Send to Repo feature
- Add horizontal metadata cards carousel to component detail page
  parsing frontmatter (skills/agents/commands), JSON (MCPs/settings/hooks)
- Cards show description, tools, model, version, author, tags, license
  with orange accent border, compact design, and text truncation
- Add "Send to Repo" button (gated to admin) in My Components
  with GitHub OAuth flow and PR creation
- Add "Metadata" and "Code" section titles
- Update components.json and trending data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:23:47 -05:00
Daniel Avila e2cbc8176c feat: Add 107 Google Workspace CLI commands (#403)
Migrated all skills from https://github.com/googleworkspace/cli to claude-code-templates as command components.

## Summary

Added 107 Google Workspace commands across three categories:
- 47 GWS service commands (gmail, drive, calendar, sheets, docs, etc.)
- 10 persona commands (IT admin, project manager, etc.)
- 50 recipe/workflow commands (task automation, team collaboration, etc.)

## GWS Service Commands (47)

Google Workspace API integrations for core services:
- Admin SDK (users, groups, devices, org units)
- Gmail (send, read, manage email)
- Calendar (events, scheduling, agenda)
- Drive (files, folders, sharing, upload)
- Docs/Sheets/Slides (document management)
- Chat/Meet (collaboration)
- Tasks (task management)
- Forms (form creation and responses)
- Classroom (education management)
- Vault (eDiscovery and archiving)
- Apps Script (automation)
- Model Armor (AI safety)
- And more specialized services

## Persona Commands (10)

Role-based workflow personas:
- IT Administrator
- Project Manager
- Executive Assistant
- Content Creator
- Customer Support
- Event Coordinator
- HR Coordinator
- Researcher
- Sales Operations
- Team Lead

## Recipe/Workflow Commands (50)

Task automation workflows:
- Email automation (batch reply, filters, drafts)
- Calendar management (scheduling, free time, events from sheets)
- Drive operations (folder organization, file ownership, sharing)
- Form workflows (feedback forms, response collection)
- Sheet automation (backup, compare tabs, reports)
- Team collaboration (announcements, file sharing, notifications)
- Meeting workflows (scheduling, participant review, materials)
- Security tasks (audit sharing, triage alerts)
- Document workflows (templates, save email to doc)
- And many more productivity automations

## Technical Details

- All commands use proper frontmatter (allowed-tools, argument-hint, description)
- Commands include usage examples and prerequisite checks
- Structured with Task sections for Claude Code execution
- Include Apache 2.0 license attribution
- Reference original skill names for traceability

## Component Catalog

- Updated docs/components.json
- Total commands: 168 → 275 (107 new)
- All new commands in google-workspace category with subcategories

## License & Attribution

Source: Google Workspace CLI (https://github.com/googleworkspace/cli)
License: Apache License 2.0
All commands include proper attribution and license information

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:25:10 -05:00
github-actions[bot] f8ff355e11 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22791214133)
2026-03-07 03:42:33 +00:00
github-actions[bot] ff0d5ba4f2 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22748041116)
2026-03-06 03:46:12 +00:00
Daniel Avila 3a9e95a883 Add project structure tree visualization to components view (#402)
* feat(dashboard): organize My Components as real project structure with .claude/ tree

Replaces the flat type-grouped view in the collections sidebar with a
realistic project directory tree showing exactly how components will be
installed:

  project/
  ├── .claude/
  │   ├── agents/
  │   ├── commands/
  │   ├── skills/
  │   ├── hooks/
  │   └── settings.json
  └── .mcp.json

Adds an ASCII project structure preview in the main content area so
users can visualize the full installation layout before running the
install command.

https://claude.ai/code/session_01Gh8sj2GFiXotit4qSftpid

* Update dashboard/src/components/MyComponentsView.tsx

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-03-05 21:19:43 -05:00
github-actions[bot] f788cac2eb chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22701221604)
2026-03-05 03:46:34 +00:00
Mónica González Paz fc83c2a9c4 feat: enterprise quality hooks and agents from pm-workspace (#397)
* feat: add enterprise quality hooks and agents from pm-workspace

Add 3 quality gate hooks and 2 specialized agents contributed from
pm-workspace (https://github.com/gonzalezpazmonica/pm-workspace):

Hooks (new category: quality-gates/):
- tdd-gate: Enforces TDD — blocks editing production code without tests
- plan-gate: Warns about implementing without an approved specification
- scope-guard: Detects files modified outside the declared spec scope

Agents:
- sdd-spec-writer: Creates executable specifications for AI agents
- commit-guardian: 10-check pre-commit verification protocol

All components are generic (no Azure DevOps dependency), MIT licensed,
and follow the project's component structure conventions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address all 12 cubic review issues on enterprise hooks and agents

Fixes applied per cubic-dev-ai review:

Hooks (JSON configs):
- Add MultiEdit matcher to tdd-gate, plan-gate (was bypassing gate)
- Use $CLAUDE_PROJECT_DIR for all hook paths (avoid CWD-dependent failures)

tdd-gate.sh:
- Narrow test file globs: use suffix-based patterns (*Test.ext, *.test.ext)
  instead of overly broad *test* substring match (P1 fix)
- Improve test discovery: search nearby dirs first (same module), fallback
  to project-wide with -maxdepth 6 to limit latency on large repos

plan-gate.sh:
- Remove `set -euo pipefail` that caused unintentional blocking when find
  fails on non-existent dirs
- Add `|| true` to find to prevent exit-on-error

scope-guard.sh:
- Fix spec selection: use -printf '%T@ %p' sorted by mtime (not path sort)
  with macOS fallback using xargs ls -t
- Broaden declared-file regex: support longer extensions and @ in paths
- Fix word-splitting: use while-read loop instead of unquoted for-in
- Fix matching: use case-based suffix match instead of substring grep

commit-guardian.md:
- CHECK 3: Fix Python build command (per-file py_compile, not bare)
- CHECK 3: Add Go and Rust build detection, add SKIP when no build system
- CHECK 10: Change from WARN to BLOCK for malformed commit messages

sdd-spec-writer.md:
- Add explicit .spec.md naming convention requirement (quality gate hooks
  depend on this filename pattern for spec detection)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address cubic review round 2 — null-delimit macOS fallback, existence-only spec check

- scope-guard.sh: use -print0/xargs -0 for macOS fallback to handle
  paths with spaces safely (cubic P2)
- plan-gate.sh: replace full enumeration with find -print -quit for
  existence-only check, avoiding unnecessary latency in large repos
  (cubic P2)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:17:40 -05:00
Unima3x 57486af75d Update SKILL.md (#399)
* Update SKILL.md

Description update

* Update cli-tool/components/skills/development/agirails-agent-payments/SKILL.md

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: Daniel Avila <dan.avila7@gmail.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-03-04 19:04:25 -05:00
Dani 8a84d3ebea docs: Add Claude for Open Source Program badge to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:00:40 -05:00
github-actions[bot] 2ed5d984ca chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22654035548)
2026-03-04 03:46:35 +00:00
github-actions[bot] a9da8926d9 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22607316129)
2026-03-03 03:52:11 +00:00
github-actions[bot] efea324cbf chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22560477186)
2026-03-02 03:47:13 +00:00
Daniel Avila 6cf26f9582 feat: Redesign featured pages to match component detail layout (#395)
Replace iframe-based featured pages with native dashboard layout using
tabbed navigation, sidebar with metadata, and partner-specific content.

- Rewrite dashboard featured/[slug].astro from iframe embed to native
  Astro page with Overview content + Website external link tab
- Expand FeaturedItem type with metadata, links, CTA, and badge data
- Add partner badge color variants (Partner/Database/Toolkit)
- Add sidebar cards: partner info, CTA button, install command, metadata, links
- Remove redundant metadata fields (Type/Category/Website already shown via dedicated fields)
- Update docs/ featured pages with component-page layout (legacy site)
- Create docs/css/featured-page.css for featured-specific styles

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:18:13 -05:00
github-actions[bot] 1e20159255 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22535331553)
2026-03-01 03:54:11 +00:00
Dani bd46008172 docs: Add CHANGELOG.md with full project history
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 15:17:30 -05:00
Burak Bayır 797fcbbf64 Add x-twitter-scraper skill (#390)
X (Twitter) data integration skill powered by the Xquik REST API,
MCP server, and HMAC webhooks. Covers tweet search, user lookup,
19 extraction tools, giveaway draws, account monitoring, trending
topics, and follow checks.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:51:23 -05:00
github-actions[bot] 7d1be1c50e chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22512448771)
2026-02-28 03:38:35 +00:00
github-actions[bot] 4aacf3e2f2 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22471826332)
2026-02-27 03:49:53 +00:00
Daniel Avila de7eebf5e2 fix(seo): add H1 tag, structured data, accessibility & fix robots.txt sitemap URL (#383) 2026-02-26 05:53:05 -08:00
Fracisco August d05ca543a8 Add git-context-controller skill (#380) 2026-02-25 20:34:54 -08:00
github-actions[bot] 4f19032829 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22426903651)
2026-02-26 03:49:17 +00:00
github-actions[bot] ba073345dc chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22381257517)
2026-02-25 03:52:31 +00:00
daniel 8d622602d8 fix: use correct Vercel Speed Insights script tag and handle localStorage quota
Speed Insights for static HTML uses /_vercel/speed-insights/script.js,
not the npm module via CDN. Also wrap localStorage.setItem in try/catch
to handle QuotaExceededError when search data exceeds 5MB limit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:20:00 -08:00
daniel 1a3d81d2ef feat: add Vercel Speed Insights and update deployer agent
Add Speed Insights via CDN to docs/index.html for performance metrics.
Update deployer agent to skip pre-verified steps when caller signals
they were already completed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:12:51 -08:00
github-actions[bot] e04f2f2577 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22335707555)
2026-02-24 03:48:53 +00:00
daniel 043f37342e feat: add interview toolkit (6 components)
Codebase explorer agent, deadline countdown statusline, change logger
hook, deadline prep skill, commit smart skill, and test detect skill.
Designed for rapid onboarding on unfamiliar codebases with time pressure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:38:47 -08:00
daniel 499a116ad8 feat: Add worktree-ghostty hook component
Opens a 3-panel Ghostty layout (Claude | lazygit / yazi) when creating
worktrees in sibling directories. Handles both WorktreeCreate and
WorktreeRemove events with a single companion script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:14:48 -08:00
Unima3x f52a0b9576 feat: add agirails-agent-payments skill (#358)
* feat: add agirails-agent-payments skill

AI agent payment infrastructure — ACTP escrow + x402 instant payments,
USDC settlement on Base L2. Interactive 7-step onboarding: asks preferences,
generates customized agent code, verifies setup.

Covers: provider/requester patterns, adapter routing, 8-state machine,
pricing model, disputes, ERC-8004 identity, key management (AIP-13),
24 CLI commands, and troubleshooting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add provider address onboarding question (Q11)

Addresses cubic-dev-ai review: requester template hardcoded
'0xProviderAddress' but onboarding never collected a provider address.

- Added Question 11 (provider address, optional, conditional on intent=pay/both)
- Requester template now uses {{provider_address}} when provided
- Falls back to TODO comment when no provider address given
- Added provider to Step 3 confirmation summary

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:26:02 -08:00
Diego 2c9e88b0a5 feat: add desktop notification hook on Stop event (#360) 2026-02-22 21:21:06 -08:00
Moiri Gamboni a0b4da050c fix: dangerous-command-blocker hook references wrong script path (#367)
The installer (`installIndividualHook` in index.js) places companion
Python scripts in `.claude/hooks/`, but the hook config referenced
`.claude/scripts/`. This meant the hook would always fail with a
"file not found" error at runtime, silently rendering it non-functional.

Also removed the `2>&1` stderr redirect which masked the error by
merging stderr into stdout, causing the hook runner to report the
unhelpful "No stderr output" message instead of the actual cause.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:17:44 -08:00
SLAR Edge 17c01242ec add Garrys Mod addon code helper skill (#370) 2026-02-22 21:16:35 -08:00
Sébastien Conejo 2012b09720 Add Manifest observability skill (#371) 2026-02-22 21:14:51 -08:00
github-actions[bot] 35c6909eb4 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/22292208872)
2026-02-23 03:55:18 +00:00