Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
413 commits
Select commit Hold shift + click to select a range
193fc0b
feat: add deterministic text and shape styling
VitaliiDeveloper Jul 11, 2026
bf1e857
feat: add trusted device frame presets
VitaliiDeveloper Jul 11, 2026
9de6378
docs: close phase 9 expansion
VitaliiDeveloper Jul 11, 2026
df331aa
docs: align phase 9 roadmap status
VitaliiDeveloper Jul 11, 2026
0ed0e9b
docs: define responsive toolbar behavior
VitaliiDeveloper Jul 11, 2026
fc9d145
docs: refine compact toolbar branding
VitaliiDeveloper Jul 11, 2026
e93ee8c
feat: polish phase 9 multi-output editor
VitaliiDeveloper Jul 11, 2026
582b05d
chore: limit package matrix to dev pushes
VitaliiDeveloper Jul 11, 2026
812a183
docs: design output family screen switcher
VitaliiDeveloper Jul 11, 2026
2ab9f66
feat: add output family screen switcher
VitaliiDeveloper Jul 11, 2026
cee720c
refactor: use compact output family picker
VitaliiDeveloper Jul 11, 2026
2665749
refactor: style output picker as breadcrumb
VitaliiDeveloper Jul 11, 2026
a099014
feat: refine editor navigation and creation
VitaliiDeveloper Jul 12, 2026
52e19e1
Merge pull request #3 from VitaliiDeveloper/codex/complete-phase-9
VitaliiDeveloper Jul 12, 2026
5336cf3
docs: specify focus overview canvas transition
VitaliiDeveloper Jul 12, 2026
df3fdb6
docs: plan focus overview canvas transition
VitaliiDeveloper Jul 12, 2026
a41a02e
test: cover focus overview canvas transition
VitaliiDeveloper Jul 12, 2026
241a956
fix: smooth focus overview canvas transitions
VitaliiDeveloper Jul 12, 2026
ae1c66b
fix: smooth initial canvas reveal
VitaliiDeveloper Jul 12, 2026
d8e7b9c
fix: preserve canvas reveal opacity
VitaliiDeveloper Jul 12, 2026
10c5bae
fix: align canvas animation state updates
VitaliiDeveloper Jul 12, 2026
1377087
Merge pull request #4 from VitaliiDeveloper/codex/focus-overview-tran…
VitaliiDeveloper Jul 12, 2026
5150d5b
docs: define moderate project cleanup
VitaliiDeveloper Jul 12, 2026
fd69113
docs: plan moderate project cleanup
VitaliiDeveloper Jul 12, 2026
b7d2979
refactor: type editor mutations and selection traversal
VitaliiDeveloper Jul 12, 2026
90cc4f7
refactor: isolate export rendering and publication
VitaliiDeveloper Jul 12, 2026
7c547e7
fix: preserve bundle publisher exports
VitaliiDeveloper Jul 12, 2026
b1624fe
refactor: validate cli flags and isolate packaged host
VitaliiDeveloper Jul 12, 2026
323697a
fix: validate packaged link manifest path
VitaliiDeveloper Jul 12, 2026
f3416cf
refactor: clarify project validation boundaries
VitaliiDeveloper Jul 12, 2026
dee56c2
test: preserve project validation order
VitaliiDeveloper Jul 12, 2026
2576382
refactor: decompose editor responsibilities
VitaliiDeveloper Jul 12, 2026
54f9392
docs: align current contracts and archive history
VitaliiDeveloper Jul 12, 2026
026fc76
docs: correct current rendering contracts
VitaliiDeveloper Jul 12, 2026
517776b
docs: clarify background color authoring
VitaliiDeveloper Jul 12, 2026
1c71539
fix: restore cleanup compatibility contracts
VitaliiDeveloper Jul 12, 2026
eb64920
docs: correct active cleanup retention
VitaliiDeveloper Jul 12, 2026
ea60067
test: keep store type assertion lint-safe
VitaliiDeveloper Jul 12, 2026
88b850c
chore: ignore local worktrees
VitaliiDeveloper Jul 12, 2026
5a0099f
docs: define deep structure cleanup
VitaliiDeveloper Jul 12, 2026
942af1a
docs: plan deep structure cleanup
VitaliiDeveloper Jul 12, 2026
a388d4f
refactor: split editor store transitions
VitaliiDeveloper Jul 12, 2026
0d95ee2
refactor: split canvas viewport lifecycle
VitaliiDeveloper Jul 12, 2026
c517ab8
Revert "refactor: split canvas viewport lifecycle"
VitaliiDeveloper Jul 12, 2026
fcdbe20
test: expose anchored canvas zoom behavior
VitaliiDeveloper Jul 12, 2026
ab5e88e
Reapply "refactor: split canvas viewport lifecycle"
VitaliiDeveloper Jul 12, 2026
2b6ffed
refactor: split editor stage interactions
VitaliiDeveloper Jul 12, 2026
ee1e30c
fix: preserve marquee stage coordinates
VitaliiDeveloper Jul 12, 2026
4080bf1
fix: retain marquee pointer interface
VitaliiDeveloper Jul 12, 2026
f086baa
refactor: split editor ui primitives
VitaliiDeveloper Jul 12, 2026
b3650aa
refactor: split core project operations
VitaliiDeveloper Jul 12, 2026
3a26fa7
refactor: split cli orchestration
VitaliiDeveloper Jul 12, 2026
1efe086
Revert "refactor: split cli orchestration"
VitaliiDeveloper Jul 12, 2026
f7d8fdf
test: characterize cli runtime lifecycle
VitaliiDeveloper Jul 12, 2026
86ecf4c
Reapply "refactor: split cli orchestration"
VitaliiDeveloper Jul 12, 2026
19d0d44
fix: isolate cli exit and pan cleanup
VitaliiDeveloper Jul 12, 2026
1dc937b
fix: clarify canvas mode transitions
VitaliiDeveloper Jul 13, 2026
b2c236c
fix: unify screen preview labels
VitaliiDeveloper Jul 13, 2026
4cc248e
style: refine screen preview titles
VitaliiDeveloper Jul 13, 2026
9b735c5
docs: specify unified project overview
VitaliiDeveloper Jul 13, 2026
721abde
docs: remove obsolete implementation archives
VitaliiDeveloper Jul 13, 2026
a24f43f
refactor: separate overview and editing scopes
VitaliiDeveloper Jul 13, 2026
755e3e3
fix: anchor responsive editor toolbar
VitaliiDeveloper Jul 13, 2026
0f6f30e
feat: unify project overview rows
VitaliiDeveloper Jul 13, 2026
5107649
docs: document unified project overview
VitaliiDeveloper Jul 13, 2026
0ae14ab
fix: restore menu touch targets
VitaliiDeveloper Jul 13, 2026
3213d05
test: stabilize initial reveal sampling
VitaliiDeveloper Jul 13, 2026
6db3505
test: follow add screen menu flow
VitaliiDeveloper Jul 13, 2026
5ac2afb
fix: adapt editor toolbar to available space
VitaliiDeveloper Jul 13, 2026
72f1361
fix: size connected output rows to artwork
VitaliiDeveloper Jul 13, 2026
3301e0c
feat: unify store output navigation
VitaliiDeveloper Jul 13, 2026
68b4024
feat: unify canvas mode presentation
VitaliiDeveloper Jul 13, 2026
64ae940
test: cover unified output navigation
VitaliiDeveloper Jul 13, 2026
5aa20ae
fix: fit connected output rows to artwork
VitaliiDeveloper Jul 13, 2026
c26eeec
fix: remove unused toolbar test locator
VitaliiDeveloper Jul 13, 2026
3932b92
refactor: remove redundant screen scope control
VitaliiDeveloper Jul 13, 2026
197621b
Merge pull request #5 from VitaliiDeveloper/codex/moderate-project-cl…
VitaliiDeveloper Jul 13, 2026
fb530b4
Merge remote-tracking branch 'origin/dev' into codex/deep-structure-c…
VitaliiDeveloper Jul 13, 2026
73be5b9
docs: define structural constants and menu cleanup
VitaliiDeveloper Jul 13, 2026
551c02e
refactor: measure shared editor menu placement
VitaliiDeveloper Jul 13, 2026
c2cb627
refactor: tighten editor workspace contracts
VitaliiDeveloper Jul 13, 2026
5a4e4b3
refactor: type layer labels from element schema
VitaliiDeveloper Jul 13, 2026
999ebfb
refactor: centralize font weight contract
VitaliiDeveloper Jul 13, 2026
4e1dd2a
refactor: centralize cli project filename
VitaliiDeveloper Jul 13, 2026
3233871
refactor: remove unused viewport metric outputs
VitaliiDeveloper Jul 13, 2026
bb8aafa
docs: add structural cleanup implementation plan
VitaliiDeveloper Jul 13, 2026
d1f9237
Merge pull request #6 from VitaliiDeveloper/codex/deep-structure-cleanup
VitaliiDeveloper Jul 14, 2026
5e4e241
docs: add schema baseline implementation plan
VitaliiDeveloper Jul 14, 2026
484378b
refactor: reset pre-release schema baseline
VitaliiDeveloper Jul 14, 2026
35e0d62
refactor: normalize active project fixtures
VitaliiDeveloper Jul 14, 2026
7c143d2
test: isolate generated fixture state
VitaliiDeveloper Jul 14, 2026
c93e528
docs: document pre-release schema baseline
VitaliiDeveloper Jul 14, 2026
e4e686b
test: align sample parity pixel ratio
VitaliiDeveloper Jul 14, 2026
d2e01e4
refactor: harden schema baseline checks
VitaliiDeveloper Jul 14, 2026
f8473ea
docs: record schema baseline verification
VitaliiDeveloper Jul 14, 2026
ea84bde
docs: complete schema baseline plan
VitaliiDeveloper Jul 14, 2026
f676b27
chore: remove legacy phase artifacts
VitaliiDeveloper Jul 14, 2026
79bc952
Merge pull request #7 from VitaliiDeveloper/codex/reset-schema-baseline
VitaliiDeveloper Jul 14, 2026
4fa48c1
feat: use 3x watchOS output masters
VitaliiDeveloper Jul 14, 2026
175e7a9
docs: document watchOS master scale
VitaliiDeveloper Jul 14, 2026
6d31d77
test: narrow watchOS fixture platform
VitaliiDeveloper Jul 14, 2026
8077c78
fix: keep store sizes in shared overview flow
VitaliiDeveloper Jul 14, 2026
4ca3272
refactor: clarify watchOS authoring policy
VitaliiDeveloper Jul 14, 2026
f906f0a
Merge pull request #9 from VitaliiDeveloper/codex/bug-store-size-over…
VitaliiDeveloper Jul 14, 2026
9d044de
fix: preserve visual metrics during scaling
VitaliiDeveloper Jul 14, 2026
a59ae48
test: verify scaled watchOS export parity
VitaliiDeveloper Jul 14, 2026
b4357f2
docs: document proportional scaling contract
VitaliiDeveloper Jul 14, 2026
e0b0327
Merge remote-tracking branch 'origin/dev' into codex/use-watchos-3x-m…
VitaliiDeveloper Jul 14, 2026
863f8dd
feat: enlarge watchOS authoring masters
VitaliiDeveloper Jul 14, 2026
1164ed5
test: stabilize editor e2e workflows
VitaliiDeveloper Jul 14, 2026
6fbedaa
fix: clarify custom master export size
VitaliiDeveloper Jul 14, 2026
5bca0db
feat: enlarge watchOS target variants
VitaliiDeveloper Jul 14, 2026
c12bfb0
fix: keep watchOS variant target UI stable
VitaliiDeveloper Jul 14, 2026
e619da4
test: harden e2e orchestration
VitaliiDeveloper Jul 14, 2026
a86202e
test: strengthen e2e coverage oracles
VitaliiDeveloper Jul 15, 2026
9c0fdd9
feat: make store target artboards independently resizable
VitaliiDeveloper Jul 15, 2026
53880f0
refactor: clarify artboard sizing controls
VitaliiDeveloper Jul 15, 2026
21a60ec
refactor: simplify artboard sizing header
VitaliiDeveloper Jul 15, 2026
e07d5f6
refactor: remove legacy root artboard resize
VitaliiDeveloper Jul 15, 2026
cd89424
Merge pull request #8 from VitaliiDeveloper/codex/use-watchos-3x-master
VitaliiDeveloper Jul 15, 2026
f898584
Merge pull request #10 from VitaliiDeveloper/codex/fix-e2e-stability
VitaliiDeveloper Jul 15, 2026
5e1d513
fix: validate portable project resource paths
VitaliiDeveloper Jul 14, 2026
03997af
fix: write project snapshots atomically
VitaliiDeveloper Jul 14, 2026
2ebcd1b
fix: hash exact project snapshot bytes
VitaliiDeveloper Jul 14, 2026
b34d222
docs: define GitHub authentication boundary
VitaliiDeveloper Jul 15, 2026
e8ac9d9
Merge pull request #16 from VitaliiDeveloper/codex/github-auth-boundary
VitaliiDeveloper Jul 15, 2026
693c4c7
fix: harden atomic project write failures
VitaliiDeveloper Jul 15, 2026
ee9afd8
fix: coordinate project mutations
VitaliiDeveloper Jul 14, 2026
b89e142
fix: make project lock ownership race-safe
VitaliiDeveloper Jul 15, 2026
9f49e45
fix: make project lock recovery fail closed
VitaliiDeveloper Jul 15, 2026
d60a159
fix: publish project lock releases atomically
VitaliiDeveloper Jul 15, 2026
d8258db
fix: publish files safely
VitaliiDeveloper Jul 15, 2026
f449101
fix: enforce revision-safe project writes
VitaliiDeveloper Jul 15, 2026
ec942bf
fix: harden bundle publication rollback
VitaliiDeveloper Jul 15, 2026
1149e0c
fix: make project updates transactional
VitaliiDeveloper Jul 15, 2026
5f831cb
fix: serialize project mutators
VitaliiDeveloper Jul 15, 2026
ddd205d
fix: pin exports to one project snapshot
VitaliiDeveloper Jul 15, 2026
3d3e92e
fix: make file publication race-safe
VitaliiDeveloper Jul 15, 2026
02cd333
fix: preserve screen and geometry invariants
VitaliiDeveloper Jul 15, 2026
659b3b6
fix: harden project resource lifecycles
VitaliiDeveloper Jul 15, 2026
51398e2
fix: enforce project font lifecycles
VitaliiDeveloper Jul 15, 2026
261ed87
fix: synchronize editor resources
VitaliiDeveloper Jul 15, 2026
b28dcdd
fix: stream ui export artifacts
VitaliiDeveloper Jul 15, 2026
b6116a7
chore: align public release surfaces
VitaliiDeveloper Jul 15, 2026
6b5eb27
fix: close remaining e2e review gaps
VitaliiDeveloper Jul 15, 2026
830051c
test: isolate export e2e project leases
VitaliiDeveloper Jul 15, 2026
7c63c1e
refactor: use proper-lockfile for project mutations
VitaliiDeveloper Jul 15, 2026
05df71f
fix: enforce portable project resource paths
VitaliiDeveloper Jul 16, 2026
f44d3bc
chore: sync portable path base
VitaliiDeveloper Jul 16, 2026
80667a8
chore: sync final mutation locking base
VitaliiDeveloper Jul 16, 2026
9ba387e
chore: sync safe publication base
VitaliiDeveloper Jul 16, 2026
b6d14bd
chore: sync editor resources base
VitaliiDeveloper Jul 16, 2026
8703938
test: make mutation lock assertions deterministic
VitaliiDeveloper Jul 16, 2026
9b80a6f
Merge branch 'codex/project-mutation-locking' into codex/review-safe-…
VitaliiDeveloper Jul 16, 2026
95fafc1
test: remove fixed mutation lock waits
VitaliiDeveloper Jul 16, 2026
25a6556
refactor: scope safe publication to export outputs
VitaliiDeveloper Jul 16, 2026
5344016
Merge branch 'codex/review-safe-publication' into codex/review-editor…
VitaliiDeveloper Jul 16, 2026
cfafbd6
refactor: scope managed resource file operations
VitaliiDeveloper Jul 16, 2026
f11ff12
fix: share export artifact tickets across routes
VitaliiDeveloper Jul 16, 2026
7e96cad
docs: align editor resource and export contracts
VitaliiDeveloper Jul 16, 2026
39fe2ce
chore: harden release candidate audits
VitaliiDeveloper Jul 16, 2026
cc113d5
Merge branch 'codex/review-editor-resources' into codex/review-e2e-docs
VitaliiDeveloper Jul 16, 2026
680138a
chore: keep e2e stabilization scoped
VitaliiDeveloper Jul 16, 2026
5f33b90
fix: enforce revision-safe project writes
VitaliiDeveloper Jul 15, 2026
941d61c
fix: make project updates transactional
VitaliiDeveloper Jul 15, 2026
6cc013a
fix: serialize project mutators
VitaliiDeveloper Jul 15, 2026
d4623cc
test: remove fixed mutation lock waits
VitaliiDeveloper Jul 16, 2026
b6ee777
fix: publish files safely
VitaliiDeveloper Jul 15, 2026
c094b29
fix: harden bundle publication rollback
VitaliiDeveloper Jul 15, 2026
9a81a94
fix: pin exports to one project snapshot
VitaliiDeveloper Jul 15, 2026
2ededf5
fix: make file publication race-safe
VitaliiDeveloper Jul 15, 2026
272cb91
refactor: scope safe publication to export outputs
VitaliiDeveloper Jul 16, 2026
b1ac081
docs: normalize safe publication guide
VitaliiDeveloper Jul 16, 2026
fc1ef95
fix: preserve screen and geometry invariants
VitaliiDeveloper Jul 15, 2026
ff98738
fix: cascade editor root removal
VitaliiDeveloper Jul 16, 2026
1f3da87
docs: align geometry and target contracts
VitaliiDeveloper Jul 16, 2026
5ff2b0c
fix: harden project resource lifecycles
VitaliiDeveloper Jul 15, 2026
60a0c7c
fix: enforce project font lifecycles
VitaliiDeveloper Jul 15, 2026
5670eaf
refactor: scope managed resource file operations
VitaliiDeveloper Jul 16, 2026
b09ff18
docs: define managed resource ownership
VitaliiDeveloper Jul 16, 2026
83308f9
fix: synchronize editor resources
VitaliiDeveloper Jul 15, 2026
21aa938
fix: stream ui export artifacts
VitaliiDeveloper Jul 15, 2026
bb4be8e
fix: share export artifact tickets across routes
VitaliiDeveloper Jul 16, 2026
38f4146
docs: define export artifact tickets
VitaliiDeveloper Jul 16, 2026
04fda8d
merge: align release tooling with decomposed stack
VitaliiDeveloper Jul 16, 2026
e439629
ci: verify release candidates
VitaliiDeveloper Jul 16, 2026
c93a0a1
merge: align e2e coverage with decomposed stack
VitaliiDeveloper Jul 16, 2026
63e99e4
test: normalize resource lifecycle fixture
VitaliiDeveloper Jul 16, 2026
b15b6d8
merge: propagate resource diff cleanup
VitaliiDeveloper Jul 16, 2026
15b2275
merge: propagate editor stack cleanup
VitaliiDeveloper Jul 16, 2026
126537c
merge: propagate artifact stack cleanup
VitaliiDeveloper Jul 16, 2026
47ea0dc
merge: propagate artifact stack cleanup
VitaliiDeveloper Jul 16, 2026
7d4b894
Merge pull request #12 from VitaliiDeveloper/codex/review-storage-loc…
VitaliiDeveloper Jul 16, 2026
1df7fd8
Merge pull request #17 from VitaliiDeveloper/codex/project-mutation-l…
VitaliiDeveloper Jul 16, 2026
3ea1f6c
Merge pull request #19 from VitaliiDeveloper/codex/review-revision-tr…
VitaliiDeveloper Jul 16, 2026
815f3d5
Merge pull request #20 from VitaliiDeveloper/codex/review-export-publ…
VitaliiDeveloper Jul 16, 2026
44ea129
Merge pull request #21 from VitaliiDeveloper/codex/review-geometry-in…
VitaliiDeveloper Jul 16, 2026
b84d5dd
Merge pull request #22 from VitaliiDeveloper/codex/review-resource-fo…
VitaliiDeveloper Jul 16, 2026
9a4f033
Merge pull request #23 from VitaliiDeveloper/codex/review-editor-reco…
VitaliiDeveloper Jul 16, 2026
462d815
Merge pull request #24 from VitaliiDeveloper/codex/review-export-arti…
VitaliiDeveloper Jul 16, 2026
86cdfd9
Merge pull request #15 from VitaliiDeveloper/codex/review-e2e-docs
VitaliiDeveloper Jul 16, 2026
302bb84
Merge pull request #18 from VitaliiDeveloper/codex/review-release-too…
VitaliiDeveloper Jul 16, 2026
6c84240
Merge pull request #25 from VitaliiDeveloper/codex/review-editor-reco…
VitaliiDeveloper Jul 16, 2026
2e3dd62
refactor: consolidate editor UI patterns
VitaliiDeveloper Jul 16, 2026
51027c5
fix: support safe project snapshots on Windows
VitaliiDeveloper Jul 16, 2026
cad8958
test: stabilize watchOS export coverage
VitaliiDeveloper Jul 16, 2026
e219209
Merge pull request #27 from VitaliiDeveloper/codex/windows-safe-proje…
VitaliiDeveloper Jul 16, 2026
f4491cf
Merge pull request #26 from VitaliiDeveloper/codex/consolidate-editor…
VitaliiDeveloper Jul 16, 2026
715f61c
Merge remote-tracking branch 'origin/dev' into codex/watchos-export-e2e
VitaliiDeveloper Jul 16, 2026
af0e7ca
test: derive watchOS pixel color from fixture
VitaliiDeveloper Jul 16, 2026
32142b5
Merge pull request #28 from VitaliiDeveloper/codex/watchos-export-e2e
VitaliiDeveloper Jul 16, 2026
2ce88bc
chore: update actions to Node 24 runtimes
VitaliiDeveloper Jul 17, 2026
8cb4054
feat: add independent editable design layouts
VitaliiDeveloper Jul 17, 2026
20d9960
fix: let layout selector use available width
VitaliiDeveloper Jul 17, 2026
1407f56
Merge pull request #29 from VitaliiDeveloper/codex/node24-actions
VitaliiDeveloper Jul 17, 2026
148bcb0
fix: clarify mode switching and reset export filters
VitaliiDeveloper Jul 17, 2026
c352686
fix: prevent initial toolbar density flash
VitaliiDeveloper Jul 17, 2026
66c9a73
Merge pull request #30 from VitaliiDeveloper/codex/independent-design…
VitaliiDeveloper Jul 17, 2026
cbc056c
chore: add missing SPDX headers (#32)
VitaliiDeveloper Jul 18, 2026
b0dfd80
feat: add Launcher 1/7 active project session foundation (#31)
VitaliiDeveloper Jul 18, 2026
7809f28
refactor: add stable web import alias (#33)
VitaliiDeveloper Jul 18, 2026
d2627da
feat: add managed project storage foundation (#35)
VitaliiDeveloper Jul 18, 2026
78abbf9
fix: restore dev CI verification (#36)
VitaliiDeveloper Jul 18, 2026
07e67ad
test: retire phase labels and publish coverage (#38)
VitaliiDeveloper Jul 18, 2026
302422f
feat: add App Home project import and archive transfer (#37)
VitaliiDeveloper Jul 18, 2026
da44ead
feat: add Project Home and Workspace round trip (#39)
VitaliiDeveloper Jul 18, 2026
150aa32
Launcher 5: create managed projects from starter templates (#40)
VitaliiDeveloper Jul 19, 2026
5a6aef2
Launcher 6: capture import preview with explicit target (#41)
VitaliiDeveloper Jul 19, 2026
96fc5c0
Launcher 7/8 — permanent managed-project deletion (#42)
VitaliiDeveloper Jul 20, 2026
3089d5e
feat: close Launcher 8 recents and onboarding (#43)
VitaliiDeveloper Jul 20, 2026
d54b6ed
docs: optimize agent context and separate UI contracts (#44)
VitaliiDeveloper Jul 20, 2026
1c1a34f
ci: run automatic checks only for dev to main (#45)
VitaliiDeveloper Jul 20, 2026
7eaf6db
chore: reduce Codex context usage (#46)
VitaliiDeveloper Jul 20, 2026
c3487ea
feat: streamline project launcher and workspace navigation (#47)
VitaliiDeveloper Jul 20, 2026
dd26dec
feat: add store-ready screenshot authoring (#48)
VitaliiDeveloper Jul 21, 2026
064d04e
docs: describe Codex and GPT-5.6 usage (#50)
VitaliiDeveloper Jul 21, 2026
93c9ca0
feat: refine project workflow and editor authoring (#49)
VitaliiDeveloper Jul 21, 2026
f3431cc
fix: stabilize imported project and media flow (#51)
VitaliiDeveloper Jul 21, 2026
430b377
perf: limit gallery preview asset loading (#52)
VitaliiDeveloper Jul 21, 2026
36da9e7
docs: improve documentation accuracy and hackathon presentation (#53)
VitaliiDeveloper Jul 23, 2026
613f4b9
chore: reconcile main history
VitaliiDeveloper Jul 23, 2026
1246271
fix: stabilize integration checks
VitaliiDeveloper Jul 23, 2026
69db376
fix: confirm screen deletion in e2e
VitaliiDeveloper Jul 23, 2026
b8a216e
fix: stabilize project creation retries
VitaliiDeveloper Jul 23, 2026
5f56b0c
fix: align project flow e2e coverage
VitaliiDeveloper Jul 23, 2026
a17433a
fix: target project close action reliably
VitaliiDeveloper Jul 23, 2026
a0f4b8b
test: harden integration regression coverage
VitaliiDeveloper Jul 23, 2026
d0adc42
Merge pull request #55 from VitaliiDeveloper/codex/fix-dev-review-fin…
VitaliiDeveloper Jul 23, 2026
d4f867e
test: align authoring checks with current UI
VitaliiDeveloper Jul 23, 2026
db6c91e
Merge pull request #56 from VitaliiDeveloper/codex/fix-authoring-e2e
VitaliiDeveloper Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
76 changes: 76 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: CI

on:
workflow_dispatch:
pull_request:
branches:
- "main"

# A newer push to the same long-lived ref cancels the in-flight run.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
lint:
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.base_ref == 'main' && github.head_ref == 'dev')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4.4.0
- uses: actions/setup-node@v5
with:
node-version: "22"
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm lint

test:
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.base_ref == 'main' && github.head_ref == 'dev')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4.4.0
- uses: actions/setup-node@v5
with:
node-version: "22"
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm typecheck
- run: pnpm test

coverage:
# Coverage is collected at the dev-to-main integration boundary or on demand.
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.base_ref == 'main' && github.head_ref == 'dev')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4.4.0
- uses: actions/setup-node@v5
with:
node-version: "22"
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm test:coverage
- uses: actions/upload-artifact@v7
with:
name: unit-coverage-${{ github.sha }}
path: coverage/
if-no-files-found: error
retention-days: 30

e2e-full:
# Browser regression belongs only at the long-lived integration boundary.
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.base_ref == 'main' && github.head_ref == 'dev')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4.4.0
- uses: actions/setup-node@v5
with:
node-version: "22"
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: sudo grep -rlZ 'packages.microsoft.com' /etc/apt/sources.list.d/ | sudo xargs -0 -r rm -f
- run: pnpm exec playwright install --with-deps chromium firefox webkit
- run: xvfb-run -a pnpm test:e2e
76 changes: 76 additions & 0 deletions .github/workflows/package-matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Package Matrix

on:
workflow_dispatch:
pull_request:
branches:
- "main"
paths:
- ".github/workflows/package-matrix.yml"
- "apps/web/**"
- "packages/cli/**"
- "packages/core/**"
- "scripts/build-cli-package.mjs"
- "scripts/package-archive.*"
- "e2e/packaged-cli.test.ts"
- "package.json"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- "store-specs.json"

permissions:
contents: read

concurrency:
group: package-matrix-${{ github.ref }}
cancel-in-progress: true

jobs:
packaged-cli:
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.base_ref == 'main' && github.head_ref == 'dev')
name: ${{ matrix.os }} / Node ${{ matrix.node }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
node: "22"
extended: false
- os: macos-latest
node: "22"
extended: false
- os: windows-latest
node: "22"
extended: false
- os: ubuntu-latest
node: "24"
extended: true

steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4.4.0
- uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node }}
cache: pnpm
- run: pnpm install --frozen-lockfile

- name: Remove broken Microsoft apt source
if: runner.os == 'Linux'
shell: bash
run: sudo grep -rlZ 'packages.microsoft.com' /etc/apt/sources.list.d/ | sudo xargs -0 -r rm -f
- name: Install Chromium on Linux
if: runner.os == 'Linux'
run: pnpm exec playwright install --with-deps chromium chromium-headless-shell
- name: Install Chromium on macOS or Windows
if: runner.os != 'Linux'
run: pnpm exec playwright install chromium chromium-headless-shell

- name: Verify newer-LTS workspace compatibility
if: matrix.extended
run: pnpm typecheck && pnpm test

- name: Verify packed install and exact export
run: pnpm test:e2e:package
46 changes: 46 additions & 0 deletions .github/workflows/release-candidate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Release candidate

on:
workflow_dispatch:
pull_request:
branches:
- "main"
paths:
- ".github/workflows/release-candidate.yml"
- "docs/releasing.md"
- "scripts/build-cli-package.mjs"
- "scripts/check-community.mjs"
- "scripts/check-release-candidate.mjs"
- "scripts/check-spdx.mjs"
- "scripts/check-spdx.test.ts"
- "scripts/release-audit.mjs"
- "scripts/release-audit.test.ts"
- "package.json"
- "pnpm-lock.yaml"
- "apps/web/package.json"
- "packages/core/package.json"
- "packages/cli/package.json"

permissions:
contents: read

concurrency:
group: release-candidate-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
release-candidate:
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.base_ref == 'main' && github.head_ref == 'dev')
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4.4.0
- uses: actions/setup-node@v5
with:
node-version: "22"
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm check:community
- run: pnpm check:spdx
- run: pnpm check:release-candidate
72 changes: 72 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# OS
.DS_Store
Thumbs.db

# Dependencies
node_modules/
.pnpm-store/

# Build output / monorepo
dist/
build/
out/
.turbo/
*.tsbuildinfo

# Next.js (apps/web)
.next/
next-env.d.ts
.vercel/

# Env & secrets
.env
.env.*
!.env.example

# Logs
*.log
npm-debug.log*
pnpm-debug.log*

# Testing (Vitest / Playwright)
coverage/
.vitest/
playwright-report/
test-results/
blob-report/
.playwright/

# Generated screenshot bundles (CLI export output). The unanchored pattern also matches
# source directories of the same name, so re-include those explicitly.
export/
!packages/core/src/export/
!apps/web/app/api/export/

# Lint / tool caches
.eslintcache
.cache/
packages/cli/package/

# Agent planning artifacts (local, not the curated docs/ contract)
docs/superpowers/
docs/archive/superpowers/
.superpowers/
.worktrees/
/.codex/config.toml
/.screenshot-studio/
/apps/web/.screenshot-studio/

# E2E scratch (parity harness temp renders)
e2e/.tmp/
fixtures/slice-2-screenshot/_missing.json

# Certs / keys
*.pem

# Editor
.vscode/*
!.vscode/extensions.json
.idea/
*.swp

fixtures/slice-3-device-frame/_missing.json
54 changes: 54 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# AGENTS.md — Screenshot Studio

Before any task, read and apply the repository-wide workflow rules in
[`RULES.md`](RULES.md).

## Core contracts

- `app-store-screenshots.json` is the single persisted project document. The enforced strict schema
in `packages/core/src/model/schema.ts` is the source of truth; inspect it before changing project
fields or fixtures.
- Render/export parity is the primary invariant. The editor and CLI must use the same shared core and
browser renderer; never introduce a second pixel-rendering path.
- Store dimensions come from `store-specs.json`, not duplicated constants.
- Schema widening requires explicit task authorization and coordinated schema, architecture,
renderer, fixture, and parity updates. Do not invent project fields from prose or future ideas.
- Publication is separate from implementation. Follow `docs/releasing.md`; builds and green checks do
not authorize tags, registry publication, GitHub releases, or announcements.

## Task-based reading

Read only the smallest relevant set:

| Task | Read first |
|---|---|
| Schema, renderer, export, or CLI behavior | `docs/architecture.md` and the relevant source/tests |
| Editor/UI behavior | `docs/editor.md` |
| Test selection or CI behavior | `docs/testing.md` |
| Project source, active session, catalog, or request fencing | `docs/architecture.md` and the relevant web source/tests |
| Project locking or concurrent writes | `docs/project-mutation-locking.md` |
| Asset/output publication safety | `docs/safe-file-publication.md` |
| Package or release work | `docs/releasing.md` |
| User-facing setup or documentation | `README.md` |
| Generated screenshot project | that project's `AGENTS.md` |

## Context discipline

- Read only task-relevant files and narrow ranges. Never recursively scan or print `.superpowers/`,
`.worktrees/`, `node_modules/`, build output, lockfiles, logs, traces, or session transcripts.
- Keep command output bounded and summarize results. Prefer tracked files, exact paths, and targeted
`rg`; do not dump repository-wide file lists or passing-test logs into context.
- Do not use sub-agents, Browser, Computer Use, live preview, or browser developer mode unless the
user explicitly requests them or the changed behavior cannot be verified without that surface.
- Run exact tests first. Never run the full local E2E suite; use one browser file only when required
by the changed UI/render contract. `docs/testing.md` owns the exact matrix.

## GitHub authentication boundary

- Repository setup, development, builds, and tests must not require GitHub credentials.
- Never read, copy, print, modify, or request credential files, access tokens, or private keys.
- Treat sandbox or container `gh` failures as credentials unavailable in that environment, not proof
that the contributor is logged out. Prefer an authorized GitHub connector, then a trusted host
credential broker or a narrowly scoped elevated command.
- If authenticated access remains unavailable, report the blocker and provide the relevant GitHub
URL for manual completion.
4 changes: 4 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# CLAUDE.md

@AGENTS.md
@RULES.md
42 changes: 42 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Contributing to Screenshot Studio

Thanks for helping improve Screenshot Studio. Small, focused changes are easiest to review and the
render/export parity contract takes priority over convenience in any one shell.

## Set up the repository

Requirements are Node.js 22.13+, Corepack, and the Playwright Chromium builds used by export tests.

```bash
git clone https://github.com/VitaliiDeveloper/Screenshot-Studio.git
cd Screenshot-Studio
corepack enable
pnpm install
pnpm exec playwright install chromium chromium-headless-shell
pnpm dev
```

Before changing the project, read `AGENTS.md`, `RULES.md`, and only the architecture or tracked
contract section relevant to your change. Keep project JSON inside the enforced schema and keep UI
and CLI pixels on the shared browser renderer.

## Make a change

1. Open an issue for behavior that changes the schema, renderer, export, or documented product contract.
2. Keep the patch to one concern and add the smallest practical regression test.
3. Add `SPDX-License-Identifier: Apache-2.0` to new authored `.ts`, `.tsx`, and `.mjs` source files.
Do not add text headers to JSON, media, vendored/generated files, lockfiles, or third-party fonts.
4. Start with the narrow package test that covers the changed behavior. Add or run an exact E2E
file only when that behavior requires a real browser, render host, or packed consumer. Do not run
the full browser suite locally; CI owns `pnpm test:e2e` for the integration PR from `dev` into
`main`. The leaf-group ownership and cost matrix lives in `docs/testing.md`.
5. Update public documentation when the user-visible behavior or install path changes.

Commit subjects use `feat:`, `fix:`, `docs:`, `test:`, `refactor:`, `build:`, `chore:`, `style:`, or
`perf:` followed by a concise imperative description. Do not add agent attribution trailers.

## License

The project is licensed under Apache-2.0. Unless you explicitly state otherwise, a contribution
intentionally submitted for inclusion is provided under that same license, as described in
`LICENSE`. Preserve applicable notices and keep third-party license texts with their assets.
5 changes: 5 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Screenshot Studio
Copyright 2026 Vitalii Lavreniuk and Screenshot Studio contributors

This product is licensed under the Apache License, Version 2.0
(see the LICENSE file in the repository root).
Loading