mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-06-22 04:11:55 +10:00
main
6 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
62f8270b3e |
Squashed commit of the following:
commit b2b0470a1d9267d042ec0ac66523c6635bf5b199
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 13:13:38 2026 +0200
chore: update .gitignore to include .vite-hooks and modify pnpm-lock.yaml for dependencies
commit d28fadb5cd8706c874e616102878b4a394ec84c1
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 13:08:04 2026 +0200
fix: remove timestamp conflict guard
commit c6998d9dbab19d09d3c8054feef1d2e4117555eb
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 12:11:51 2026 +0200
chore(release): v5.1.5
commit f33d168711804880e1f12e88d24290aae16cc258
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 11:58:35 2026 +0200
revert: compose.yml
commit d961e6535811a10c335525fb33a08d03e737278d
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 11:58:08 2026 +0200
refactor(agent): replace 'revert' terminology with 'restore' for clarity, resolves #3086
commit 17f351171be218e33f01c469d95e4164d4c8dc57
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 11:10:41 2026 +0200
refactor(pdf): simplify sidebar section filtering and update summary feature logic
commit d55179b9d76879e3204de185e8b53fadd0a107ed
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 09:53:37 2026 +0200
chore: update pnpm-lock.yaml and turbo.json
commit 7cade6980e1a04352536bd44ef773f338c4ef599
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 09:38:30 2026 +0200
fix(polyfill): add tested polyfill for Map Upsert methods
commit 26d175bb9c53d93225d1e907678445252c13d660
Merge: 1cf33dc6c
|
||
|
|
dd7623f11e |
fix(pdf): align textkit line-box and font metrics to browser behaviour (#3070)
* fix(pdf): align textkit line-box and font metrics to browser behaviour CJK characters in resumes with a tightened typography line-height (< ~1.4) had their descenders clipped by the next line. Latin glyphs in the same resume rendered fine. Fixes the visual regression vs the v5.0.x Puppeteer-based renderer reported in issue #2986 and follow-ups. The clipping is caused by two independent gaps in @react-pdf/textkit relative to standard CSS line-box rules: 1. `height(run)` short-circuits to the user-supplied lineHeight and ignores the run's intrinsic ascent + descent. CSS line-boxes are spec'd as `max(line-height, content-area)` — when CJK glyphs are present the content-area is taller than a tightened lineHeight, so the box must grow. textkit didn't, so the baseline (computed from the real, larger CJK ascent) sat below the box and the descender bled into the next line. 2. `ascent / descent / lineGap` are read directly from fontkit's hhea defaults. For Source Han Sans/Serif (the CJK fallbacks registered in #3013) hhea is intentionally inflated for legacy Windows GDI compatibility (1.45 em vs 1.0 em), so even a fixed line-box would have been excessively tall. Browsers (and the v5.0.x Puppeteer renderer) read OS/2 sTypoAscender/Descender/LineGap instead, which are the values the type designers intend for modern shaping. Both are upstream behaviours of `@react-pdf/textkit`, but waiting for an upstream release would leave existing users with broken CJK output. The fix is shipped as a pnpm patch (~30 LOC): - `resolveTypoMetrics(font)`: prefer OS/2 typo metrics, fall back to hhea when an OS/2 table is absent (e.g. the StandardFont stand-ins for Helvetica/Courier/Times). Used by ascent/descent/lineGap so all height-related calculations stay consistent. - `height(run)`: `Math.max(lineHeight || 0, intrinsic)` instead of the original short-circuit, matching CSS line-box rules. The patch is self-contained: existing Latin-only resumes are unaffected (IBM Plex Serif's typo metrics equal hhea; Roboto's typo is slightly smaller, but only changes the rendered line-box for users who set lineHeight below ~1.17, which already used to clip ascenders under v5.1.x and now lays out as it would in a browser). Tooling notes: - `Dockerfile.dev` copies `patches/` before `pnpm install` so the dev image build no longer fails on `--frozen-lockfile`. The production `Dockerfile` already gets it for free via `turbo prune --docker` (the patch reference in package.json marks the directory as part of the pruned slice). - The patch will become a no-op once an equivalent fix lands upstream in @react-pdf/textkit; the entry can then be removed from `pnpm.patchedDependencies` and the file deleted. * fix(deps): regenerate lockfile and move patchedDependencies for pnpm 11 The previous commit's lockfile was authored by pnpm 8 (lockfileVersion 6.0) and kept patchedDependencies under package.json#pnpm. The repository now declares packageManager: pnpm@11.1.2, which: - writes lockfileVersion 9.0 and rejects v6 with ERR_PNPM_LOCKFILE_BREAKING_CHANGE on --frozen-lockfile (CI failure observed in autofix.ci); - reads pnpm settings from pnpm-workspace.yaml, silently ignoring the package.json#pnpm field — so the textkit patch was no longer applied. Regenerate pnpm-lock.yaml with pnpm 11.1.2 and move patchedDependencies to pnpm-workspace.yaml so the patch is applied and CI passes. * chore: update dependencies --------- Co-authored-by: Amruth Pillai <im.amruth@gmail.com> |
||
|
|
6d8d8f6e55 |
feat: add AI agent workspace (#3062)
* chore(ai): remove local AI store now that providers live server-side
The Zustand-based useAIStore has been replaced by the server-side
aiProviders oRPC router (encrypted credentials persisted in DB).
Delete the dead store + tests, drop the ./store export, and remove
zustand/immer deps which are no longer referenced anywhere in
packages/ai/src/.
* feat(agent): archive/delete actions and read-only state for agent threads
- Backend: mark archived threads as read-only in threads.get and reject
messages.send with CONFLICT when the thread is archived.
- Frontend: render archived threads in the sidebar with muted styling and
an Archived badge; add a per-thread dropdown menu in the chat header
with Archive (non-destructive) and Delete (with confirmation); show a
read-only banner above the message list that disambiguates archived
vs. missing-resource causes; suppress the Retry and Stop buttons in
read-only mode.
- Tests: new packages/api/src/services/agent.test.ts covering the
archived-thread isReadOnly flag and the archived-thread send refusal.
* fix(agent): abort run on archive and verify ownership before deleting thread
- threads.archive: before flipping status, abort any in-flight run controller
and clear the active-run state on the thread; cleanup failures are logged
but do not block the status update.
- threads.delete: assert thread ownership via getThread before destructive
work so an authenticated user cannot wipe another user's attachment rows
by passing a foreign threadId.
Adds focused tests for both behaviors.
* feat(agent): display patch diffs and surface revert conflicts
Render apply_resume_patch tool messages with a status-aware card (applied/
reverted/conflicted), expandable operation list, and a Revert button that
correctly handles RESUME_VERSION_CONFLICT responses. Adds unit tests for
the inverse-patch builder and the agentService.actions.revert flow.
* chore(agent): remove out-of-scope attachment tests accidentally added in Task 6
The Task 6 commit (
|
||
|
|
1294d3354a | feat(docker): enhance development setup with reactive_resume service and health checks | ||
|
|
50ba37a27f |
v5.1.0 (#2970)
* chore(release): v5.1.0 * feat: implement resume thumbnails * fix: remove unused mcp tools * docs: fix formatting of docs |
||
|
|
849aad6497 | allow for running dev environment inside docker |