Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
489 commits
Select commit Hold shift + click to select a range
25e6b15
feat(feishu): add sync run diagnostic samples
TalexDreamSoul Apr 20, 2026
9e110ca
fix(feishu): guard sync writeback status field
TalexDreamSoul Apr 20, 2026
e49926c
feat(admin): optimize bailian provider model config
TalexDreamSoul Apr 20, 2026
493120e
fix(admin): normalize bailian provider root url
TalexDreamSoul Apr 20, 2026
1c27606
fix(feishu): restore synced data navigation
TalexDreamSoul Apr 20, 2026
1abe5cd
fix(feishu): isolate writeback config drafts
TalexDreamSoul Apr 20, 2026
1be258d
fix(admin): route embedding scene to embedding models
TalexDreamSoul Apr 20, 2026
dd84f38
feat(admin): split embedding scene routing
TalexDreamSoul Apr 20, 2026
8d84d26
feat(feishu): add single-row sync simulation
TalexDreamSoul Apr 20, 2026
fbc42d0
fix(feishu): render synced data child routes
TalexDreamSoul Apr 21, 2026
21b11bb
feat(admin): split scene model pool and fallback order
TalexDreamSoul Apr 21, 2026
cafa598
feat(admin): require naming before creating mockup variants
TalexDreamSoul Apr 21, 2026
824bbd1
chore(repo): track workspace placeholder file
TalexDreamSoul Apr 21, 2026
1d7fb0d
feat(feishu): clarify synced data metrics and sample paging
TalexDreamSoul Apr 21, 2026
a79f128
fix(admin): reset mockup upload controls after upload
TalexDreamSoul Apr 21, 2026
567e4f6
feat: refine loopy data workspace and semantic space
TalexDreamSoul Apr 21, 2026
37666c0
fix(brand): switch logo animation to svg tracing
TalexDreamSoul Apr 21, 2026
6f28248
fix(brand): refine logo animation and shell loading
TalexDreamSoul Apr 21, 2026
1c0d567
feat: refine loopy data hero placeholder
TalexDreamSoul Apr 21, 2026
28a31f3
feat(feishu): add sync cleanup and dedupe guard
TalexDreamSoul Apr 21, 2026
81f86db
feat: add workspace export and canvas ai flows
TalexDreamSoul Apr 21, 2026
53408de
feat: add project export job tracking
TalexDreamSoul Apr 21, 2026
41b898c
fix: align design workspace contracts
TalexDreamSoul Apr 21, 2026
66e9690
fix: stabilize workspace knowledge contracts
TalexDreamSoul Apr 21, 2026
bcd847f
fix: align workspace stream and design contracts
TalexDreamSoul Apr 21, 2026
5ca905e
fix: defer workspace sync during resize
TalexDreamSoul Apr 21, 2026
3ab39be
feat(ai): persist sessions and govern embeddings
TalexDreamSoul Apr 21, 2026
045260c
feat(workspace): land data center overview contracts
TalexDreamSoul Apr 21, 2026
3467f10
fix: clean dev import warnings
TalexDreamSoul Apr 21, 2026
aafc5ac
feat(workspace): compact loopy data workbench
TalexDreamSoul Apr 21, 2026
1d69075
style(workspace): simplify defense and final review workbenches
TalexDreamSoul Apr 21, 2026
1ac1ede
feat(feishu): improve import flow guidance
TalexDreamSoul Apr 21, 2026
9a50f80
refactor: remove implicit ai defaults
TalexDreamSoul Apr 21, 2026
3d79dce
feat(intelligence): add workflow v1
TalexDreamSoul Apr 21, 2026
9c8a5e5
feat(feishu): polish import flow guidance
TalexDreamSoul Apr 22, 2026
4dcab97
feat(feishu): improve import run guidance
TalexDreamSoul Apr 22, 2026
6fab4a7
fix feishu latest run summary
TalexDreamSoul Apr 22, 2026
8ce2af8
feat(dashboard): compact sidebar layout and typography
TalexDreamSoul Apr 22, 2026
f9e9900
fix(feishu): stabilize bitable sync console flows
TalexDreamSoul Apr 22, 2026
73a51d6
refactor(workspace): share workbench visual tokens
TalexDreamSoul Apr 22, 2026
71d638e
feat(dashboard): polish loopy home chat ui
TalexDreamSoul Apr 22, 2026
5d712eb
feat(workspace): add canvas collab and meeting runtime flow
TalexDreamSoul Apr 22, 2026
3cd29cb
chore(tmp): add video frame captures
TalexDreamSoul Apr 22, 2026
d958027
fix(feishu): restore synced data ownership by sync source
TalexDreamSoul Apr 22, 2026
64a7c05
feat(workspace): add page review and team checkout
TalexDreamSoul Apr 23, 2026
a2e7cad
fix(feishu): refresh sync logs and expose duplicate metrics
TalexDreamSoul Apr 23, 2026
da5c8bf
feat(contests): refresh contest library page
TalexDreamSoul Apr 23, 2026
2558fea
feat(device-arrangement): add standalone workspace editor
TalexDreamSoul Apr 23, 2026
c469e7c
docs(competition-tech-pack): add technical pack
TalexDreamSoul Apr 23, 2026
a147991
style(contests): tighten library page layout
TalexDreamSoul Apr 23, 2026
b330a2a
fix(workspace): migrate legacy device arrangement on open
TalexDreamSoul Apr 23, 2026
c873f78
feat(admin): tighten admin console shell
TalexDreamSoul Apr 23, 2026
e8cb599
feat(admin): support route tab context actions
TalexDreamSoul Apr 23, 2026
1b615ec
docs(competition-tech-pack): refresh model-generated figure set
TalexDreamSoul Apr 23, 2026
fe9b0d8
docs(competition-tech-pack): add advanced ai architecture pack
TalexDreamSoul Apr 23, 2026
cfe8dd1
docs(competition-tech-pack): add presentation and application materials
TalexDreamSoul Apr 23, 2026
f52edff
feat(release): tighten contest release governance
TalexDreamSoul Apr 23, 2026
211a6a6
feat(admin): align contest workspace with release workflow
TalexDreamSoul Apr 23, 2026
2d9a2fe
fix(workspace): stabilize device arrangement open flow
TalexDreamSoul Apr 23, 2026
6756325
fix(auth): tune login card glass layer
TalexDreamSoul Apr 25, 2026
45b01e2
fix(admin): streamline release review workflow
TalexDreamSoul Apr 25, 2026
d2083dd
fix(admin): move review logs into detail drawer
TalexDreamSoul Apr 25, 2026
255b9fa
test(admin): cover review log drawer workflow
TalexDreamSoul Apr 25, 2026
e2e6c89
feat(feishu): sync track season metadata
TalexDreamSoul Apr 26, 2026
31c58ab
fix(release): derive contest publish metadata from tracks
TalexDreamSoul Apr 26, 2026
0b65e1d
fix loopy ai review fallback transparency
TalexDreamSoul Apr 26, 2026
dbde023
fix(ai): tighten review fallback and workflow types
TalexDreamSoul Apr 26, 2026
5784123
fix(review): filter hallucinated page findings
TalexDreamSoul Apr 26, 2026
a2c22de
fix(review): align retry error responses
TalexDreamSoul Apr 26, 2026
273dc06
fix(workflow): require dangerous action confirmations
TalexDreamSoul Apr 26, 2026
c39f78b
fix(workflow): enforce delete confirmations
TalexDreamSoul Apr 26, 2026
68c6f7d
fix(admin): correct release queue statistics
TalexDreamSoul Apr 26, 2026
b8df66d
fix(admin): route contest release actions by version
TalexDreamSoul Apr 26, 2026
f7fba8f
fix(billing): validate mock checkout cycle
TalexDreamSoul Apr 26, 2026
5667fe5
feat(billing): complete business team checkout flow
TalexDreamSoul Apr 26, 2026
6ed6845
feat(admin): add release queue review insights
TalexDreamSoul Apr 26, 2026
e616e4f
feat(admin): add contest metadata review drawer
TalexDreamSoul Apr 26, 2026
086298b
fix(ci): tolerate Jenkins crumb redirects
TalexDreamSoul Apr 26, 2026
481a5b5
fix(feishu): stabilize bitable sync pruning
TalexDreamSoul Apr 26, 2026
092a2dc
feat(ai): add knowledge retrieval planner
TalexDreamSoul Apr 26, 2026
887d21f
feat(workspace): surface knowledge retrieval paths
TalexDreamSoul Apr 26, 2026
84ce502
test(ai): cover knowledge retrieval planning
TalexDreamSoul Apr 26, 2026
1ff0163
feat(ai): add typed provider channel routing
TalexDreamSoul Apr 26, 2026
b572f4f
feat(admin): filter ai scenes by provider capability
TalexDreamSoul Apr 26, 2026
37dd1c7
fix(feishu): preserve sibling snapshots in release drafts
TalexDreamSoul Apr 26, 2026
7a14f35
test(feishu): cover release draft aggregation
TalexDreamSoul Apr 26, 2026
9f6ddf5
fix(ai): remove default vision model routing
TalexDreamSoul Apr 26, 2026
e6118c0
fix(ai): respect empty scene provider bindings
TalexDreamSoul Apr 26, 2026
41046be
fix(ai): expose provider capability routing
TalexDreamSoul Apr 26, 2026
27602db
fix(ai): filter scene provider choices
TalexDreamSoul Apr 26, 2026
09d8d8c
fix(ai): align provider model fetch route
TalexDreamSoul Apr 26, 2026
4196a7f
fix(admin): align feishu contest field contract
TalexDreamSoul Apr 27, 2026
a7338f7
fix(admin): improve release queue track timeline review
TalexDreamSoul Apr 28, 2026
e77f506
fix(feishu): preserve manual contest fields
TalexDreamSoul Apr 28, 2026
e53765c
feat(admin): add contest audit insights panel
TalexDreamSoul Apr 28, 2026
9693d04
fix(workspace): surface knowledge index trust notice
TalexDreamSoul Apr 28, 2026
49cca38
fix(workspace): align knowledge ready trust copy
TalexDreamSoul Apr 28, 2026
1455b9c
fix(workspace): guard missing knowledge visual node
TalexDreamSoul Apr 28, 2026
8907c03
fix(workspace): align knowledge trust warning style
TalexDreamSoul Apr 28, 2026
244672e
fix(feishu): preserve track cover and timelines
TalexDreamSoul Apr 29, 2026
774b8a6
fix(admin): preview track covers in review
TalexDreamSoul Apr 29, 2026
d3c79c4
fix(admin): surface release review queue details
TalexDreamSoul Apr 29, 2026
e58335b
fix(admin): stabilize contest audit timeline
TalexDreamSoul Apr 29, 2026
bec5ddb
fix(admin): improve contest review attachments and timelines
TalexDreamSoul Apr 29, 2026
cb45d5f
docs(competition): add hybrid retrieval evidence diagram
TalexDreamSoul Apr 29, 2026
de8c122
fix(feishu): resolve release attachment previews
TalexDreamSoul Apr 29, 2026
3ad5232
fix(admin): restore release cover and timeline previews
TalexDreamSoul Apr 29, 2026
99356a1
fix(feishu): refine timeline date parsing
TalexDreamSoul Apr 30, 2026
46804a2
fix(admin): clarify timeline review display
TalexDreamSoul Apr 30, 2026
7e49f94
feat(admin): add release feishu refresh endpoint
TalexDreamSoul Apr 30, 2026
fe0126d
feat(admin): refine release audit interactions
TalexDreamSoul Apr 30, 2026
6a11c25
feat(dashboard): compact analytics overview
TalexDreamSoul Apr 30, 2026
5e67896
feat(feishu): add workspace integrations and sync sharing
TalexDreamSoul Apr 30, 2026
ec763e1
fix(feishu): resolve config share public base url
TalexDreamSoul Apr 30, 2026
810aa5c
fix(admin): handle empty Feishu config share body
TalexDreamSoul Apr 30, 2026
20dec21
feat(feishu): complete workspace third-party integration
TalexDreamSoul Apr 30, 2026
f103750
test(feishu): add diagnostics smoke acceptance
TalexDreamSoul Apr 30, 2026
88f77b0
ci(docker): split image publish deployment
TalexDreamSoul Apr 30, 2026
62a32d1
fix(workspace): forward resource reload events
TalexDreamSoul Apr 30, 2026
f0252f1
feat(project): refine identity theme controls
TalexDreamSoul Apr 30, 2026
e9c47fb
chore(brand): add exported logo assets
TalexDreamSoul Apr 30, 2026
8aa2cbc
fix(project): compact identity icon picker
TalexDreamSoul Apr 30, 2026
563c7a4
Remove legacy design canvas engine path
TalexDreamSoul Apr 30, 2026
256ce02
Fix admin AI scene test metadata
TalexDreamSoul Apr 30, 2026
2393b62
Remove legacy model meta from provider model APIs
TalexDreamSoul Apr 30, 2026
7d0f022
Remove legacy model meta from provider test
TalexDreamSoul Apr 30, 2026
7752674
Remove legacy model meta from channel test auth
TalexDreamSoul Apr 30, 2026
ffc5421
Remove legacy model meta from AI admin reads
TalexDreamSoul Apr 30, 2026
2aab7f8
Remove implicit AI registry defaults
TalexDreamSoul Apr 30, 2026
f88ed59
Stop borrowing legacy AI API key
TalexDreamSoul Apr 30, 2026
ee46424
Drop legacy AI registry object parsing
TalexDreamSoul Apr 30, 2026
3406306
Route meeting ASR through AI scene
TalexDreamSoul Apr 30, 2026
305d044
Remove legacy AI meta from meeting admin
TalexDreamSoul Apr 30, 2026
3442a0a
Remove deterministic knowledge embedding fallback
TalexDreamSoul Apr 30, 2026
ed2514e
Remove knowledge visual projection fallback
TalexDreamSoul Apr 30, 2026
ca861e2
Remove knowledge entity analysis fallback
TalexDreamSoul Apr 30, 2026
50af4b9
Remove knowledge metadata image fallback
TalexDreamSoul Apr 30, 2026
31ddf9d
Remove Feishu startup notify fallback config
TalexDreamSoul Apr 30, 2026
363486b
Remove document visual fallback projection type
TalexDreamSoul Apr 30, 2026
5b5d285
Remove knowledge worker fallback summaries
TalexDreamSoul Apr 30, 2026
8ffe69b
Clarify legacy fallback embedding status
TalexDreamSoul Apr 30, 2026
1881cd9
Clarify loopy fallback health label
TalexDreamSoul Apr 30, 2026
7647ac7
fix(admin): allow rejected releases to return to first review
TalexDreamSoul Apr 30, 2026
1eb439c
feat(project): add competition loop backbone
TalexDreamSoul May 1, 2026
7c4f64f
fix(workspace): refine outline and sidebar flows
TalexDreamSoul May 1, 2026
b804740
ci: fix Jenkins image digest handoff
TalexDreamSoul May 1, 2026
2243d06
fix: repair fresh schema bootstrap ordering
TalexDreamSoul May 1, 2026
3b79f9b
feat(feishu): add bitable sync manual runner
TalexDreamSoul May 1, 2026
7307f5f
feat(feishu): streamline bitable sync admin actions
TalexDreamSoul May 1, 2026
62ea1f7
test(feishu): cover bitable sync manual controls
TalexDreamSoul May 1, 2026
1126b6f
feat(feishu): split login and workspace connector
TalexDreamSoul May 1, 2026
e7d5130
feat(admin-ai): add coze voice provider
TalexDreamSoul May 1, 2026
0c77838
feat(meeting): route coze voice through realtime flows
TalexDreamSoul May 1, 2026
405d05a
fix(feishu): align oauth token exchange
TalexDreamSoul May 1, 2026
2133142
test(feishu): cover oauth callback url resolution
TalexDreamSoul May 1, 2026
b123f6f
fix: scope release overview review fields
TalexDreamSoul May 1, 2026
1d79324
feat(auth): add external auth onboarding
TalexDreamSoul May 2, 2026
96ebe78
feat(admin): add user management workflows
TalexDreamSoul May 2, 2026
168c790
fix(auth): isolate admin magic login tokens
TalexDreamSoul May 2, 2026
b075df6
chore(admin-users): normalize lint ordering
TalexDreamSoul May 2, 2026
6ce7d02
feat: improve track timeline recognition
TalexDreamSoul May 2, 2026
2eb4fdd
fix(admin-ai): preserve provider api keys during draft model pulls
TalexDreamSoul May 2, 2026
c36a2b2
feat(admin-ai): improve provider and scene configuration UX
TalexDreamSoul May 2, 2026
ad523b3
test(admin-ai): cover provider key and scene prompt behavior
TalexDreamSoul May 2, 2026
c504ace
feat(admin-ai): support dashscope tts testing
TalexDreamSoul May 2, 2026
8fa5197
fix release track timeline save context
TalexDreamSoul May 2, 2026
4618398
test release track timeline replacement
TalexDreamSoul May 2, 2026
3a7f168
feat(ai): support unified voice realtime provider config
TalexDreamSoul May 3, 2026
70b057d
feat(defense): wire voice realtime selections and billing
TalexDreamSoul May 3, 2026
d24dfaf
test(ai): cover voice realtime provider routing
TalexDreamSoul May 3, 2026
2550562
feat(admin-ai): enhance channel provider probes
TalexDreamSoul May 3, 2026
c38c03b
feat(meetings): add realtime sidecar and asr billing
TalexDreamSoul May 3, 2026
b8707ca
feat(storage): configure s3 recording artifacts
TalexDreamSoul May 3, 2026
c1df0b9
docs(meetings): document voice asr storage rollout
TalexDreamSoul May 3, 2026
6fba55b
feat(admin): improve responsive shell navigation
TalexDreamSoul May 3, 2026
4390e58
feat(defense): wire coze realtime room config
TalexDreamSoul May 3, 2026
f244e9c
feat(defense): consume coze realtime selections
TalexDreamSoul May 3, 2026
0360641
fix(admin): stabilize contest timeline routes
TalexDreamSoul May 3, 2026
47f95d3
feat(admin): improve mobile workspace navigation
TalexDreamSoul May 3, 2026
d5f2524
feat(admin-ai): clarify model pricing prompts
TalexDreamSoul May 3, 2026
248ffdd
fix(admin): handle policy release pruning
TalexDreamSoul May 3, 2026
87f7694
fix(admin): improve policy review display
TalexDreamSoul May 3, 2026
0058b88
fix(feishu): use explicit policy id
TalexDreamSoul May 3, 2026
86464f1
test(feishu): cover explicit policy id
TalexDreamSoul May 3, 2026
557a1b0
fix(release): block duplicated track names before publish
TalexDreamSoul May 4, 2026
2c46a72
fix(release): remove stale track timelines on save
TalexDreamSoul May 4, 2026
fbb9b8e
fix(admin): tidy release review drawer actions
TalexDreamSoul May 4, 2026
618c341
fix(release): allow repeated track names
TalexDreamSoul May 4, 2026
6f78e6c
fix(release): show rejection reviewer summary
TalexDreamSoul May 4, 2026
19b8ff7
feat(admin): add simplified rbac permissions
TalexDreamSoul May 4, 2026
17c77e1
feat(admin): harden user management permissions
TalexDreamSoul May 4, 2026
6c32e03
test(admin): cover rbac user management rules
TalexDreamSoul May 4, 2026
125b11c
fix(release): show review log actor summary
TalexDreamSoul May 4, 2026
dcbc344
feat(admin): improve bulk role assignment
TalexDreamSoul May 4, 2026
5933ed7
ci: optimize github workflow setup
TalexDreamSoul May 4, 2026
7121428
feat(meeting): add staging livekit monitoring stack
TalexDreamSoul May 4, 2026
2075f7f
fix(admin): remove duplicate role drawer footer
TalexDreamSoul May 4, 2026
17d2dda
feat(admin): optimize operations dashboard ai analysis
TalexDreamSoul May 4, 2026
65442db
feat(storage): add configurable storage channels
TalexDreamSoul May 4, 2026
444a7e5
feat(deploy): report jenkins deployment state
TalexDreamSoul May 4, 2026
7b64d1d
fix(server): serialize worker database queries
TalexDreamSoul May 4, 2026
effa93a
feat(admin): improve resource preview worker
TalexDreamSoul May 4, 2026
d11e410
fix(storage): use selected document channel
TalexDreamSoul May 4, 2026
7bc074c
fix(ui): simplify loading and login visuals
TalexDreamSoul May 4, 2026
cde387d
fix(ci): restore dev staging pipeline
TalexDreamSoul May 4, 2026
6a31f4b
ci: surface jenkins deploy failure logs
TalexDreamSoul May 4, 2026
3f4e0b3
fix: show publish check issue details
TalexDreamSoul May 4, 2026
464acfb
fix(ci): converge legacy platform admins
TalexDreamSoul May 4, 2026
263988a
fix(ci): keep rbac migration temp table alive
TalexDreamSoul May 4, 2026
f520e8b
fix(ci): avoid staging prometheus port conflict
TalexDreamSoul May 4, 2026
1072dee
fix(ci): avoid staging livekit port conflict
TalexDreamSoul May 4, 2026
1042077
fix(contests): align public contest fields
TalexDreamSoul May 4, 2026
ffd0827
fix(contests): bind identity by external id
TalexDreamSoul May 4, 2026
3378763
test(contests): cover id-only publish identity
TalexDreamSoul May 4, 2026
5fa1da8
fix(settings): unify workspace member avatars
TalexDreamSoul May 5, 2026
77f3d63
feat(ui): add shared select controls
TalexDreamSoul May 5, 2026
19f9bdf
feat(workspace): add loopy page assistant flow
TalexDreamSoul May 5, 2026
02a18a0
feat(workspace): improve device arrangement editor
TalexDreamSoul May 5, 2026
653fe96
feat(contests): improve contest and resource discovery
TalexDreamSoul May 5, 2026
e7348e1
feat(ui): refine admin and workspace surfaces
TalexDreamSoul May 5, 2026
cd0ac60
docs(contest): add ai usage report assets
TalexDreamSoul May 5, 2026
3de285a
feat(feishu): support faq sync metadata
TalexDreamSoul May 5, 2026
b10855b
fix(meeting): move runtime config into system settings
TalexDreamSoul May 5, 2026
045b8d2
fix(contests): keep detail nav icon sizing scoped
TalexDreamSoul May 5, 2026
1b22248
feat(team): refine dashboard project flow
TalexDreamSoul May 5, 2026
5af2595
feat(workspace): simplify device arrangement templates
TalexDreamSoul May 5, 2026
210b81d
fix(team): remove topic seed from project create
TalexDreamSoul May 5, 2026
b960bee
test(workspace): align device arrangement layout assertions
TalexDreamSoul May 5, 2026
21189c7
feat(team): add contest search in create flow
TalexDreamSoul May 5, 2026
ee68860
fix(knowledge): stabilize governance retry update
TalexDreamSoul May 5, 2026
06f9527
fix(contests): style track display ids
TalexDreamSoul May 5, 2026
19fbdfd
feat(workspace): add device arrangement edit locks
TalexDreamSoul May 5, 2026
8b47bd2
feat(dashboard): add analytics mockup fallbacks
TalexDreamSoul May 5, 2026
a4c1817
feat(contests): improve public track resources
TalexDreamSoul May 5, 2026
97346b2
feat(admin): add pdf report exports
TalexDreamSoul May 5, 2026
7eae29e
feat(workspace): refine loopy workspace panels
TalexDreamSoul May 5, 2026
65acb6f
chore(meeting): add local livekit configs
TalexDreamSoul May 5, 2026
2ca243c
feat(meeting): optimize realtime meeting controls
TalexDreamSoul May 6, 2026
64a25e2
style(loopy): simplify data workspace surfaces
TalexDreamSoul May 6, 2026
6f9d616
feat(defense): enrich AgentDef showcase state
TalexDreamSoul May 6, 2026
d626f89
fix(ui): improve workspace select overlay behavior
TalexDreamSoul May 6, 2026
65a7a1f
fix(defense): refine floating preview placement
TalexDreamSoul May 6, 2026
086cfca
feat(loopy): refine data workspace showcase
TalexDreamSoul May 6, 2026
f819893
feat(defense): support realtime provider readiness
TalexDreamSoul May 6, 2026
213ff91
chore(meeting): update defense realtime smoke
TalexDreamSoul May 6, 2026
97021ce
fix(admin): enforce admin access redirects
TalexDreamSoul May 6, 2026
fb10671
fix(deploy): preserve empty jsonb values safely
TalexDreamSoul May 6, 2026
69a8659
feat(ai): enrich project resource context descriptors
TalexDreamSoul May 7, 2026
c745bd5
feat(workspace): create device arrangements from design frames
TalexDreamSoul May 7, 2026
4d82d78
feat(loopy): refine data showcase mockup experience
TalexDreamSoul May 7, 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
  •  
  •  
  •  
Empty file added .Destination}}{{end}}'
Empty file.
29 changes: 29 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.git
.github
.DS_Store
.env
.env.*

node_modules
.nuxt
.output
output
coverage
tmp

.serena
.playwright-mcp
.codexpotter
.spec-workflow
.golutra
.vscode

docs
docs.zip
exports
deploy
false
--port

*.log
*.tsbuildinfo
49 changes: 49 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
WINLOOP_PG_URL=postgresql://winloop:password@127.0.0.1:5432/winloop
WINLOOP_REDIS_URL=redis://:password@127.0.0.1:6379/0

# ===== 开发态地址契约(pnpm dev / pnpm dev:pwa 必填)=====
WINLOOP_DEV_HOST=127.0.0.1
WINLOOP_DEV_PORT=3510

WINLOOP_STORAGE_PROVIDER=local
WINLOOP_STORAGE_LOCAL_ROOT=./tmp/document-storage
WINLOOP_STORAGE_ENDPOINT=
Expand All @@ -13,6 +17,8 @@ WINLOOP_STORAGE_FORCE_PATH_STYLE=true

# 配置加密主密钥(建议生产必配;用于敏感配置加密落库)
WINLOOP_CONFIG_MASTER_KEY=
# 第三方登录引导 pending cookie 签名密钥(生产建议独立配置;未配置时回退到上方主密钥)
WINLOOP_AUTH_ONBOARDING_SECRET=

# ===== 业务参数(支持 UI 覆盖,Env 作为兜底)=====
# 若 ONLYOFFICE 与应用不在同一网络,请配置为可被 ONLYOFFICE 访问的绝对地址(示例:https://app.example.com/api)
Expand All @@ -27,5 +33,48 @@ WINLOOP_ONLYOFFICE_ENDPOINT=
WINLOOP_ONLYOFFICE_JWT_SECRET=
# 应用外网基地址(推荐,必须为可访问应用的绝对地址,不带 /api;例如 https://app.example.com)
WINLOOP_PUBLIC_BASE_URL=
# draw.io embed 宿主(留空默认 https://embed.diagrams.net;若使用内网或自托管 draw.io,请填写可访问的绝对地址)
WINLOOP_PUBLIC_DRAWIO_EMBED_BASE_URL=
# tldraw 4.x 生产 license key(仅生产 HTTPS 非 localhost 部署必配)
WINLOOP_TLDRAW_LICENSE_KEY=
# 项目资源临时访问地址有效期(秒)
WINLOOP_PROJECT_RESOURCE_ACCESS_URL_TTL_SECONDS=600

# ===== 答辩 Realtime(当前验收主链路:Qwen + audio_video)=====
WINLOOP_DEFENSE_REALTIME_QWEN_BASE_WS_URL=wss://dashscope.aliyuncs.com/api-ws/v1/inference
WINLOOP_DEFENSE_REALTIME_QWEN_API_KEY=
WINLOOP_DEFENSE_REALTIME_QWEN_WORKSPACE_ID=
WINLOOP_DEFENSE_REALTIME_QWEN_APP_ID=
WINLOOP_DEFENSE_REALTIME_QWEN_VOICE=
WINLOOP_DEFENSE_REALTIME_QWEN_FRAME_INTERVAL_MS=1000

# Coze 当前保留为备选链路,本轮默认不作为主验收路径
WINLOOP_DEFENSE_REALTIME_COZE_BASE_URL=https://api.coze.cn
WINLOOP_DEFENSE_REALTIME_COZE_BOT_ID=
WINLOOP_DEFENSE_REALTIME_COZE_CONNECTOR_ID=
WINLOOP_DEFENSE_REALTIME_COZE_VOICE_ID=
WINLOOP_DEFENSE_REALTIME_COZE_AUTH_MODE=pat
WINLOOP_DEFENSE_REALTIME_COZE_PAT_OR_OAUTH_SECRET=

# ===== 本地 ASR dev bridge(可选;推荐先接 Groq 免费试用)=====
MEETING_ASR_DEV_TRANSCRIBE_URL=https://api.groq.com/openai/v1/audio/transcriptions
MEETING_ASR_DEV_TRANSCRIBE_MODEL=whisper-large-v3-turbo
MEETING_ASR_DEV_TRANSCRIBE_MODEL_FALLBACKS=whisper-large-v3
MEETING_ASR_DEV_TRANSCRIBE_LANGUAGE=zh
MEETING_ASR_DEV_TRANSCRIBE_API_KEY=
MEETING_ASR_DEV_CALLBACK_URL=http://127.0.0.1:3510/api/internal/meetings/asr-events
MEETING_ASR_DEV_CALLBACK_SECRET=
MEETING_ASR_DEV_MIN_CHUNK_MS=4000

# ===== Sentry(可选;未配置时应用仍可运行,只是不启用上报)=====
WINLOOP_SENTRY_DSN=
# 仅支持 staging / production;本地开发可留空
WINLOOP_SENTRY_ENVIRONMENT=
WINLOOP_SENTRY_TRACES_SAMPLE_RATE=0.1
# 可选;默认复用 WINLOOP_BUILD_VERSION
WINLOOP_SENTRY_RELEASE=

# ===== Sentry 构建期参数(仅 CI/CD 构建并上传 source map 时需要)=====
SENTRY_AUTH_TOKEN=
WINLOOP_SENTRY_ORG=
WINLOOP_SENTRY_PROJECT=
34 changes: 34 additions & 0 deletions .github/actions/setup-pnpm/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Setup pnpm project
description: Install Node.js, enable pnpm, and install dependencies.

inputs:
node-version:
description: Node.js version used by CI jobs.
required: false
default: 20
pnpm-version:
description: pnpm version used by the repository.
required: false
default: 10.29.2

runs:
using: composite
steps:
- uses: pnpm/action-setup@v4
with:
version: ${{ inputs.pnpm-version }}
run_install: false

- uses: actions/setup-node@v5
with:
node-version: ${{ inputs.node-version }}
cache: pnpm
cache-dependency-path: pnpm-lock.yaml

- name: Verify pnpm
shell: bash
run: pnpm --version

- name: Install
shell: bash
run: pnpm install --frozen-lockfile
78 changes: 42 additions & 36 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,17 @@ on:

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
CI_NODE_VERSION: '20'

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false

- name: Enable Corepack (pnpm)
run: |
corepack enable
corepack prepare pnpm@10.29.2 --activate
pnpm --version

- name: Install
run: pnpm install --frozen-lockfile
- uses: ./.github/actions/setup-pnpm
with:
node-version: ${{ env.CI_NODE_VERSION }}

- name: Lint
run: pnpm run lint
Expand All @@ -40,47 +32,61 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false

- name: Enable Corepack (pnpm)
run: |
corepack enable
corepack prepare pnpm@10.29.2 --activate
pnpm --version

- name: Install
run: pnpm install --frozen-lockfile
- uses: ./.github/actions/setup-pnpm
with:
node-version: ${{ env.CI_NODE_VERSION }}

- name: Typecheck
run: pnpm run typecheck

- name: Project Visibility Guard
run: pnpm run test:project-visibility

build_and_smoke:
test_unit:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5

- uses: ./.github/actions/setup-pnpm
with:
node-version: lts/*
package-manager-cache: false
node-version: ${{ env.CI_NODE_VERSION }}

- name: Enable Corepack (pnpm)
run: |
corepack enable
corepack prepare pnpm@10.29.2 --activate
pnpm --version
- name: Unit Tests
run: pnpm run test:unit

smoke:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v5

- name: Install
run: pnpm install --frozen-lockfile
- uses: ./.github/actions/setup-pnpm
with:
node-version: ${{ env.CI_NODE_VERSION }}

- name: Build
run: pnpm run build

- name: Smoke
run: pnpm run ci:smoke

e2e_smoke:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v5

- uses: ./.github/actions/setup-pnpm
with:
node-version: ${{ env.CI_NODE_VERSION }}

- name: E2E Smoke
env:
WINLOOP_PG_URL: ${{ secrets.WINLOOP_PG_URL }}
run: |
if [ -z "$WINLOOP_PG_URL" ]; then
echo "WINLOOP_PG_URL 未配置,跳过 E2E smoke。"
exit 0
fi
pnpm run test:e2e
Loading
Loading