Skip to content

emergency fix - #20

Merged
korpseluv merged 8 commits into
mainfrom
cutting-edge
Jan 2, 2026
Merged

emergency fix#20
korpseluv merged 8 commits into
mainfrom
cutting-edge

Conversation

@korpseluv

Copy link
Copy Markdown
Owner

Summary

makes chlokun not the default user
fixes allowed_hosts

Why

Why is this change needed?
because i tend to be dumb

Testing

  • npm run build
  • Manual check (screenshots optional)

Security / privacy

  • No secrets added
  • No new replay parsing/network behavior without opt-in
  • No new endpoints exposed in production unintentionally

Notes

it was an honest mistake

Copilot AI review requested due to automatic review settings January 2, 2026 13:57
@korpseluv
korpseluv merged commit b88639f into main Jan 2, 2026
7 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

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 appears to be mislabeled as an "emergency fix" for default user and allowed_hosts settings, but the actual changes show extensive UI/UX improvements and feature additions. The PR description does not accurately reflect the changes made.

Key Changes:

  • Enhanced interactive graph hover behavior with SVG coordinate space transformation for better accuracy
  • Added URL hash-based tab navigation with bidirectional synchronization
  • Improved visual styling for grade badges and UI elements
  • Added keyboard accessibility support for deep stats score cards

Reviewed changes

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

File Description
nuxt.config.ts Changed favicon from PNG to ICO format
app/app.vue Major updates including SVG coordinate transformation for graph interactions, URL hash-based tab navigation, visual refinements to grade badges and timeline markers, and keyboard accessibility improvements for score cards
.github/PULL_REQUEST_TEMPLATE.md Added typecheck step to PR testing checklist

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

Comment thread app/app.vue
badge.tone === 'badge-a' ? 'border border-white/50 text-white' : '',
badge.tone === 'badge-s' ? '' : '',
badge.tone === 'badge-ss' ? '' : '',
:class="[

Copilot AI Jan 2, 2026

Copy link

Choose a reason for hiding this comment

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

Inconsistent indentation. This line has excessive leading whitespace compared to the surrounding code. The :class attribute should align with the other attributes or follow the project's indentation standard.

Copilot uses AI. Check for mistakes.
Comment thread app/app.vue
Comment on lines +652 to +661
const pt = (svg.createSVGPoint ? svg.createSVGPoint() : (new DOMPoint() as any)) as any
pt.x = event.clientX
pt.y = event.clientY
const ctm = svg.getScreenCTM()
if (ctm) {
const inv = ctm.inverse()
const transformed = pt.matrixTransform(inv)
targetX = transformed.x
} else {
// fallback to bounding rect ratio

Copilot AI Jan 2, 2026

Copy link

Choose a reason for hiding this comment

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

Multiple type assertions to 'any' are used here which bypasses TypeScript's type safety. The code attempts to support both deprecated SVG method (createSVGPoint) and the modern DOMPoint API, but the excessive use of 'as any' makes it harder to catch type errors. Consider defining a proper type for the point object or using conditional type checks to handle the different APIs more safely.

Suggested change
const pt = (svg.createSVGPoint ? svg.createSVGPoint() : (new DOMPoint() as any)) as any
pt.x = event.clientX
pt.y = event.clientY
const ctm = svg.getScreenCTM()
if (ctm) {
const inv = ctm.inverse()
const transformed = pt.matrixTransform(inv)
targetX = transformed.x
} else {
// fallback to bounding rect ratio
type MatrixLike = { inverse(): MatrixLike }
type SvgPointLike = {
x: number
y: number
matrixTransform(matrix: MatrixLike): { x: number; y: number }
}
const svgElement = svg as SVGSVGElement & {
createSVGPoint?: () => SvgPointLike
}
let pt: SvgPointLike | null = null
if (typeof svgElement.createSVGPoint === 'function') {
pt = svgElement.createSVGPoint()
} else if (typeof DOMPoint !== 'undefined') {
pt = new DOMPoint() as unknown as SvgPointLike
}
if (pt) {
pt.x = event.clientX
pt.y = event.clientY
const ctm = svg.getScreenCTM()
if (ctm) {
const inv = (ctm as unknown as MatrixLike).inverse()
const transformed = pt.matrixTransform(inv)
targetX = transformed.x
} else {
// fallback to bounding rect ratio
const rect = svg.getBoundingClientRect()
const xPx = Math.min(Math.max(event.clientX - rect.left, 0), rect.width)
const xRatio = rect.width ? xPx / rect.width : 0
targetX = xRatio * meta.width
}
} else {
// If no suitable point implementation is available, fall back to bounding rect ratio

Copilot uses AI. Check for mistakes.
Comment thread app/app.vue
Comment on lines +661 to +678
// fallback to bounding rect ratio
const rect = svg.getBoundingClientRect()
const xPx = Math.min(Math.max(event.clientX - rect.left, 0), rect.width)
const xRatio = rect.width ? xPx / rect.width : 0
targetX = xRatio * meta.width
}
} catch (e) {
const rect = svg.getBoundingClientRect()
const xPx = Math.min(Math.max(event.clientX - rect.left, 0), rect.width)
const xRatio = rect.width ? xPx / rect.width : 0
targetX = xRatio * meta.width
}
} else {
const rect = (event.currentTarget as HTMLElement).getBoundingClientRect()
const xPx = Math.min(Math.max(event.clientX - rect.left, 0), rect.width)
const xRatio = rect.width ? xPx / rect.width : 0
targetX = xRatio * meta.width
}

Copilot AI Jan 2, 2026

Copy link

Choose a reason for hiding this comment

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

Duplicated fallback logic. The same bounding rect calculation code appears in three places (lines 662-665, 668-671, and 674-677). Consider extracting this into a helper function to reduce code duplication and improve maintainability.

Copilot uses AI. Check for mistakes.
Comment thread app/app.vue

<div class="flex flex-row flex-wrap gap-2">
<div
<div

Copilot AI Jan 2, 2026

Copy link

Choose a reason for hiding this comment

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

Inconsistent indentation. This line has excessive leading whitespace (appears to be 14 spaces) compared to the surrounding code which uses proper indentation. The opening div tag should be aligned with the surrounding elements at the same nesting level.

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants