-
-
Notifications
You must be signed in to change notification settings - Fork 0
fix(docs): SEO audit fixes, meta descriptions, and CI improvements #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
5ab145d
d09a79b
7233055
02eca09
54598bd
5720942
66e00c7
6840e15
ca120d6
695f435
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,22 +1,22 @@ | ||
| { | ||
| "/": "2026-03-05", | ||
| "/docs/api/cached-decorator": "2026-03-05", | ||
| "/docs/api/memory-cache": "2026-03-05", | ||
| "/docs/examples": "2026-03-05", | ||
| "/docs/examples/api-caching": "2026-03-05", | ||
| "/docs/examples/async-fetching": "2026-03-05", | ||
| "/docs/examples/computed-values": "2026-03-05", | ||
| "/docs/examples/configuration": "2026-03-05", | ||
| "/docs/examples/database-caching": "2026-03-05", | ||
| "/docs/examples/monitoring": "2026-03-05", | ||
| "/docs/examples/multi-tenant": "2026-03-05", | ||
| "/docs/examples/rate-limiting": "2026-03-05", | ||
| "/docs/examples/service-class": "2026-03-05", | ||
| "/docs/examples/sessions": "2026-03-05", | ||
| "/docs/getting-started": "2026-03-05", | ||
| "/examples": "2026-03-05", | ||
| "/examples/basic-cache": "2026-03-05", | ||
| "/examples/cache-statistics": "2026-03-05", | ||
| "/examples/lru-eviction": "2026-03-05", | ||
| "/examples/ttl-expiration": "2026-03-05" | ||
| "/": "2026-03-05", | ||
| "/docs/api/cached-decorator": "2026-03-09", | ||
| "/docs/api/memory-cache": "2026-03-05", | ||
| "/docs/examples": "2026-03-05", | ||
| "/docs/examples/api-caching": "2026-03-15", | ||
| "/docs/examples/async-fetching": "2026-03-15", | ||
| "/docs/examples/computed-values": "2026-03-15", | ||
| "/docs/examples/configuration": "2026-03-15", | ||
| "/docs/examples/database-caching": "2026-03-15", | ||
| "/docs/examples/monitoring": "2026-03-15", | ||
| "/docs/examples/multi-tenant": "2026-03-15", | ||
| "/docs/examples/rate-limiting": "2026-03-15", | ||
| "/docs/examples/service-class": "2026-03-15", | ||
| "/docs/examples/sessions": "2026-03-15", | ||
| "/docs/getting-started": "2026-03-09", | ||
| "/examples": "2026-03-05", | ||
| "/examples/basic-cache": "2026-03-05", | ||
| "/examples/cache-statistics": "2026-03-05", | ||
| "/examples/lru-eviction": "2026-03-05", | ||
| "/examples/ttl-expiration": "2026-03-05" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: '@cached Decorator API - Memory Cache', | ||
| description: | ||
| 'API reference for the @cached decorator that adds automatic caching to class methods.' | ||
| 'API reference for the @cached decorator that adds automatic caching to class methods. Covers configuration options, cache key strategies, TTL settings, and usage examples in TypeScript.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'MemoryCache API - Memory Cache', | ||
| description: | ||
| 'Complete API reference for the MemoryCache class including all methods, options, and configuration.' | ||
| 'Complete API reference for the MemoryCache class including all methods, options, and configuration. Covers get, set, delete, clear, stats, TTL, LRU eviction, and event listeners.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'Usage Examples | Memory Cache', | ||
| description: | ||
| 'Practical examples showing how to use Memory Cache for API caching, sessions, rate limiting, and more.' | ||
| 'Practical examples showing how to use Memory Cache for API caching, session storage, rate limiting, database query caching, and more real-world TypeScript use cases.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'API Caching | Examples | Memory Cache', | ||
| description: 'Cache API responses to reduce latency and external API calls with Memory Cache.' | ||
| description: | ||
| 'Cache API responses to reduce latency and minimize external API calls with Memory Cache. Learn patterns for TTL-based expiration and automatic cache invalidation in TypeScript.' | ||
| }) |
| Original file line number | Diff line number | Diff line change | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,5 +1,5 @@ | ||||||||||||
| export const load = () => ({ | ||||||||||||
| title: 'Async Fetching | Examples | Memory Cache', | ||||||||||||
| description: | ||||||||||||
| 'Cache async fetch results with automatic deduplication and stale-while-revalidate patterns.' | ||||||||||||
| 'Cache async fetch results with automatic request deduplication and thundering herd prevention using Memory Cache. Prevent redundant network calls in your TypeScript backend.' | ||||||||||||
|
Comment on lines
3
to
+4
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Trim this fallback description to ≤170 chars. Current copy is about 174 characters, so it still misses the PR’s SEO range. ✏️ Suggested edit- 'Cache async fetch results with automatic request deduplication and thundering herd prevention using Memory Cache. Prevent redundant network calls in your TypeScript backend.'
+ 'Cache async fetch results with request deduplication and thundering herd prevention using Memory Cache. Reduce redundant network calls in your TypeScript backend.'📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||
| }) | ||||||||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -8,7 +8,7 @@ description: Cache expensive computations | |||||
| const seo = getSeoContext() | ||||||
| if (seo) { | ||||||
| seo.title = 'Computed Value Caching - Memory Cache' | ||||||
| seo.description = 'Cache expensive computations to avoid redundant processing with @humanspeak/memory-cache' | ||||||
| seo.description = 'Cache expensive computations to avoid redundant processing and speed up repeated calculations. Includes performance tracking and hooks monitoring with @humanspeak/memory-cache.' | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Trim this meta description back under the 170-char target. This copy is about 176 characters, so it still misses the SEO range called out in the PR. ✏️ Suggested edit- seo.description = 'Cache expensive computations to avoid redundant processing and speed up repeated calculations. Includes performance tracking and hooks monitoring with `@humanspeak/memory-cache`.'
+ seo.description = 'Cache expensive computations to avoid redundant work and speed up repeated calculations. Covers performance tracking and cache hooks with `@humanspeak/memory-cache`.'📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||
| seo.ogTitle = 'Computed Value Caching' | ||||||
| seo.ogTagline = 'Cache expensive computations efficiently.' | ||||||
| seo.ogFeatures = ['Deterministic Results', 'Performance Tracking', 'TTL Support', 'Hooks'] | ||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'Computed Values | Examples | Memory Cache', | ||
| description: | ||
| 'Cache expensive computed values and derived data with automatic TTL-based refresh.' | ||
| 'Cache expensive computed values and derived data with automatic memoization using Memory Cache. Avoid redundant calculations and improve performance in TypeScript applications.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'Configuration | Examples | Memory Cache', | ||
| description: | ||
| 'Configure Memory Cache with custom TTL, max size, eviction policies, and other options.' | ||
| 'Configure Memory Cache with custom TTL durations, max size limits, LRU eviction policies, and advanced options to fine-tune caching behavior for your application.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'Database Caching | Examples | Memory Cache', | ||
| description: | ||
| 'Speed up database queries by caching results in memory with automatic invalidation.' | ||
| 'Speed up database queries by caching results in memory with automatic TTL-based invalidation. Reduce database load and improve response times in your TypeScript application.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'Monitoring | Examples | Memory Cache', | ||
| description: 'Monitor cache health with hit rates, memory usage, and performance metrics.' | ||
| description: | ||
| 'Monitor cache health with hit rates, eviction counts, and performance metrics. Integrate Memory Cache with DataDog, Prometheus, or custom dashboards.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'Multi-Tenant Caching | Examples | Memory Cache', | ||
| description: 'Implement isolated per-tenant caches with namespace support in Memory Cache.' | ||
| description: | ||
| 'Implement per-tenant cache isolation using namespaced key prefixes in Memory Cache. Logically separate tenant data with scoped invalidation via prefix and wildcard deletion.' | ||
| }) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,5 @@ | ||
| export const load = () => ({ | ||
| title: 'Rate Limiting | Examples | Memory Cache', | ||
| description: 'Implement simple rate limiting using Memory Cache with TTL-based sliding windows.' | ||
| description: | ||
| 'Implement simple rate limiting using Memory Cache with TTL-based sliding windows. Protect your API endpoints from abuse without external dependencies like Redis in TypeScript.' | ||
| }) |
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Edge case: empty release body on
workflow_dispatchwithout custom message.When triggered via
workflow_dispatchwithout acustom_messageinput,PR_TITLEis empty, resulting in release notes that just say "Changes in this Release" with no actual content.Consider adding a fallback or making
custom_messagerequired for manual dispatches:Proposed fix
🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intentionally not addressing — this is an edge case for manual
workflow_dispatchwithout a custom message. Low priority and the release still creates fine with just the version tag.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jaysin586, understood — acknowledged and moving on.