Skip to content

Conversation

@EthanThePhoenix38
Copy link
Member

No description provided.

- Add 6 Mac/Apple RSS sources (MacRumors, 9to5Mac, AppleInsider, Cult of Mac, MacWorld, Mac4Ever)
- Add anchor links for each category (#mac, #ai, #cybersecurity, #iot)
- Add visual separators between categories
- Move Portfolio link from header nav to footer on all pages

https://claude.ai/code/session_0138bAjho1fWwiRZju3nJFJ3
… doc to docs/, add Documentation badge

- TECHNIQUE.md: bilingual documentation (English first, French second) with flag anchors
- Moved SUPABASE_MIGRATION.md from database/ to docs/
- Documentation badge now points to docs/TECHNIQUE.md
- Updated for Mac sources and anchor navigation

https://claude.ai/code/session_0138bAjho1fWwiRZju3nJFJ3
Clarify that statistics are personal, stored locally in localStorage,
and no data is sent to any server.

https://claude.ai/code/session_0138bAjho1fWwiRZju3nJFJ3
- Sidebar menu with navigation (Dashboard, Home, Reader, Docs)
- Pages load in iframe while keeping menu visible
- Login overlay for Supabase authentication
- Stats dashboard placeholder for global analytics
- noindex/nofollow for search engine exclusion

https://claude.ai/code/session_0138bAjho1fWwiRZju3nJFJ3
- Use cyberpunk dark theme matching site design
- Remove external iframe embedding
- Change links from EthanThePhoenix38 to ThePhoenixAgency
- Fix XSS vulnerability in dynamic project loading
- Make projects section configurable (not auto-fetched)

https://claude.ai/code/session_0138bAjho1fWwiRZju3nJFJ3
- PORTFOLIO_CONFIG for customization
- hideForks: true by default
- featuredProjects: prioritize specific repos
- excludeProjects: hide unwanted repos
- Safe DOM manipulation (no innerHTML XSS)
- Sort by stars/updated/name

https://claude.ai/code/session_0138bAjho1fWwiRZju3nJFJ3
@github-actions github-actions bot added documentation Improvements or additions to documentation frontend backend labels Feb 6, 2026
@EthanThePhoenix38 EthanThePhoenix38 marked this pull request as ready for review February 6, 2026 11:00
Copilot AI review requested due to automatic review settings February 6, 2026 11:00
// Login handler
loginForm.addEventListener('submit', async (e) => {
e.preventDefault();
const email = document.getElementById('email').value;
loginForm.addEventListener('submit', async (e) => {
e.preventDefault();
const email = document.getElementById('email').value;
const password = document.getElementById('password').value;
@EthanThePhoenix38 EthanThePhoenix38 merged commit 8bbdf3b into main Feb 6, 2026
10 checks passed
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3ab6a75f18

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

loadingElement.remove();
try {
// Fetch org stats
const orgResponse = await fetch(`https://api.github.com/orgs/${PORTFOLIO_CONFIG.githubOrg}`);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Handle user accounts when fetching GitHub data

The config comment above says githubOrg can be an organization or username, but the fetches here hard‑code the /orgs/ API. That endpoint 404s for user accounts, so if someone sets githubOrg to a personal username (which the UI suggests is supported), both the stats and repo list will fail to load. Consider detecting account type or falling back to /users/ to preserve the prior behavior.

Useful? React with 👍 / 👎.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request reorganizes the site navigation by moving the Portfolio link from the header navigation to the footer across all pages, refactors the portfolio page to display GitHub organization projects dynamically, adds Mac/Apple news sources to the RSS aggregator, and significantly expands the technical documentation with bilingual content.

Changes:

  • Portfolio link relocated from header to footer navigation on all HTML pages for cleaner navigation
  • Portfolio page completely redesigned with dynamic GitHub API integration, improved security (XSS prevention via textContent), and configurable project display
  • New Mac/Apple news category added to RSS aggregator with 6 sources (MacRumors, 9to5Mac, AppleInsider, Cult of Mac, MacWorld, Mac4Ever)
  • Technical documentation (TECHNIQUE.md) expanded to be fully bilingual (English/French) with comprehensive architecture and deployment information
  • New Supabase migration guide (SUPABASE_MIGRATION.md) added in French with detailed setup instructions
  • New backend.html admin interface added (login placeholder, Supabase integration ready)
  • Documentation reference updated from database/SUPABASE_MIGRATION.md to docs/TECHNIQUE.md in README generation
  • Category anchor links added to README generation for better navigation
  • Statistics page updated with improved bilingual privacy notice

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
stats.html Portfolio link moved to footer; enhanced bilingual privacy notice for localStorage statistics
privacy.html Portfolio link moved to footer
index.html Portfolio link moved to footer
app.html Portfolio link moved to footer
about.html Portfolio link moved to footer
portfolio.html Complete redesign with GitHub API integration, XSS-safe rendering, configurable project filtering, and organization switch from user to org
src/aggregator.js Added Mac category with 6 RSS sources; updated documentation links to docs/TECHNIQUE.md; added category anchors to README generation
docs/TECHNIQUE.md Expanded to comprehensive bilingual documentation with architecture details, deployment instructions, and technology stack
docs/SUPABASE_MIGRATION.md New French-language migration guide for Supabase analytics integration with step-by-step instructions
backend.html New admin dashboard interface with Supabase authentication placeholder and sidebar navigation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

let readme = README_HEADER;

// Generate sections for each category
// Category titles mapping
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The category title mapping is missing an entry for potential future categories. Consider adding a fallback or handling unknown categories more explicitly. Currently, unknown categories will use 'General News' as a fallback (line 281), which is good, but documenting this behavior in a comment would improve maintainability.

Suggested change
// Category titles mapping
// Category titles mapping.
// Note: This mapping is intentionally not exhaustive. Any category key
// not listed here will fall back to the generic 'General News' title
// when rendering below (see the `categoryTitles[category] || 'General News'`
// usage). Add new entries here only when a custom section title is needed.

Copilot uses AI. Check for mistakes.
// Login handler
loginForm.addEventListener('submit', async (e) => {
e.preventDefault();
const email = document.getElementById('email').value;
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused variable email.

Copilot uses AI. Check for mistakes.
loginForm.addEventListener('submit', async (e) => {
e.preventDefault();
const email = document.getElementById('email').value;
const password = document.getElementById('password').value;
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused variable password.

Suggested change
const password = document.getElementById('password').value;

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend documentation Improvements or additions to documentation frontend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants