Conversation
…lize field/control sizing Filter tags by the owning user so accounts no longer see each other's tags, and surface them in guest mode from the populated objects. Add a Create Library button on the home page and disable both it and the dropdown's My Library entry when the user can neither create nor already owns a library. Route library cards by id to sidestep the username->id filter the API currently 500s on. Standardize library inputs, buttons, date picker, and dropdown to a 44px height with 16px input text, plus assorted toolbar, overview, and step-indicator polish. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
# Conflicts: # src/components/UserProfile/UserProfile.tsx
Library mobile fix
- Tag labels now use self-hosted Source Sans Pro (400) via a new @font-face and the --font-source-sans token, overriding the inherited serif face - Sidebar: hide the About divider when there is no About text, drop the fixed height on Edit buttons (keep padding 4px 8px), and show a "No tags yet." empty state at 50px - LibraryToolbar: remove the owner-view divider, preserving its 16px spacing on the controls row Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace the stock code-review plugin config with a tailored setup: concurrency cancellation, draft/fork skip, scoped permissions, a 15m timeout, track_progress, and a KeepSimpleOSS-specific review prompt (Pages Router, SCSS tokens, no App Router/Tailwind, UX Core data guard). Lock --allowedTools to the inline-comment tool to resist prompt injection from untrusted PR content. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
library: self-host Source Sans Pro for tags and polish sidebar/toolbar
ci: harden Claude PR review workflow, mirroring agents-forge-frontend
uxCoreData was hardcoded to null in the UX Core context value, so every consumer of the shared bias list saw an empty array. On the ongoing test the bias name comes from the test API and rendered fine, but the description came from context and sat on a skeleton forever. Reported as a geo/VPN issue; it affected everyone. Populate it client-side from a slim Strapi query gated to /uxcat routes. The full bias payload is ~1.4 MB and those screens only read number, title, description, slug and mentionedQuestionsIds, so select just those and cache per module. mentionedQuestionsIds is required: test-result JSON.parses it to pick recommended reading and would throw on null. Also fixes QuestionAnalyse, which built its list in an effect with an empty dependency array and so never saw the data arrive. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The wrapper had no height ceiling, so on short viewports it grew past the screen and the centred overlay clipped it at both ends — the header and the footer buttons were unreachable. Reported against the "Our projects" modal on /ru, but it is the shared UX Core modal, so every consumer had it. Cap the wrapper, stop the header shrinking, and give the body min-height:0 — without that the flex child cannot shrink below its content height and overflow:auto never engages. The mobile fullHeightMobile override still wins by source order. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The downloaded file was missing PRODID, UID and DTSTAMP — all required
by RFC 5545 — used LF instead of CRLF, and wrote NaN for the dates:
nextTestTime arrives as an epoch string and new Date('1758...') is an
Invalid Date, so the timestamps never rendered. Apple Calendar rejects
the file outright; more lenient clients had been hiding it.
Replace react-icalendar-link with a small local builder that emits the
required properties, escapes TEXT per 3.3.11, leaves URL unescaped since
it is a URI value, and folds lines at 75 octets rather than characters
(Cyrillic copy overruns a character-based fold). The UID is derived from
the start time so re-downloading updates the event instead of stacking
duplicates.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Those pages keep their own controls in the bottom-right corner, where the pill sits. Add clearance via a --ks-aux-lift custom property, set from the uxcorePage body class that _app.tsx already applies to /uxcore, /uxcg, /uxcp, /uxcat and /uxcore-api. The margin goes on the root rather than the pill: the panel is positioned against the root, so raising the pill alone would leave the panel anchored low and overlapping it. On mobile the panel height comes from --ks-aux-panel-h, and a JS-set custom property overrides the CSS fallback entirely, so the lift has to be subtracted there too — otherwise the panel keeps its full height and runs off the top of short screens. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix(uxcat): bias descriptions, modal scrolling, Apple Calendar .ics, pill offset
|
Claude finished @MaryWylde's task in 6m 28s —— View job Review completeTasks
SummaryThis is a well-scoped bug-fix batch touching the library tag-scoping/create-flow, the UXCAT calendar reminder (replacing
Issue found (inline comment posted):
Minor / non-blocking:
No SSR/hydration issues, no Not run: no |
| top: 18px; | ||
| left: 46px; | ||
| right: 46px; | ||
| width: 79.5%; |
There was a problem hiding this comment.
width: 79.5% over-constrains this absolutely-positioned element alongside left: 46px / right: 46px. Per CSS 10.3.7, when left, right, and width are all non-auto on an absolutely positioned box, right is recomputed from left + width and effectively ignored — so the symmetric "46px = circle + gap on each side" anchoring the comment above describes no longer holds. On any viewport where the parent width isn't the exact one this 79.5% was tuned against, the right end of the line will drift off the 46px anchor (and vice versa for left in RTL). Recommend dropping the width line (letting left/right alone determine the box) or removing right if width is the intended fix, and updating the comment either way.
No description provided.