summaryrefslogtreecommitdiff
path: root/frontend/src
Commit message (Collapse)AuthorAgeFilesLines
* Replace PC-98 landing aesthetic with Heisei Twilight theme (#127)soryu14 days4-18/+960
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Replace PC-98 landing aesthetic with Heisei Twilight theme Layered new heisei.css (loaded after pc98.css) over the public landing page so the late-2000s/early-2010s anime cue lands subtly without a ground-up rewrite. Internal VN/contracts/daemons screens are untouched. What changed - Twilight gradient backdrop (deep night → dusk plum → horizon rose + amber) replaces the chunky animated GIF background. - Soft bokeh plates and a faint scanline overlay sit behind the content for atmosphere. - Floating header is now frosted glass with a 1px hairline; the system status pills use Inter-tracked uppercase labels with desaturated cyan/magenta indicators. - Vertical kanji masthead becomes a quiet Noto Serif JP column rather than an arcade box; English subtitle picks up a warm amber tone. - Issue badge is a flat pill; LED heart still pulses but in muted rose. - Empty hero state shows a faint tactical reticle (corner brackets) and bilingual JP/EN tagline — Ghost-in-the-Shell SAC HUD vibe. - Mission and MAKIMA panels render as Heisei magazine columns with a Noto Serif JP headline, accent rule (amber for Mission, magenta for MAKIMA), and Inter body copy. - Buttons are flat with hairline borders and a left-edge amber accent sweep on hover; the Login CTA keeps a warm gradient as the primary action. - Bottom Velocity/Energy strip becomes a small HUD pill with corner bracket detailing. - Mobile breakpoint tightens header, padding, headline size, and stacks the secondary CTAs back to a column. - prefers-reduced-motion respected for the heart pulse and image pan. How to verify - cd frontend && npm install && npm run dev - Compare http://localhost:5173 with the live soryu.co (PC-98 build) - Toggle the Mission and MAKIMA panels; resize to 390x844 for mobile. Implementation notes - Single new file: frontend/src/styles/heisei.css (~16 KB). - main.tsx imports heisei.css after pc98.css so the override wins. - No JSX/component changes — design lives entirely in CSS, easy to revert by removing the import line. - npm run build passes (vite v5.4, 91 kB CSS gzipped to 17.8 kB). * Attach before/after screenshots for review Six viewport/state combinations captured at 2x DPR with Playwright (desktop 1440x900, mobile 390x844). before-* show the live soryu.co PC-98 build; after-* show the heisei-twilight branch served by vite dev. Drop this commit before merge if you'd rather not carry the assets in tree. * Move CTA row into a top navbar below the floating header Per review feedback, lift Mission / MAKIMA / Login from the bottom of the cover into a fixed navbar that sits flush beneath the floating header — standard site pattern. - .cta-area is now position: fixed, top: 72px, height 52px (top: 56px, height 48px on mobile), with the same frosted-glass + hairline treatment as the header so they read as one stacked nav block. - Buttons become ghost-link items inside the bar with an animated underline-from-center on hover; Login keeps its warm amber→rose primary treatment but compact. - cover-content top padding bumped to 156px (desktop) / 124px (mobile) so the masthead and hero clear both stripes. - bottom-stats no longer needs to dodge a fixed-bottom CTA — pulled back to bottom: 24px (desktop) and ~20px + safe-area (mobile). - npm run build passes (CSS 91.6 kB / 17.9 kB gzip). Screenshots in docs/heisei-screenshots/after-*.jpg refreshed against the new navbar layout (1440x900 desktop, 390x844 mobile, 2x DPR). * Center mobile navbar buttons (kill leftover pc98 margin-top) The bottom-CTA layout in pc98.css had a mobile-specific margin-top: 20px on .taisho-cta, which carried over into the new top navbar and pushed every button 20px below the navbar's vertical center on mobile (visible misalignment at 390x844 — the Mission/MAKIMA/Login pills were sitting near the bottom edge of the bar). - Add margin: 0 !important to .taisho-cta in heisei.css (and to the mobile-block override) so the legacy column-layout margin is wiped on both breakpoints. - Switch buttons to height: 32px + line-height: 32px for stable vertical centering inside the 48px (mobile) / 52px (desktop) navbar. - Force align-self: center on .cta-left/.cta-right so they don't inherit any stretched height from previously-applied rules. Verified via Playwright DOM probe at 390x844: navbar y=56–104 (centerY 80) · buttons y=64–96 (centerY 80) ✓ And at 1280x720: navbar y=72–124 (centerY 98) · buttons y=83–113 (centerY 98) ✓ Screenshots in docs/heisei-screenshots/after-*.jpg refreshed. * Tighten mission/makima top space and use highlighted nav state The CTA row is now a top navbar, so the old 'Close' label on the active panel button is redundant — the button itself should look like the current page. Two fixes here: 1. Replace 'Close' with a persistent active highlight. - LandingPage.tsx: button keeps its label ('Mission' / 'MAKIMA') and gains an is-active class + aria-current="page" when its panel is open. heisei.css renders the active state as a solid amber underline + amber text — same visual language as the hover indicator, just persistent. - The button still toggles the panel closed when clicked again, so the interaction is unchanged; only the labelling moved. 2. Remove the white-space band above mission content. - The legacy .modern-landing-page wrapper from pc98.css pinned itself at top: 120px and height: calc(100vh - 120px), matching the original 120px-tall floating header. The new header is 72px (56px on mobile), which left ~50px of dead space below the navbar before the mission/makima content started. - Override the wrapper to top: 72px / height: calc(100vh - 72px) on desktop and 56px on mobile so it sits flush under the header. - Cover-content padding-top retuned for the new wrapper origin: desktop default 84px, mission-mode 72px (navbar 52 + 20 gap). Mobile default 76px, mission-mode 64px (navbar 48 + 16 gap). Verified at 1280x720: navbar y=72-124 · mission headline starts y=144 · 20px gap ✓ active Mission button: 'taisho-cta is-active', aria-current=page ✓ npm run build passes (CSS 92.6 kB / 18.1 kB gzip). Screenshots in docs/heisei-screenshots/after-*.jpg refreshed against the tightened layout. * Align mission/makima body, fix mobile bg, add typewriter hero rotator Three fixes coming out of QA on staging (soryu.eirin.xyz): 1. Mission / MAKIMA body alignment - The amber/magenta accent rule + 18px indent used to live on .mission-headline only, so paragraphs (and the mission image) started 18px to the LEFT of the headline. - Move the rule + padding-left onto the .mission-screen wrapper itself. Headline, image, and all paragraph(s) now share one consistent column edge. - Tighten the makima-badge so it doesn't stretch the grid column (justify-self: start + width: max-content). Image gets explicit width: 100%; display: block to behave inside the column. 2. Mobile background coverage - pc98.css mobile-block override ('@media max-width:768px') reset .modern-landing-page to position: relative + margin-top: 100px, leaving a 100-156px band at the top where only the body color showed and pushing the wrapper bottom past the viewport. - Force position: fixed on the wrapper at every breakpoint with !important. Use 100dvh (dynamic viewport height) so the gradient follows iOS Safari's collapsing URL bar rather than getting clipped. - Mirror the dusk gradient onto <body> as a fallback so any sub-pixel rounding gap shows the same colour, not white. 3. Typewriter hero rotator - New <TypewriterRotator/> component (frontend/src/components/ TypewriterRotator.tsx) — types, holds, deletes, gaps, advances. Honours prefers-reduced-motion (renders the first phrase static). - LandingPage.tsx renders it inside a new .hero-tagline wrapper where the old static CSS ::after lived. Five phrases, all bilingual JP/EN in the same Heisei tactical voice: * 低遅延ストリーミング · LOW-LATENCY OBSERVABILITY * リアルタイム監視 · REAL-TIME SURVEILLANCE * ミッションクリティカル · MISSION-CRITICAL INFRASTRUCTURE * エンドツーエンド可視化 · END-TO-END VISIBILITY * 安全な意思決定 · SECURE DECISIONS AT THE EDGE - Hide the old .hero::after pseudo-tagline; .hero-tagline keeps the same centred position, amber colour, and tracking. - Caret blink animation (steps(1), 1s) — separate from the typing timing so it always blinks at human speed. npm run build passes (CSS 94 kB / 18.2 kB gzip, JS 238 kB / 75 kB gzip — +1.5 kB net for the rotator + new phrases). Verified at 1280x720 / 390x844 via Playwright DOM probe: - mission/makima: headline.x === paragraph.x === image.x ✓ - mobile: wrapper y=56, h=788, bottom=844 (full coverage) ✓ - typewriter: types, holds, deletes, advances to phrase 2 ✓ Screenshots in docs/heisei-screenshots/after-*.jpg refreshed. Staging at soryu.eirin.xyz updated via rsync. * Center hero on homepage, image-left text-right on mission/makima - Default homepage now uses single-column grid; the SORYU masthead is absolutely positioned in the upper-left of the cover frame, so the hero typewriter is genuinely centered on the page (verified taglineCenterX === pageCenter at 1280px). - Mission/MAKIMA on desktop (>=1025px) switch to a flex layout with the image absolutely positioned in a 360px left gutter and all body text (badge -> headline -> paragraphs) flowing on the right. - Mobile and tablet (<=1024px) keep the stacked layout; masthead returns to inline flow under the navbar. - MAKIMA badge uses flex `order: -1` so it appears above the headline visually, even though the JSX renders headline first. * Replace PC-98 character image with tactical observability mesh SVG - New /public/mission-tactical.svg (~9KB, license-clean, hand-crafted): amber wireframe globe + magenta mesh links, GitS:SAC-style HUD chrome (corner brackets, scanlines, telemetry strip, NODE-001 TYO label, pulsing origin node), kanji watermark. - Uses CSS palette vars (amber #e8b87a / magenta #d96a8a / cyan #9ad7e0). - .mission-image switched to object-fit:contain with a dark fill so the vector renders fully and never crops; pc98 mission-pan animation is killed for the SVG path. * Animate mission tactical SVG: flowing data along mesh links - Each of 6 mesh arcs now has an id (#arc1..#arc6) with two layered animations: a flowing stroke-dashoffset (so the lines themselves appear to ripple), and a separate breathing opacity cycle. - 8 packet circles ride the arcs via <animateMotion> + <mpath>, with staggered begin times (0s..2.0s) and varied durations (2.6s..4.0s) so traffic feels asynchronous, not metronomic. - Amber arcs carry amber packets, magenta arcs carry magenta packets. - Hub nodes now have layered radial pulses (filled core + expanding ring) on independent timings; cyan relay dots blink gently. - REC indicator pulses 1.4s. All animations are SVG-native (no JS, no external library); browsers respect prefers-reduced-motion via UA defaults on <animate>. * chore: gitignore tsconfig.tsbuildinfo (auto-generated incremental build cache) * Drop mission-image ring border; reskin Login hover (no glow) - The animated SVG already draws its own hairline frame + corner brackets at the viewBox edge. Remove the `box-shadow: 0 0 0 1px` ring (in both the base `.mission-image` rule and the desktop-min-1025px `.mission-screen .mission-image` override) so the image isn't double-framed. Drop-shadow for elevation kept. - Replace the Login button hover effect. The amber drop-shadow halo used the same visual language as the active Mission/MAKIMA nav buttons (which also glow amber underneath); on hover Login now inverts to a deep-night background with amber ink and a hairline ::after rule that slides in from the left along the top edge — reads as 'armed' rather than 'glowing'. Letter-spacing widens slightly on hover (0.18em → 0.22em) for a subtle ink-spread. Added :active and :focus-visible states for keyboard a11y. * Remove vertical accent rule from Mission/MAKIMA text columns The 2px amber/magenta border-left + 18px indent on the right-column text was reading as another border running parallel to the SVG image on the left. The animated SVG already supplies all the framing the panels need, so the rule is now redundant noise. Removed in three places: - .mission-screen wrapper (base + .makima-screen variant) - desktop (>=1025px) per-block rule on headline + paragraph - mobile (<=768px) leftover padding-left: 14px on headline Verified: borderLeft = 0 on wrapper, headline, and paragraph(s) on both Mission and MAKIMA. Headline + body now sit flush with the badge at the same column edge (x=680 at 1280px). * Mission/MAKIMA backdrop: solid dark plate (no horizon bleed) The panel backdrop was rgba(11,17,36,0.62→0.85) — semi-transparent — so the page's dusk-pink horizon at the bottom of the gradient bled through behind the panel content, drawing the eye to the page edge and making the background gradient stand out instead of disappearing. Switched to a near-opaque #0a1024 → #0b1530 vertical gradient (slight slope kept for depth) and bumped backdrop-filter to blur(20px) saturate(80%) so any residual ambient is fully diffused. The panel now reads as its own surface rather than a tinted overlay. Verified: bottom-center pixel is rgb(10,20,47) — uniform deep night across the whole panel, no pink bleed at the page bottom. * Drop dark rounded plate behind Mission/MAKIMA images The .mission-image and .makima-logo had a semi-opaque dark fill (rgba(11,17,36,0.55-0.6)) plus border-radius: 2px. Combined with object-fit: contain (which letterboxes the SVG inside the larger 360px box), the dark fill was visible as a rounded rectangle 'frame' around the artwork — most noticeable on MAKIMA where the small circular logo sits in a much larger box. Switched both to transparent background + border-radius: 0 so the artwork floats directly on the panel backdrop. Drop-shadow kept on both for elevation; .makima-logo's amber halo + hairline ring removed too (it was painting the same noise). Verified by sampling pixels at the four image corners + inner mid: all read as the same uniform deep-night as the panel backdrop (rgb(10, 14-18, 30-42)). No plate, no rounded edge. * Remove box-shadow halo around Mission/MAKIMA image bounding boxes * Mission/MAKIMA backdrop: slightly translucent (alpha 0.72→0.84, blur 28px) --------- Co-authored-by: soryu-co <bot@soryu.co>
* revert PRs #93-#98; enforce strict-linear-DAG + mandatory directive verify ↵soryu2026-04-2810-1313/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#100) * revert: roll back PRs #93-#98 to pre-Lexical baseline Reverts the entire chain of directive document UI work and the homepage redesign, restoring the working tree to the state at 3679ceb (before c8b169d / PR #93). PRs reverted: - #93 c8b169d feat: Document UI for directive orchestration with Lexical editor - #94 d6f01a6 fix: compilation error and warnings already merged via PR #93 - #95 5aa3faf fix: resolve compilation error and warnings in Rust backend - #97 d513f93 feat: document UI with contract blocks, expandable logs, and interaction controls - #96 6366941 feat: Redesign homepage with professional PC-98 styling - #98 d1fdfb1 feat: revert broken directive PRs, re-implement Lexical document orchestrator The directive Document UI experiments produced fragile output and merge artifacts; follow-up commits in this PR change orchestration to favor strictly linear DAGs and add goal/conflict verification so future runs do not require this kind of cleanup. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(directive): strict-linear-DAG planning + mandatory `directive verify` Tightens directive orchestration so the final PR almost never needs a hand-merge: 1. Planning prompts now strongly bias toward strictly linear DAGs. Parallel steps are reserved for genuinely independent work (e.g. disjoint modules); the default for "in doubt" is sequential. Linear chains inherit each previous step's worktree, so the final merge is typically just a rebase against the base branch. 2. New CLI command `makima directive verify` does a local in-memory `git merge-tree` of HEAD against `<remote>/<base>` and exits non-zero with a list of conflicting files if the PR would not merge cleanly. Pure-local — no API call, no working-tree mutation. 3. Completion / PR-creation prompts now mandate three pre-push checks: a. build (`cargo check` and/or `tsc --noEmit`), b. `makima directive verify --base <base_branch>` must exit 0, and c. an explicit goal-alignment self-check against the diff. The orchestrator is told NOT to push, create the PR, or call `makima directive update` until all three pass. Skipping any of them is documented as a directive failure. The combination means that with a linear DAG the final PR-creation task should almost never see a real conflict — when it does, that is treated as a planning bug to escalate rather than something to paper over with `-X theirs`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(frontend): TS errors pre-existing on master - TaskSlideOutPanel: declare missing `selectedFileDiff` / `selectedFilePath` state hooks that were referenced everywhere but never created, and re-balance the JSX so the `<>...</>` fragment in the non-diff branch is closed (the previous indentation/braces would not parse). - api.ts: add a `getWorktreeDiff` thin wrapper around `getTaskDiff` so TaskDetail's per-file click handler type-checks (the per-file slice is a future improvement; today both return the full task diff). - WorktreeFilesPanel: remove unused `isClickable` local; the gating already reads `onFileClick` directly inline. Run after revert: `npx tsc --noEmit` exits 0. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat: revert broken directive PRs, re-implement Lexical document ↵soryu2026-04-2828-3861/+106
| | | | | | | | | | | | | | | orchestrator (#98) * feat: soryu-co/soryu - makima: Revert broken directive PRs and verify clean build * feat: soryu-co/soryu - makima: Re-implement frontend: Lexical document editor with feature flag and base components * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Add contract blocks, expandable log rows, and interaction controls * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: End-to-end build verification and integration polish
* feat: Redesign homepage with professional PC-98 styling (#96)soryu2026-04-283-169/+524
| | | | | | | * feat: soryu-co/soryu - soryu: Redesign landing page layout and header for professional style * feat: soryu-co/soryu - soryu: Restyle CSS for professional landing page * feat: soryu-co/soryu - soryu: Integrate and polish landing page styles with component
* feat: document UI with contract blocks, expandable logs, and interaction ↵soryu2026-04-2818-60/+1819
| | | | | | | | | | | | | | | | | | | | | controls (#97) * feat: soryu-co/soryu - makima: Rename tasks to contracts in directive API and types * feat: soryu-co/soryu - makima: Add contract interaction panel with comment and interrupt * feat: soryu-co/soryu - makima: Build expandable contract log feed in StepsDiagram * feat: soryu-co/soryu - makima: Rename tasks to contracts throughout document UI and add contract block support * feat: soryu-co/soryu - makima: Add comment and interrupt controls to expanded step log feed * feat: soryu-co/soryu - makima: Audit and fix Document UI feature flag visibility and missing implementations * feat: soryu-co/soryu - makima: Add expandable step rows with live log feed in StepsDiagram * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Integrate all document UI components and final polish
* feat: Document UI for directive orchestration with Lexical editor (#93)soryu2026-04-2821-4/+2788
| | | | | | | | | | | | | | | * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Save previous goal on update and include history in re-planning prompt * feat: soryu-co/soryu - makima: Install Lexical and create base document editor component * feat: soryu-co/soryu - makima: Create directive file system sidebar and document layout * feat: soryu-co/soryu - makima: Create custom Lexical step diagram block * feat: soryu-co/soryu - makima: Add context menu and goal auto-update integration * WIP: heartbeat checkpoint
* feat: Add daemon page with download binary and Cloudflare Agent setup (#77)soryu2026-02-225-0/+436
| | | | | | | | | | | | | * feat: soryu-co/soryu - makima: Create DaemonList and DaemonDetail page components * feat: soryu-co/soryu - makima: Add daemon page routes, CSS styles, and navigation * feat: soryu-co/soryu - makima: Create daemon page with download and monitoring * WIP: heartbeat checkpoint * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Integrate Cloudflare Agent setup into daemon page
* Add auto_merge_local option for local-only contracts (#50)soryu2026-01-312-0/+4
| | | | | | | | | | | | | | | | | | | | When local_only=true on a contract, all completion actions are skipped. This adds a new option auto_merge_local that, when enabled along with local_only, will automatically merge completed task changes to the master/main branch locally (without pushing or creating PRs). Changes: - Add auto_merge_local column to contracts table (migration) - Add auto_merge_local field to Contract model and summary - Update CreateContractRequest and UpdateContractRequest structs - Update contract repository create/update functions - Add auto_merge_local to WebSocket protocol StartTask command - Pass auto_merge_local through spawn_task and run_task functions - Modify task manager completion logic: if local_only=true AND auto_merge_local=true, execute 'merge' completion action locally - Update all server handlers to retrieve and pass auto_merge_local - Add TypeScript types to frontend components Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix: Remove mistaken red team UI from VN frontend (#47)soryu2026-01-295-1102/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Add Red Team UI to makima/frontend contract creation - Add redTeamEnabled and redTeamPrompt state to contracts page - Add "Enable Red Team Monitoring" checkbox with description - Add conditional "Custom Review Criteria" textarea when enabled - Include redTeamEnabled/redTeamPrompt in CreateContractRequest - Reset red team fields when canceling contract creation - Add redTeamEnabled to ContractSummary and Contract types - Add redTeamEnabled/redTeamPrompt to CreateContractRequest type - Add Red Team badge (🔍) to ContractList for enabled contracts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Remove mistaken red team UI from VN frontend PR #39 accidentally added red team UI code to the wrong frontend directory (frontend/ instead of makima/frontend/). The correct implementation is already in makima/frontend/. This commit removes the mistaken changes: - Delete ContractCreateModal.tsx (was added by mistake) - Revert ContractList.tsx to remove red team badge and create modal - Revert ContractDetail.tsx to remove red team tab and notifications - Revert types.ts to remove contract/task types - Revert pc98.css to remove red team styling Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * [WIP] Heartbeat checkpoint - 2026-01-29 02:18:40 UTC --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Add Red Team CLI command and frontend UI (#39)soryu2026-01-275-22/+1102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Red Team CLI command and frontend UI Backend additions: - Add `makima red-team notify` CLI command for red team tasks - Add RedTeamCommand enum with Notify subcommand - Add red_team API client module for notify endpoint - Add RedTeamNotifyArgs with severity, task, file, context options Frontend additions: - Add ContractCreateModal with red team toggle and prompt input - Update ContractDetail with red-team tab for notifications - Update ContractList with red team enabled badge - Add TypeScript types for RedTeamNotification and related interfaces Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Add CSS styles for Red Team frontend components Add comprehensive styling for: - Contract list and detail containers - Red team badge styling with gradient backgrounds - Tab navigation with red team specific styling - Red team notifications panel with severity indicators - Contract creation modal form elements - Task badges for supervisor and red team roles Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Fix missing local_only field in TUI CreateContractRequest Add the missing local_only field to the CreateContractRequest struct initialization in the TUI contract creation handler. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * [WIP] Heartbeat checkpoint - 2026-01-27 03:07:28 UTC --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Move files tab and file pages to be accessible via contracts (#27)soryu2026-01-254-1/+444
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: remove Files from top-level navigation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: update file links to use contract-scoped routes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: add contract context to FileDetail component - Add contractId, contractName, and onContractClick props to FileDetailProps - Update breadcrumb navigation to show contract name with path separator when viewing file within a contract context - Fall back to "Back to list" when no contract context is provided - This enables the FileDetail component to be used within the /contracts/:contractId/files/:fileId route Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: update routes to nest files under contracts - Add react-router-dom for client-side routing - Create ContractList component to list all contracts - Create ContractDetail component with tabs (overview, files, tasks, repos) - Create FileDetail component to view individual files - Configure routes: - /contracts - list all contracts - /contracts/:id - view contract details with Files tab - /contracts/:contractId/files/:fileId - view file in contract context - Remove standalone file routes (/files, /files/:id) Files are now only accessible through their parent contract. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Update Makima panel in soryu to match makima/frontend descriptionsoryu2026-01-112-17/+19
|
* Add Makima inline icon and mesh copysoryu2025-12-233-13/+22
|
* Add Makima modalsoryu2025-12-233-15/+91
|
* Lower CTA buttons to bottom on desktopsoryu2025-12-231-2/+13
|
* Frontend: remove unused MissionDrawer component after mission screen transformsoryu2025-12-231-120/+0
|
* Frontend: mission screen transform with dimming, auto-pan image; hide stats ↵soryu2025-12-233-19/+238
| | | | in mission mode
* Improve mobile layout and styles\n\n- Move in-app buttons to a fixed bottom ↵soryu2025-12-233-10/+18
| | | | bar on mobile\n- Shrink masthead and volume badge on landing\n- Import mobile stylesheet in app entry\n- Place velocity/energy stats above bottom buttons\n- Adjust dialogue/input spacing to avoid overlap
* Increase mobile breakpoint to 768px for bottom CTA and compact masthead/issuesoryu2025-11-171-0/+47
|
* Refine manga masthead and issue badge; switch volume indicator to small red ↵soryu2025-11-162-1/+26
| | | | glowing heart
* Update masthead looksoryu2025-11-161-15/+87
|
* Landing page redesign: minimalist layout, Mission/Contact buttons, Login ↵soryu2025-11-162-133/+124
| | | | | | redirect; update title and favicon Remove top level backend as it is used. Will be part of this monorepo, but structured differently
* Initial commitsoryu2025-11-1519-0/+6244