Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
447 commits
Select commit Hold shift + click to select a range
5096b60
Test valid openapi yaml
RijulTP May 20, 2026
fa9811e
Fixed issue in the workflow yaml
RijulTP May 20, 2026
ea9fbd6
Revert change in the openapi
RijulTP May 20, 2026
db39c9c
Updated conditions for YAML
RijulTP May 20, 2026
b4308bf
Testing yaml validation
RijulTP May 20, 2026
ce27945
Test failure case
RijulTP May 20, 2026
a1fcca2
Revert openapi changes
RijulTP May 20, 2026
a3025a7
Test no-change scenario
RijulTP May 20, 2026
2c3870a
Merge pull request #47 from HexmosTech/ci/openapi-validation
RijulTP May 20, 2026
3db1ff4
Modified the testcase
RijulTP May 21, 2026
72f10a4
feat: feedback APIs
lovestaco May 21, 2026
60b1be1
delete openapi.yml
lovestaco May 21, 2026
b2071a7
feat: updated yml
lovestaco May 21, 2026
3fb5a99
refactor: integrate user retrieval into API key validation and update
LinceMathew May 22, 2026
53beef5
Merge branch 'feat/mcp-server' of github.com:HexmosTech/LiveReview in…
LinceMathew May 22, 2026
16fd3f3
Refactor API Path Parameters; Add 'general' Feedback Source Type
lovestaco May 22, 2026
20c2ff9
fix: openapi.yml
lovestaco May 22, 2026
609c90f
docs: wip: define security scoping guidelines
LinceMathew May 22, 2026
739a621
fix: osv scanner bugs
lovestaco May 22, 2026
b19c1c6
fix: osv scanner bugs
lovestaco May 22, 2026
c2d8023
Merge pull request #48 from HexmosTech/feat/feedback
lovestaco May 22, 2026
920f323
Merge branch 'master' of github.com:HexmosTech/LiveReview into feat/m…
LinceMathew May 22, 2026
e4106a1
chore: update golang.org/x/time to v0.15.0
LinceMathew May 23, 2026
4763be7
Add MCP Context to API Responses
RijulTP May 23, 2026
48a3894
Merge branch 'feat/mcp-server' of github.com:HexmosTech/LiveReview in…
RijulTP May 23, 2026
a7b02ab
Add API Integration Guide Endpoint for the MCP
RijulTP May 23, 2026
04e4f07
Updated yaml
RijulTP May 23, 2026
5f55d8a
Refactor Diff Review Process
lovestaco May 23, 2026
0bed3e2
Enforce Organization-Scoped Review Access
lovestaco May 23, 2026
dadaebd
fix: memory leak for the logs
lovestaco May 23, 2026
4c4e267
fix: osv scanner issues
lovestaco May 23, 2026
623a2e8
Merge pull request #49 from HexmosTech/fix/status-updation
lovestaco May 24, 2026
239a4f7
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
shrsv May 19, 2026
22227e0
Revert "LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)"
shrsv May 19, 2026
11eb2fc
Standardize Organization Selection Logic
LinceMathew May 27, 2026
8edfc9e
Implement Dynamic AI Model Management
LinceMathew May 28, 2026
99403c0
feat: implement AI model synchronization
LinceMathew May 28, 2026
58b5920
feat: default model name change
LinceMathew May 29, 2026
37a0de0
Merge pull request #54 from HexmosTech/dynamic-ai-provider-mechanism
LinceMathew May 29, 2026
8ef60f8
Implement Anthropic API Request Sanitization
LinceMathew May 29, 2026
59b2071
Expand OpenRouter Model Aggregation
LinceMathew May 29, 2026
c5ab875
Update Docker build base images
alucard210319 May 29, 2026
b8e3584
Merge pull request #57 from HexmosTech/docker-tmp
LinceMathew May 29, 2026
a6265e6
Modified testcases, added github action yaml for MCP testcase
RijulTP May 29, 2026
984ea9f
Added workflow dispatch for the action
RijulTP May 29, 2026
6aba275
Add MCP Test workflow configuration
RijulTP May 30, 2026
4accd99
Fixed issues with the workflow
RijulTP May 30, 2026
7d88e2b
docs: add release notes for v0.0.41
LinceMathew May 30, 2026
76504cf
Fixed the env bug with the workflow
RijulTP May 30, 2026
6664874
Fixed build issues
RijulTP May 30, 2026
5aa7f53
Fixed embed issues
RijulTP May 30, 2026
8812b1e
Fixed embed bugs
RijulTP May 30, 2026
dc45969
Fixed env dependency issues
RijulTP May 30, 2026
b0dbea4
Add Application Configuration to Docker Images
LinceMathew May 30, 2026
27682d5
Pulled latest changes
RijulTP May 30, 2026
329be62
Fixed security issues for learnings
RijulTP May 30, 2026
d1dfb66
Updated MCP test to display tokens, added badge, added artifcact gene…
RijulTP May 30, 2026
9cae76c
Remove unused yaml
RijulTP May 30, 2026
716f3aa
Added fixes for self-hosted
RijulTP Jun 1, 2026
fa68cfd
Fixed spacing
RijulTP Jun 1, 2026
518a795
Updated LOC values
RijulTP Jun 2, 2026
b37c94f
Added dashboard fix
RijulTP Jun 3, 2026
2c70dc2
Fixed govulncheck issue
RijulTP Jun 3, 2026
e7afda2
Merge pull request #59 from HexmosTech/fix/self-hosted-fixes
RijulTP Jun 4, 2026
53bc934
Fixed osv scanner issues
RijulTP Jun 4, 2026
983e691
Added release notes for v0.0.43
RijulTP Jun 4, 2026
47a4900
Add Anthropic-Compatible LLM Provider Support
lovestaco Jun 4, 2026
b81488e
feat: add claude compatible apis support
lovestaco Jun 4, 2026
13bccf5
Merge branch 'master' of github.com:HexmosTech/LiveReview into feat/a…
lovestaco Jun 4, 2026
effb8f2
Merge pull request #61 from HexmosTech/feat/anthropic-compatible-api
lovestaco Jun 4, 2026
c11a3ad
Added fixes for self-hosted
RijulTP Jun 6, 2026
f91bd67
wip: Worker implementation, refactoring, creating river worker
LinceMathew Jun 6, 2026
b955ae6
fix: rename variable
LinceMathew Jun 7, 2026
2b8d0d3
feat: add staging deployment environment, mock LLM provider, and load…
LinceMathew Jun 9, 2026
e3a70a7
Added auto-install for the openapi-spec generation tool
RijulTP Jun 10, 2026
433c078
Removed unused code
RijulTP Jun 10, 2026
6dd43e7
cxo 2
shrsv Jun 10, 2026
08be361
wip: worker implementation testing
LinceMathew Jun 11, 2026
9a58673
Pulled latest changes
RijulTP Jun 11, 2026
f58e15b
Removed unused code
RijulTP Jun 11, 2026
7cead97
pick goroot
shrsv Jun 11, 2026
e0450eb
integrateAtlas AI Provider
LinceMathew Jun 11, 2026
52c1bf1
fix: atlas provider default model
LinceMathew Jun 11, 2026
8073b0d
Consolidate Model Sync Schedulers into Single Sequential Scheduler
LinceMathew Jun 11, 2026
1af4353
Removed unused code
RijulTP Jun 11, 2026
e8b2983
fix:CVE-2026-9277 / GHSA-w7jw-789q-3m8p, update dependencies
LinceMathew Jun 11, 2026
c7117c2
Merge pull request #62 from HexmosTech/fix/ai-connector
LinceMathew Jun 11, 2026
c6fb9fc
Implement Taxonomy Reporting and Export
shrsv Jun 12, 2026
967aa79
address issues
shrsv Jun 12, 2026
475b7b5
improve navigation
shrsv Jun 12, 2026
affb8b9
Merge branch 'master' into cxo-report
shrsv Jun 12, 2026
30b0034
Regenerate OpenAPI spec
shrsv Jun 12, 2026
edd78bf
fix openapi
shrsv Jun 12, 2026
49a6d79
zoom trend model
shrsv Jun 12, 2026
3434bd9
loader on drill down
shrsv Jun 12, 2026
35d68a1
PDF export
shrsv Jun 13, 2026
f162fab
Cleaned unused code in the makefile
RijulTP Jun 13, 2026
cc4bb6d
pdf refinement, dashboard fixes
shrsv Jun 13, 2026
376c626
Add Gemini Enterprise AI Provider
LinceMathew Jun 13, 2026
b3258fa
Added MCP usage examples to the README
RijulTP Jun 13, 2026
0c97eb8
Pulled latest changes
RijulTP Jun 13, 2026
82dd0c5
Refactor AI Provider Configuration and Client Validation
LinceMathew Jun 13, 2026
7c47bde
fix: security vulnerability (GHSA-gv7w-rqvm-qjhr))
LinceMathew Jun 13, 2026
064c450
Merge pull request #63 from HexmosTech/google-enterpise-integration
LinceMathew Jun 13, 2026
cb6a305
fix:updated openapi.yml
LinceMathew Jun 13, 2026
6e5480e
Merge branch 'master' into cxo-report
shrsv Jun 13, 2026
3c83d21
merge master, semgrep
shrsv Jun 13, 2026
e6145b3
Merge pull request #64 from HexmosTech/cxo-report
shrsv Jun 13, 2026
63b8e5c
update spec
shrsv Jun 13, 2026
c6d6664
fix layout issue in reports
shrsv Jun 13, 2026
7fb33f6
Merge branch 'master' of github.com:HexmosTech/LiveReview into feat/w…
LinceMathew Jun 14, 2026
035a82d
draft towards .lrc dir
shrsv Jun 14, 2026
1db223e
handle lrc config correctly
shrsv Jun 14, 2026
bd2fc7a
ignore file bug fixes
shrsv Jun 14, 2026
af99009
make merge ready
shrsv Jun 14, 2026
e04f590
Fixed Integration token retrieval bug and Context deadline bug for re…
RijulTP Jun 15, 2026
297c7ac
Fixed duplicate functions
RijulTP Jun 15, 2026
fbef221
Transition Review Processing to Asynchronous Job Queue
LinceMathew Jun 15, 2026
59407bc
Refactor Review Events, Fix Webhook Concurrency, and Standardize Logging
LinceMathew Jun 15, 2026
812bd33
Merge branch 'master' of github.com:HexmosTech/LiveReview into feat/w…
LinceMathew Jun 15, 2026
a9f2b2d
Integrate LRC Configuration for Diff Reviews
LinceMathew Jun 15, 2026
6ce6bad
Pulled latest changes
RijulTP Jun 15, 2026
28472ac
Updated gomod
RijulTP Jun 15, 2026
a4ba696
Modified the govulncheck workflow for improved go version detection
RijulTP Jun 16, 2026
e4724f5
Implement Async Billing for Reviews and Webhooks
LinceMathew Jun 16, 2026
40e0b8d
Fixing toolchain issue
RijulTP Jun 16, 2026
35cce53
Fixed osv scanner issues
RijulTP Jun 17, 2026
6fb8537
Merge pull request #58 from HexmosTech/feat/mcp-server
RijulTP Jun 17, 2026
134eee7
Merge branch 'master' of github.com:HexmosTech/LiveReview into feat/w…
LinceMathew Jun 17, 2026
c2c15a7
fix formatting
LinceMathew Jun 17, 2026
5d7f746
Fixed deploy script issue
RijulTP Jun 17, 2026
374c599
Refactor Database-Side JSON Metadata Merging
LinceMathew Jun 17, 2026
8da2ff6
Implement Third-Party Tool Integration
Amazing-Stardom Jun 18, 2026
b19c4d4
Integrate Worker Process, Refactor Data Access, and Visualize Load Te…
LinceMathew Jun 18, 2026
292076d
Merge branch 'master' of github.com:HexmosTech/LiveReview into feat/w…
LinceMathew Jun 18, 2026
0b9c259
Add LiveReview Worker Process
LinceMathew Jun 19, 2026
f603707
fix codeql issue
LinceMathew Jun 19, 2026
e06a97a
chore: update webpack-dev-server and add http-proxy-middleware depend…
LinceMathew Jun 19, 2026
bae4b82
Merge pull request #65 from HexmosTech/feat/worker-implementation
LinceMathew Jun 19, 2026
67f0511
Remove River Job Queue Migration
LinceMathew Jun 19, 2026
227cd77
Document Staging Environment and Async Worker System
LinceMathew Jun 19, 2026
f7533cf
docs: release notes for v0.0.44
LinceMathew Jun 19, 2026
540bd7a
Add v0.0.42 Release Notes
LinceMathew Jun 19, 2026
9ca8496
build: upgrade Go builder image to Go 1.26
LinceMathew Jun 19, 2026
98112a2
Add Static Analysis Tool Integration
Amazing-Stardom Jun 20, 2026
40141d4
Implement Tool Credit Tracking and Review Orchestration
Amazing-Stardom Jun 20, 2026
17d6290
Add Default Organization and CLI Onboarding API
LinceMathew Jun 20, 2026
3316e1b
Implement User Onboarding API Key Flow
LinceMathew Jun 20, 2026
e5e2f2a
Centralize User API Key Generation and Database Access
LinceMathew Jun 20, 2026
4f50723
Refactor User Creation API Key Flow
LinceMathew Jun 21, 2026
0fabbf9
Refactor User Creation for Transactional API Keys
LinceMathew Jun 21, 2026
78555a7
Add Development Proxy and HTTP Client
LinceMathew Jun 21, 2026
2cd95d3
Merge pull request #67 from HexmosTech/fix/default-org-selection
LinceMathew Jun 21, 2026
a8f185c
Standardize Onboarding API Key Enforcement
LinceMathew Jun 21, 2026
835c085
Remove Direct HTTP Proxy Middleware Dependency
LinceMathew Jun 21, 2026
c7b682d
fix: organization endpoint
LinceMathew Jun 21, 2026
78c96b6
fixed free plan bug for enterprise-selfhosted users
RijulTP Jun 22, 2026
5589dc8
Merge branch 'master' of github.com:HexmosTech/LiveReview into fix/en…
RijulTP Jun 22, 2026
b8cfcc3
Added quota policy migration to fix missing LOC information for enter…
RijulTP Jun 22, 2026
67fc5da
updated plan name to enterprise-selfhosted
RijulTP Jun 23, 2026
5bb48f6
Removed unused code
RijulTP Jun 23, 2026
5625445
Merge pull request #68 from HexmosTech/fix/enterprise-selfhosted-fixes
RijulTP Jun 23, 2026
64a32c9
added working git-lrc
Amazing-Stardom Jun 23, 2026
8c4ea48
Added openapi spec post-process script
RijulTP Jun 23, 2026
f1ad108
wip:smtp
LinceMathew Jun 23, 2026
2f955e6
feat: create system_settings table to store configuration data
LinceMathew Jun 23, 2026
93804a5
Standardize SMTP Configuration and Email Delivery
LinceMathew Jun 24, 2026
3a80957
Refactor SMTP API Validation and Standardize Email Templates
LinceMathew Jun 24, 2026
4fdd4ba
Refactor SMTP Email Sending, Restrict Settings UI
LinceMathew Jun 24, 2026
bee797f
Sanitize Email Header Values
LinceMathew Jun 24, 2026
b4a3386
Standardize Email Header Encoding
LinceMathew Jun 24, 2026
5a21d33
Merge pull request #69 from HexmosTech/self-host/smtp-setup
LinceMathew Jun 24, 2026
9540c5b
docs: add release notes for v0.0.45
LinceMathew Jun 24, 2026
a85a009
Standardize LiveReview Installation Script
LinceMathew Jun 25, 2026
1375180
Prioritize Docker Compose Plugin Detection
LinceMathew Jun 25, 2026
b969d12
Disable Self-Hosted Quota and Restrict User Access
LinceMathew Jun 26, 2026
13f8ec3
fix docs
LinceMathew Jun 27, 2026
b341458
feat: add Gitleaks ignore rules
LinceMathew Jun 27, 2026
baec963
Merge pull request #70 from HexmosTech/self-host-testing
LinceMathew Jun 27, 2026
d269fae
docs: add release notes for v0.0.46
LinceMathew Jun 27, 2026
7e8aaf7
rule enforcement LR side
shrsv Jun 29, 2026
0ada72c
handle web review submit
shrsv Jun 29, 2026
8de5bc2
include testing procedure
shrsv Jun 29, 2026
0b5a18a
Merge branch 'master' of github.com:HexmosTech/LiveReview into rules-…
LinceMathew Jun 29, 2026
79db04c
Integrate Repository Rules into LLM Prompt
LinceMathew Jun 29, 2026
b071d79
Fixed openapi retrieval bug with api integration helper api
RijulTP Jun 30, 2026
746d2c0
Update Repository URL Handling
LinceMathew Jun 30, 2026
220b7bd
fix:bitbucket
LinceMathew Jun 30, 2026
6f4b206
fix gitlab
LinceMathew Jun 30, 2026
b8e5f7b
feat: fix syntax
LinceMathew Jul 1, 2026
aff0c8c
Merge pull request #71 from HexmosTech/rules-enforcement
LinceMathew Jul 1, 2026
95c865d
Fixed bugs with review page descriptions
RijulTP Jul 1, 2026
33b2963
easy startup of services
shrsv Jul 2, 2026
6bfcdae
adaptive review draft
shrsv Jul 2, 2026
81e1cbb
Added slack mcp integration
RijulTP Jul 2, 2026
ec37acd
Addressed issues
RijulTP Jul 2, 2026
06a24e2
fix: lr issues
LinceMathew Jul 2, 2026
aa2e48a
gh security fix
LinceMathew Jul 3, 2026
8f47880
Merge pull request #73 from HexmosTech/adaptive-review
LinceMathew Jul 3, 2026
0b64322
docs: add release notes for v0.0.47
LinceMathew Jul 3, 2026
794e628
Added graph generation
RijulTP Jul 3, 2026
a7d2b13
Added integration section, included slack flow
RijulTP Jul 4, 2026
838f0ac
Addressed issues
RijulTP Jul 4, 2026
ea061d2
Pulled latest changes
RijulTP Jul 4, 2026
d2e0019
Updated schema.sql
RijulTP Jul 4, 2026
43ee1dc
Addressed issues
RijulTP Jul 5, 2026
277f6fb
Addressed issues
RijulTP Jul 5, 2026
5e5d993
Addressed issues
RijulTP Jul 5, 2026
d06dd06
Added MCP spec
RijulTP Jul 5, 2026
a5964c0
Merge pull request #74 from HexmosTech/feat/slack-mcp-integration
RijulTP Jul 5, 2026
942f800
Add Azure DevOps Provider Integration
LinceMathew Jul 5, 2026
83daced
Merge branch 'master' of github.com:HexmosTech/LiveReview into azure-…
LinceMathew Jul 5, 2026
0131637
Add Self-Hosted Slack OAuth Proxy; Update Docker Base Image
RijulTP Jul 5, 2026
4dc95ad
Added multi-graph support, fixed pagination issues, added description…
RijulTP Jul 6, 2026
fd996fc
Addressed issues
RijulTP Jul 6, 2026
6dc2d1a
Fix Azure DevOps Webhook Secret Stale State
LinceMathew Jul 6, 2026
71e264a
Merge pull request #75 from HexmosTech/feat/slack-mcp-selfhosted
RijulTP Jul 6, 2026
c4944b9
fix: webhook azure
LinceMathew Jul 6, 2026
2ab0749
Added release notes
RijulTP Jul 6, 2026
ae59ddb
Add Type Safety Check for Azure DevOps Connector ID
LinceMathew Jul 6, 2026
637c1b5
Merge branch 'master' of github.com:HexmosTech/LiveReview into azure-…
LinceMathew Jul 6, 2026
fad2a94
Standardize Connector ID Type to int64
LinceMathew Jul 7, 2026
6b1d893
Merge pull request #76 from HexmosTech/azure-integration
LinceMathew Jul 7, 2026
ff9e450
Add AWS Bedrock AI Connector Support
LinceMathew Jul 8, 2026
3fd6e53
Streamline AI Provider Configuration
LinceMathew Jul 8, 2026
c05e642
Merge pull request #77 from HexmosTech/bedrock-integration
LinceMathew Jul 8, 2026
b94a507
docs: add release notes for v0.0.49
LinceMathew Jul 8, 2026
fa08cb5
Added teams integration
RijulTP Jul 8, 2026
be8d9b7
Addressed issues
RijulTP Jul 9, 2026
ee52f34
Merge branch 'master' of github.com:HexmosTech/LiveReview into feat/t…
RijulTP Jul 9, 2026
9f44cbc
Fixed connection bug
RijulTP Jul 9, 2026
681a80d
Added teams handler
RijulTP Jul 9, 2026
262114f
Fixed logging security issue
RijulTP Jul 9, 2026
143e7ee
Fixed security scan issues
RijulTP Jul 9, 2026
fcf40f3
Merge pull request #78 from HexmosTech/feat/teams-mcp-integration
RijulTP Jul 9, 2026
74edf39
Updated version
RijulTP Jul 9, 2026
fc6d621
Merge branch 'master' into feat/tool-integration-beta
Amazing-Stardom Jul 10, 2026
457e940
Implement Asynchronous Tool Review Orchestration
Amazing-Stardom Jul 16, 2026
bf53783
Refactor API Contract, Tool Review Workflows, and Billing Precision
Amazing-Stardom Jul 18, 2026
2b87c76
Add Input Validation, Refactor Worker Error Handling, and Update API …
Amazing-Stardom Jul 18, 2026
6ed6571
Implement Plan-Based Tool Access
Amazing-Stardom Jul 18, 2026
be16e37
Enforce Tool Access and Licensing for Paid Plans
Amazing-Stardom Jul 19, 2026
a263624
Enforce API Tool Authorization
Amazing-Stardom Jul 19, 2026
b8e0c07
Implement Tool Billing and Self-Hosted Tool Support
Amazing-Stardom Jul 21, 2026
6e377ff
Implement Repository-Level Tool Configuration
Amazing-Stardom Jul 23, 2026
52f69e8
Implement Repo-Level Tool Configuration with Path Filtering
Amazing-Stardom Jul 24, 2026
586b375
docs: remove real API key from tools-integration-beta.md, use placeho…
Amazing-Stardom Jul 26, 2026
96b7669
docs: remove fake secret examples from tools-integration-beta.md
Amazing-Stardom Jul 26, 2026
dee92e4
Implement LLM-based Classification for Static Analysis Findings
Amazing-Stardom Aug 2, 2026
d1d2984
Define External Tool Integration Specifications
Amazing-Stardom Aug 2, 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
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .air.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,21 @@ tmp_dir = "tmp"
[build]
# Just plain old shell command. You could use `make` as well.
# Build with debug symbols enabled for delve debugger
cmd = "CGO_ENABLED=0 go build -gcflags='all=-N -l' -o ./tmp/livereview ."
cmd = "if [ -z \"${SKIP_TYPED_GEN}\" ]; then make generate-openapi; fi && CGO_ENABLED=0 env -u GOROOT go build -gcflags='all=-N -l' -o ./tmp/livereview ."
# Binary file yields from `cmd`.
bin = "tmp/livereview"
# Customize binary - run through delve for debugging
full_bin = "dlv exec ./tmp/livereview --listen=127.0.0.1:2345 --headless=true --api-version=2 --accept-multiclient --continue --log -- api"
# Watch these filename extensions.
include_ext = ["go", "tpl", "tmpl", "html"]
include_ext = ["go", "tpl", "tmpl", "html", "yaml"]
# Ignore these filename extensions or directories.
exclude_dir = ["assets", "tmp", "vendor", "ui/node_modules", "livereview_pgdata", "lrdata"]
exclude_dir = ["assets", "tmp", "vendor", "ui/node_modules", "livereview_pgdata", "lrdata","docs", "internal/api/mcp/generated", "internal/api/docs/spec.go"]
# Watch these directories if you specified.
include_dir = []
# Exclude files.
exclude_file = []
# Exclude specific regular expressions.
exclude_regex = ["_test.go"]
exclude_regex = ["_test.go", "internal/api/docs/spec.go", "internal/api/mcp/generated/server.go"]
# Exclude unchanged files.
exclude_unchanged = true
# Increase build delay to avoid rapid rebuilds during debugging
Expand Down
5 changes: 5 additions & 0 deletions .codegraph/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# CodeGraph data files — local to each machine, not for committing.
# Ignore everything in .codegraph/ except this file itself, so transient
# files (the database, daemon.pid, sockets, logs) never show up in git.
*
!.gitignore
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Thumbs.db
# Test files and documentation
tests/
docs/
!docs/openapi.yaml
examples/
README.md
*.md
Expand Down
34 changes: 29 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@ LIVEREVIEW_FRONTEND_PORT=8081
# When true, the app trusts X-Forwarded-* headers
LIVEREVIEW_REVERSE_PROXY=false

# =============================================================================
# WORKER / QUEUE - Background worker settings
# =============================================================================

# Number of concurrent review jobs the worker process handles (default: 10)
LIVEREVIEW_WORKER_CONCURRENT_REVIEWS=10

# Set to 'true' to mock AI LLM calls (prevents token usage/costs and runs instantly for testing)
# LIVEREVIEW_MOCK_AI=false

# =============================================================================
# MODE - Selfhosted vs Cloud
# =============================================================================
Expand All @@ -51,19 +61,33 @@ LIVEREVIEW_IS_CLOUD=false
# -----------------------------------------------------------------------------

# Payment mode: 'test' or 'live'
# RAZORPAY_MODE=test
# Production deploy targets should use live mode.
# RAZORPAY_MODE=live

# Pricing profile when RAZORPAY_MODE=live:
# - actual: normal production pricing
# - low_pricing_test: temporary low-price live validation profile
# LIVEREVIEW_PRICING_PROFILE=actual

# Webhook secret for validating Razorpay callbacks
# RAZORPAY_WEBHOOK_SECRET=your_webhook_secret_here

# Test environment keys (for development/staging)
# RAZORPAY_TEST_KEY=rzp_test_xxxxxxxxxxxx
# RAZORPAY_TEST_SECRET=your_test_secret_here
# RAZORPAY_TEST_MONTHLY_PLAN_ID=plan_xxxxxxxxxxxxxx
# RAZORPAY_TEST_YEARLY_PLAN_ID=plan_xxxxxxxxxxxxxx
# RAZORPAY_TEST_MONTHLY_PLAN_ID_USD=plan_xxxxxxxxxxxxxx
# RAZORPAY_TEST_YEARLY_PLAN_ID_USD=plan_xxxxxxxxxxxxxx
# RAZORPAY_TEST_MONTHLY_PLAN_ID_INR=plan_xxxxxxxxxxxxxx
# RAZORPAY_TEST_YEARLY_PLAN_ID_INR=plan_xxxxxxxxxxxxxx

# Live environment keys (for production)
# RAZORPAY_LIVE_KEY=rzp_live_xxxxxxxxxxxx
# RAZORPAY_LIVE_SECRET=your_live_secret_here
# RAZORPAY_LIVE_MONTHLY_PLAN_ID=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_YEARLY_PLAN_ID=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_ACTUAL_MONTHLY_PLAN_ID_USD=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_ACTUAL_YEARLY_PLAN_ID_USD=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_ACTUAL_MONTHLY_PLAN_ID_INR=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_ACTUAL_YEARLY_PLAN_ID_INR=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_LOW_PRICING_MONTHLY_PLAN_ID_USD=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_LOW_PRICING_YEARLY_PLAN_ID_USD=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_LOW_PRICING_MONTHLY_PLAN_ID_INR=plan_xxxxxxxxxxxxxx
# RAZORPAY_LIVE_LOW_PRICING_YEARLY_PLAN_ID_INR=plan_xxxxxxxxxxxxxx
16 changes: 15 additions & 1 deletion .github/workflows/gitleaks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: gitleaks

on:
workflow_dispatch: {}
pull_request: {}
push:
branches:
- main
Expand All @@ -16,6 +15,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
statuses: write
steps:
- uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -53,3 +53,17 @@ jobs:
.github-tools/bin/gitleaks version
- name: Run gitleaks
run: .github-tools/bin/gitleaks git . --redact --exit-code 1

- name: Report status to commit SHA
if: always() && github.event_name == 'workflow_dispatch'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
STATE: ${{ job.status == 'success' && 'success' || 'failure' }}
run: |
gh api \
--method POST \
repos/${{ github.repository }}/statuses/${{ github.sha }} \
-f state="$STATE" \
-f context="gitleaks" \
-f description="Gitleaks completed with status: $STATE" \
-f target_url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
35 changes: 33 additions & 2 deletions .github/workflows/govulncheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: govulncheck

on:
workflow_dispatch: {}
pull_request: {}
push:
branches:
- main
Expand All @@ -18,12 +17,44 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
statuses: write
steps:
- uses: actions/checkout@v4
- name: Read Go toolchain version
id: go-version
shell: bash
run: |
TOOLCHAIN=$(grep '^toolchain ' go.mod | awk '{print $2}' | sed 's/^go//')

if [ -z "$TOOLCHAIN" ]; then
TOOLCHAIN=$(grep '^go ' go.mod | awk '{print $2}')
fi

if [ -z "$TOOLCHAIN" ]; then
echo "Failed to determine Go version from go.mod"
exit 1
fi

echo "version=$TOOLCHAIN" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
go-version: ${{ steps.go-version.outputs.version }}
check-latest: true
- name: Ensure optional Make env file exists
run: touch .env
- name: Run govulncheck via Makefile target
run: make security-govulncheck

- name: Report status to commit SHA
if: always() && github.event_name == 'workflow_dispatch'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
STATE: ${{ job.status == 'success' && 'success' || 'failure' }}
run: |
gh api \
--method POST \
repos/${{ github.repository }}/statuses/${{ github.sha }} \
-f state="$STATE" \
-f context="govulncheck" \
-f description="govulncheck completed with status: $STATE" \
-f target_url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
107 changes: 107 additions & 0 deletions .github/workflows/mcp-testcases.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: MCP Integration Test

on:
workflow_dispatch: {}
push:
branches:
- main
- master

jobs:
mcp-test:
runs-on: ubuntu-latest

env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
TOKENROUTER_API_KEY: ${{ secrets.TOKENROUTER_API_KEY }}
LIVEREVIEW_API_KEY_TR: ${{ secrets.LIVEREVIEW_API_KEY_TR }}

steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install Python dependencies
run: |
pip install -r tests/mcp/requirements.txt

- name: Build LiveReview
run: make build-ci

- name: Start MCP server
run: |
nohup ./livereview api > server.log 2>&1 &
echo $! > server.pid

- name: Wait for server startup
run: |
for i in {1..30}; do
response=$(curl -s http://localhost:8888/health || true)

if echo "$response" | grep -q '"status":"healthy"\|"status": "healthy"'; then
echo "Server is healthy"
exit 0
fi

echo "Waiting for server to start..."
sleep 2
done

echo "Server failed to become healthy"
cat server.log
exit 1

- name: Run MCP test script
run: |
python tests/mcp/mcp-testcase.py

- name: Check MCP test result
run: |
python - <<EOF
import json
import sys

with open("tests/mcp/test_results.json") as f:
result = json.load(f)

status = result.get("suite_summary", {}).get("overall_status")

print(f"Overall Status: {status}")

if status == "PASSED":
print("MCP test passed")
sys.exit(0)

print("MCP test failed")
print(json.dumps(result, indent=2))
sys.exit(1)
EOF
- name: Upload MCP Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: mcp-test-results
path: tests/mcp/test_results.json
retention-days: 30
- name: Print server logs on failure
if: failure()
run: cat server.log || true

- name: Cleanup
if: always()
run: |
kill $(cat server.pid) || true

46 changes: 46 additions & 0 deletions .github/workflows/openapi-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Validate OpenAPI YAML

on:
pull_request:

permissions:
contents: read

jobs:
validate-yaml:
name: Validate YAML Syntax
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check if OpenAPI YAML changed
id: changed
env:
BASE_REF: ${{ github.base_ref }}
run: |
if git diff --name-only "origin/$BASE_REF"...HEAD | grep -q "^docs/openapi.yaml$"; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi

- name: Install yq
if: steps.changed.outputs.changed == 'true'
run: |
sudo wget -O /usr/local/bin/yq \
https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
sudo chmod +x /usr/local/bin/yq

- name: Validate YAML
if: steps.changed.outputs.changed == 'true'
run: |
yq eval '.' docs/openapi.yaml > /dev/null
echo "✅ Valid YAML"

- name: Skip validation
if: steps.changed.outputs.changed != 'true'
run: echo "No changes to docs/openapi.yaml, skipping validation"
25 changes: 22 additions & 3 deletions .github/workflows/osv-scanner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,50 @@ name: osv-scanner

on:
workflow_dispatch: {}
pull_request: {}
push:
branches:
- main
- master
paths:
- go.mod
- go.sum
- osv-scanner.toml
- .github/workflows/osv-scanner.yml

jobs:
osv-scan:
runs-on: ubuntu-latest
permissions:
contents: read
statuses: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- run: go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest
- name: Install osv-scanner
run: |
curl -fsSL https://github.com/google/osv-scanner/releases/latest/download/osv-scanner_linux_amd64 -o /usr/local/bin/osv-scanner
chmod +x /usr/local/bin/osv-scanner
osv-scanner --version
- run: mkdir -p security_issues
- run: osv-scanner scan source --recursive --format json --no-call-analysis=go --experimental-exclude=debug --experimental-exclude=scripts --experimental-exclude=tests --experimental-exclude=.livereview_pgdata --experimental-exclude=.lrdata --experimental-exclude=livereview_pgdata --experimental-exclude=lrdata . > security_issues/osv-scanner-ci.json
- run: osv-scanner scan source --recursive --format json --config osv-scanner.toml --no-call-analysis=go --experimental-exclude=debug --experimental-exclude=scripts --experimental-exclude=tests --experimental-exclude=.livereview_pgdata --experimental-exclude=.lrdata --experimental-exclude=livereview_pgdata --experimental-exclude=lrdata . > security_issues/osv-scanner-ci.json
- uses: actions/upload-artifact@v4
if: always()
with:
name: osv-scanner-ci-report
path: security_issues/osv-scanner-ci.json

- name: Report status to commit SHA
if: always() && github.event_name == 'workflow_dispatch'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
STATE: ${{ job.status == 'success' && 'success' || 'failure' }}
run: |
gh api \
--method POST \
repos/${{ github.repository }}/statuses/${{ github.sha }} \
-f state="$STATE" \
-f context="osv-scan" \
-f description="OSV Scanner completed with status: $STATE" \
-f target_url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
Loading
Loading