Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
6fae13c
feat(preview): inline comments, replies, resolve and anonymous commen…
giladresisi Sep 14, 2026
959feac
chore(i18n): translate preview comment keys
giladresisi Sep 14, 2026
22bf990
Merge remote-tracking branch 'origin/main' into feat/preview-inline-c…
egelhaus Sep 16, 2026
54fad3b
Merge remote-tracking branch 'origin/main' into feat/preview-inline-c…
nevo-david Sep 24, 2026
32ca6ff
feat: cursor
nevo-david Sep 24, 2026
33e126a
Merge pull request #2079 from gitroomhq/feat/preview-inline-comments
nevo-david Sep 24, 2026
8c63e68
feat: schedule post preview url
nevo-david Sep 24, 2026
90cfaad
Merge remote-tracking branch 'origin/main'
nevo-david Sep 24, 2026
bb5099a
feat: connected clients
nevo-david Sep 24, 2026
f4bd43f
fix(instagram): curate container processing errors, map 2207082 to th…
giladresisi Sep 7, 2026
94751bb
fix(instagram): reuse the existing 2207082 retry mapping instead of s…
giladresisi Sep 7, 2026
c693a97
fix(instagram): disconnect the channel when a container status maps t…
giladresisi Sep 25, 2026
1024d67
Merge pull request #2137 from gitroomhq/fix/ig-silent-video-audio-too…
giladresisi Sep 25, 2026
709e05b
fix(frontend): read chrome.runtime.lastError in extension messaging c…
giladresisi Sep 25, 2026
225aebc
fix(telegram): map Telegram 400 rejections to non-retryable BadBody e…
giladresisi Sep 4, 2026
f9e0d01
fix(nostr): convert the hex private key to bytes before signing posts
giladresisi Sep 4, 2026
0f59347
fix(frontend): stop the Sentry report dialog on MetaMask injected-scr…
giladresisi Sep 25, 2026
723f230
Merge pull request #2140 from gitroomhq/fix/telegram-bad-body-main
giladresisi Sep 25, 2026
f7ae41b
Merge pull request #2142 from gitroomhq/fix/sentry-ignore-metamask
giladresisi Sep 25, 2026
cc8ca98
fix(facebook): fail reconnect cleanly when the page has no page token
giladresisi Sep 25, 2026
b172579
Merge pull request #2141 from gitroomhq/fix/nostr-secret-key-main
giladresisi Sep 25, 2026
3023eec
Merge branch 'main' into fix/facebook-reconnect-page-token
giladresisi Sep 25, 2026
a59aa38
Merge pull request #2143 from gitroomhq/fix/extension-unchecked-last-…
giladresisi Sep 25, 2026
767731a
Merge pull request #2144 from gitroomhq/fix/facebook-reconnect-page-t…
giladresisi Sep 25, 2026
c2d35f9
fix(media): skip the upload-success state update for an already remov…
giladresisi Sep 25, 2026
c1d5536
fix(calendar): handle a deleted post group when opening a calendar tile
giladresisi Sep 25, 2026
f0f3df6
fix(frontend): stop the Sentry report dialog on the uppy aws-s3 progr…
giladresisi Sep 25, 2026
6e2f50e
Merge pull request #2147 from gitroomhq/fix/sentry-ignore-uppy-progress
giladresisi Sep 25, 2026
055dbb8
Merge pull request #2145 from gitroomhq/fix/uploader-removed-file-pro…
giladresisi Sep 25, 2026
b353536
Merge pull request #2146 from gitroomhq/fix/calendar-deleted-group-guard
giladresisi Sep 25, 2026
464d04e
fix(frontend): guard the chrome global before the extension connect c…
giladresisi Sep 25, 2026
66d9ef7
fix(media): cancel in-flight uploads on error instead of clearing Upp…
giladresisi Sep 25, 2026
cdaf61d
fix(billing): show a message when Stripe.js fails to load instead of …
giladresisi Sep 25, 2026
e6251b2
fix: friendly message when Threads reports an UNKNOWN container error
giladresisi Aug 30, 2026
38443af
Merge pull request #2148 from gitroomhq/fix/extension-chrome-undefine…
giladresisi Sep 25, 2026
85a9f3c
Merge pull request #2149 from gitroomhq/fix/uploader-cancel-on-error
giladresisi Sep 25, 2026
60431b0
Merge pull request #2150 from gitroomhq/threads-container-error-main
giladresisi Sep 25, 2026
4899709
fix(instagram): map container error 2207085 to a curated video-format…
giladresisi Aug 30, 2026
85d663f
fix(auth): don't read the activate response body once the onboarding …
giladresisi Sep 25, 2026
9e8e749
Merge pull request #2152 from gitroomhq/ig-container-error-mapping-main
giladresisi Sep 25, 2026
fbd089f
Merge pull request #2151 from gitroomhq/fix/billing-stripe-load-failure
giladresisi Sep 25, 2026
374fb20
Merge pull request #2153 from gitroomhq/fix/activate-skip-body-on-red…
giladresisi Sep 25, 2026
a92ea52
merge: upstream main (4c33d525..374fb202, 42 commits)
JOY Sep 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -489,8 +489,7 @@ REVENUECAT_WEBHOOK_SECRET="sample_revenuecat_webhook_secret"
# Reject sandbox in-app purchases in production mode (true/false)
IN_APP_PURCHASE_REJECT_SANDBOX="false"

# ==============================================================================
# 15. Telemetry, Observability & Analytics
# =======================================================================# 15. Telemetry, Observability & Analytics
# ==============================================================================
# Sentry DSN for error reporting
NEXT_PUBLIC_SENTRY_DSN="https://sample_sentry_key@o0.ingest.sentry.io/0000000"
Expand All @@ -516,3 +515,10 @@ NEXT_PUBLIC_FACEBOOK_PIXEL="123456789012345"
FACEBOOK_PIXEL_ACCESS_TOKEN="sample_facebook_pixel_access_token"
# Discord Support Server Widget URL
NEXT_PUBLIC_DISCORD_SUPPORT="https://discord.gg/example"
# reCAPTCHA Settings (invisible v2 on anonymous preview comments, optional; unset = no captcha)
# RECAPTCHA_SITE_KEY="" # Your reCAPTCHA v2 invisible site key
# RECAPTCHA_SECRET_KEY="" # Your reCAPTCHA v2 invisible secret key

# Provider visibility / migration
# HIDDEN_PROVIDERS="tiktok" # comma-separated identifiers hidden from the add-channel screen
# MIGRATE_PROVIDERS="tiktok:tiktok-business" # comma-separated "old:new" pairs, a reconnect of "old" goes through "new" and the channel is migrated in place
104 changes: 104 additions & 0 deletions .zcodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
dist
tmp
/out-tsc
.env
.apple
# dependencies
node_modules

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
.vscode/*

# IDE - VSCode
.vscode/
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings

# System Files
.DS_Store
Thumbs.db

.nx/cache
.nx/workspace-data

# Next.js
.next

# Vim files
**/*.swp
**/*.swo

# Temporary files
*.orig
*.~*~
*.tsbuildinfo

# ignore Secrets folder
.secrets/
libraries/plugins/src/plugins.ts
i18n.cache

# Generated by apps/frontend/scripts/fetch-gtm.mjs on install
apps/frontend/public/g.js
.vercel
.env*
*.env
scripts/*.env
.artifacts/
.codex-artifacts/
.playwright-mcp/
.cloudflared/


# ===== ↑ 以上同步自 .gitignore(「从 .gitignore 同步」只重写以上部分)=====
.git/
.hg/
.svn/
bower_components/
jspm_packages/
__pycache__/
site-packages/
venv/
coverage/
htmlcov/
lcov-report/
cmakefiles/
cmake-build-*/
bazel-*/
pods/
deriveddata/
storybook-static/
playwright-report/
test-results/
allure-results/
allure-report/
cdk.out/
*.egg-info/
*.dist-info/
eggs/
pip-wheel-metadata/
wheels/
# ----- ↑ 以上为 ZCode 默认排除规则(自定义规则请写在本行下方,不会被同步/恢复改动)-----
# 自定义规则写在下方(本行提示可删除)
25 changes: 21 additions & 4 deletions apps/backend/src/api/routes/posts.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ import {
Sections,
} from '@gitroom/backend/services/auth/permissions/permission.exception.class';
import { PostValidationException } from '@gitroom/backend/api/routes/posts.validation.exception';
import {
CreatePublicCommentDto,
ResolveCommentDto,
} from '@gitroom/nestjs-libraries/dtos/comments/add.comment.dto';
import { RealIP } from 'nestjs-real-ip';

@ApiTags('Posts')
@Controller('/posts')
Expand Down Expand Up @@ -71,12 +76,21 @@ export class PostsController {

@Post('/:id/comments')
async createComment(
@GetOrgFromRequest() org: Organization,
@GetUserFromRequest() user: User,
@Param('id') id: string,
@Body() body: { comment: string }
@Body() body: CreatePublicCommentDto,
@RealIP() ip: string
) {
return this._postsService.createComment(org.id, user.id, id, body.comment);
return this._postsService.createPublicComment(id, body, user.id, ip);
}

@Put('/comments/:commentId/resolve')
async resolveComment(
@GetOrgFromRequest() org: Organization,
@Param('commentId') commentId: string,
@Body() body: ResolveCommentDto
) {
return this._postsService.resolveComment(org.id, commentId, body.resolved);
}

@Get('/tags')
Expand Down Expand Up @@ -159,7 +173,10 @@ export class PostsController {
}

@Get('/group/:group')
getPostsByGroup(@GetOrgFromRequest() org: Organization, @Param('group') group: string) {
getPostsByGroup(
@GetOrgFromRequest() org: Organization,
@Param('group') group: string
) {
return this._postsService.getPostsByGroup(org.id, group);
}

Expand Down
11 changes: 10 additions & 1 deletion apps/backend/src/api/routes/public.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import { promisify } from 'util';
import { OnlyURL } from '@gitroom/nestjs-libraries/dtos/webhooks/webhooks.dto';
import { isSafePublicHttpsUrl } from '@gitroom/nestjs-libraries/dtos/webhooks/webhook.url.validator';
import { ssrfSafeDispatcher } from '@gitroom/nestjs-libraries/dtos/webhooks/ssrf.safe.dispatcher';
import { CreatePublicCommentDto } from '@gitroom/nestjs-libraries/dtos/comments/add.comment.dto';

const pump = promisify(pipeline);

Expand Down Expand Up @@ -76,6 +77,15 @@ export class PublicController {
return { comments: await this._postsService.getComments(postId) };
}

@Post(`/posts/:id/comments`)
async createComment(
@Param('id') postId: string,
@Body() body: CreatePublicCommentDto,
@RealIP() ip: string
) {
return this._postsService.createPublicComment(postId, body, null, ip);
}

@Post('/t')
async trackEvent(
@Res() res: Response,
Expand Down Expand Up @@ -154,7 +164,6 @@ export class PublicController {
}
}


@Get('/stream')
async streamFile(
@Query() query: OnlyURL,
Expand Down
2 changes: 1 addition & 1 deletion apps/frontend/src/app/(app)/(preview)/p/[id]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { PreviewWrapper } from '@gitroom/frontend/components/preview/preview.wra

export default async function AppLayout({ children }: { children: ReactNode }) {
return (
<div className="bg-[#000000] min-h-screen">
<div className="bg-newBgColor min-h-screen text-newTextColor">
<PreviewWrapper>{children}</PreviewWrapper>
</div>
);
Expand Down
Loading
Loading