Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,10 @@ jobs:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY_PRD }}
MCP_BASIC_KEY: ${{ secrets.MCP_BASIC_KEY_PRD }}
MCP_PAPERSCORE_KEY: ${{ secrets.MCP_PAPERSCORE_KEY_PRD }}
XTRAGPT_OPENAI_API_KEY: ${{ secrets.XTRAGPT_OPENAI_API_KEY_PRD }}
XTRAGPT_OPENREVIEW_BASE_URL: ${{ secrets.XTRAGPT_OPENREVIEW_BASE_URL_PRD }}
XTRAGPT_OPENREVIEW_USERNAME: ${{ secrets.XTRAGPT_OPENREVIEW_USERNAME_PRD }}
XTRAGPT_OPENREVIEW_PASSWORD: ${{ secrets.XTRAGPT_OPENREVIEW_PASSWORD_PRD }}
MONGO_URI: ${{ secrets.MONGO_URI_PRD }}
GHCR_DOCKER_CONFIG: ${{ secrets.GHCR_DOCKER_CONFIG_PRD }}
CLOUDFLARE_TUNNEL_TOKEN: ${{ secrets.CLOUDFLARE_TUNNEL_TOKEN_PRD }}
Expand Down
8 changes: 8 additions & 0 deletions hack/dev-apply.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ echo $ROOT_DIR
OPENAI_API_KEY=${OPENAI_API_KEY:-sk-dummy-OPENAI_API_KEY}
MCP_BASIC_KEY=${MCP_BASIC_KEY:-sk-dummy-MCP_BASIC_KEY}
MCP_PAPERSCORE_KEY=${MCP_PAPERSCORE_KEY:-sk-dummy-MCP_PAPERSCORE_KEY}
XTRAGPT_OPENAI_API_KEY=${XTRAGPT_OPENAI_API_KEY:-sk-dummy-XTRAGPT_OPENAI_API_KEY}
XTRAGPT_OPENREVIEW_BASE_URL=${XTRAGPT_OPENREVIEW_BASE_URL:-https://api2.openreview.net}
XTRAGPT_OPENREVIEW_USERNAME=${XTRAGPT_OPENREVIEW_USERNAME:-dummy-XTRAGPT_OPENREVIEW_USERNAME}
XTRAGPT_OPENREVIEW_PASSWORD=${XTRAGPT_OPENREVIEW_PASSWORD:-dummy-XTRAGPT_OPENREVIEW_PASSWORD}
GHCR_DOCKER_CONFIG=${GHCR_DOCKER_CONFIG:-dummy-ghcr-docker-config}
CLOUDFLARE_TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN:-dummy-cloudflare-tunnel-token}

Expand All @@ -20,6 +24,10 @@ helm template $ROOT_DIR/helm-chart \
--set-string openai_api_key=$OPENAI_API_KEY \
--set-string mcp_basic_key=$MCP_BASIC_KEY \
--set-string mcp_paperscore_key=$MCP_PAPERSCORE_KEY \
--set-string xtragpt_openai_api_key=$XTRAGPT_OPENAI_API_KEY \
--set-string xtragpt_openreview_base_url=$XTRAGPT_OPENREVIEW_BASE_URL \
--set-string xtragpt_openreview_username=$XTRAGPT_OPENREVIEW_USERNAME \
--set-string xtragpt_openreview_password=$XTRAGPT_OPENREVIEW_PASSWORD \
--set-string ghcr_docker_config=$GHCR_DOCKER_CONFIG \
--set-string cloudflare_tunnel_token=$CLOUDFLARE_TUNNEL_TOKEN |
kubectl apply -f -
Expand Down
8 changes: 8 additions & 0 deletions hack/prd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ cd $ROOT_DIR
OPENAI_API_KEY=${OPENAI_API_KEY:-sk-dummy-OPENAI_API_KEY}
MCP_BASIC_KEY=${MCP_BASIC_KEY:-sk-dummy-MCP_BASIC_KEY}
MCP_PAPERSCORE_KEY=${MCP_PAPERSCORE_KEY:-sk-dummy-MCP_PAPERSCORE_KEY}
XTRAGPT_OPENAI_API_KEY=${XTRAGPT_OPENAI_API_KEY:-sk-dummy-XTRAGPT_OPENAI_API_KEY}
XTRAGPT_OPENREVIEW_BASE_URL=${XTRAGPT_OPENREVIEW_BASE_URL:-https://api2.openreview.net}
XTRAGPT_OPENREVIEW_USERNAME=${XTRAGPT_OPENREVIEW_USERNAME:-dummy-XTRAGPT_OPENREVIEW_USERNAME}
XTRAGPT_OPENREVIEW_PASSWORD=${XTRAGPT_OPENREVIEW_PASSWORD:-dummy-XTRAGPT_OPENREVIEW_PASSWORD}
PAPERDEBUGGER_IMAGE=${PAPERDEBUGGER_IMAGE:-ghcr.io/paperdebugger/sharelatex-paperdebugger:latest}
MONGO_URI=${MONGO_URI:-}
GHCR_DOCKER_CONFIG=${GHCR_DOCKER_CONFIG:-dummy-ghcr-docker-config}
Expand All @@ -20,6 +24,10 @@ helm template $ROOT_DIR/helm-chart \
--set-string openai_api_key=$OPENAI_API_KEY \
--set-string mcp_basic_key=$MCP_BASIC_KEY \
--set-string mcp_paperscore_key=$MCP_PAPERSCORE_KEY \
--set-string xtragpt_openai_api_key=$XTRAGPT_OPENAI_API_KEY \
--set-string xtragpt_openreview_base_url=$XTRAGPT_OPENREVIEW_BASE_URL \
--set-string xtragpt_openreview_username=$XTRAGPT_OPENREVIEW_USERNAME \
--set-string xtragpt_openreview_password=$XTRAGPT_OPENREVIEW_PASSWORD \
--set-string paperdebugger.image=$PAPERDEBUGGER_IMAGE \
--set-string mongo.uri=$MONGO_URI \
--set-string ghcr_docker_config=$GHCR_DOCKER_CONFIG \
Expand Down
8 changes: 8 additions & 0 deletions hack/stg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ cd $ROOT_DIR
OPENAI_API_KEY=${OPENAI_API_KEY:-sk-dummy-OPENAI_API_KEY}
MCP_BASIC_KEY=${MCP_BASIC_KEY:-sk-dummy-MCP_BASIC_KEY}
MCP_PAPERSCORE_KEY=${MCP_PAPERSCORE_KEY:-sk-dummy-MCP_PAPERSCORE_KEY}
XTRAGPT_OPENAI_API_KEY=${XTRAGPT_OPENAI_API_KEY:-sk-dummy-XTRAGPT_OPENAI_API_KEY}
XTRAGPT_OPENREVIEW_BASE_URL=${XTRAGPT_OPENREVIEW_BASE_URL:-https://api2.openreview.net}
XTRAGPT_OPENREVIEW_USERNAME=${XTRAGPT_OPENREVIEW_USERNAME:-dummy-XTRAGPT_OPENREVIEW_USERNAME}
XTRAGPT_OPENREVIEW_PASSWORD=${XTRAGPT_OPENREVIEW_PASSWORD:-dummy-XTRAGPT_OPENREVIEW_PASSWORD}
PAPERDEBUGGER_IMAGE=${PAPERDEBUGGER_IMAGE:-ghcr.io/paperdebugger/sharelatex-paperdebugger:latest}
MONGO_URI=${MONGO_URI:-}
GHCR_DOCKER_CONFIG=${GHCR_DOCKER_CONFIG:-dummy-ghcr-docker-config}
Expand All @@ -20,6 +24,10 @@ helm template $ROOT_DIR/helm-chart \
--set-string openai_api_key=$OPENAI_API_KEY \
--set-string mcp_basic_key=$MCP_BASIC_KEY \
--set-string mcp_paperscore_key=$MCP_PAPERSCORE_KEY \
--set-string xtragpt_openai_api_key=$XTRAGPT_OPENAI_API_KEY \
--set-string xtragpt_openreview_base_url=$XTRAGPT_OPENREVIEW_BASE_URL \
--set-string xtragpt_openreview_username=$XTRAGPT_OPENREVIEW_USERNAME \
--set-string xtragpt_openreview_password=$XTRAGPT_OPENREVIEW_PASSWORD \
--set-string paperdebugger.image=$PAPERDEBUGGER_IMAGE \
--set-string mongo.uri=$MONGO_URI \
--set-string ghcr_docker_config=$GHCR_DOCKER_CONFIG \
Expand Down
54 changes: 54 additions & 0 deletions helm-chart/templates/paperdebugger-xtramcp-server.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: paperdebugger-xtramcp-server
namespace: {{ .Values.namespace }}
spec:
selector:
matchLabels:
app: paperdebugger-xtramcp-server
template:
metadata:
labels:
app: paperdebugger-xtramcp-server
spec:
imagePullSecrets:
- name: ghcr-secret
containers:
- name: paperdebugger-xtramcp-server
image: {{ .Values.paperdebuggerXtraMcpServer.image }}
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: paperdebugger-xtramcp-server
---
apiVersion: v1
kind: Service
metadata:
name: paperdebugger-xtramcp-server
namespace: {{ .Values.namespace }}
spec:
selector:
app: paperdebugger-xtramcp-server
ports:
- name: http
port: 80
targetPort: 8080
- name: http-alt
port: 8080
targetPort: 8080
type: ClusterIP
---
apiVersion: v1
kind: ConfigMap
metadata:
name: paperdebugger-xtramcp-server
namespace: {{ .Values.namespace }}
data:
OPENAI_API_KEY: "{{ .Values.xtragpt_openai_api_key }}"
OPENREVIEW_BASE_URL: "{{ .Values.xtragpt_openreview_base_url }}"
OPENREVIEW_USERNAME: "{{ .Values.xtragpt_openreview_username }}"
OPENREVIEW_PASSWORD: "{{ .Values.xtragpt_openreview_password }}"
Comment on lines +45 to +54
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sensitive credentials should be stored in a Kubernetes Secret, not a ConfigMap. ConfigMaps are designed for non-sensitive configuration data and their values are not encrypted at rest by default.

The following sensitive values should be moved to a Secret resource:

  • OPENAI_API_KEY
  • OPENREVIEW_PASSWORD
  • Potentially OPENREVIEW_USERNAME (depending on security requirements)

Change the ConfigMap to a Secret:

---
apiVersion: v1
kind: Secret
metadata:
  name: paperdebugger-xtramcp-server
  namespace: {{ .Values.namespace }}
type: Opaque
stringData:
  OPENAI_API_KEY: "{{ .Values.xtragpt_openai_api_key }}"
  OPENREVIEW_BASE_URL: "{{ .Values.xtragpt_openreview_base_url }}"
  OPENREVIEW_USERNAME: "{{ .Values.xtragpt_openreview_username }}"
  OPENREVIEW_PASSWORD: "{{ .Values.xtragpt_openreview_password }}"

And update the deployment to reference the secret instead:

envFrom:
  - secretRef:
      name: paperdebugger-xtramcp-server

Copilot uses AI. Check for mistakes.
3 changes: 3 additions & 0 deletions helm-chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ paperdebugger:
paperdebuggerMcpServer:
image: ghcr.io/paperdebugger/paperdebugger-mcp-server:main-14409c5

paperdebuggerXtraMcpServer:
image: ghcr.io/paperdebugger/paperdebugger-xtramcp-server:main-14409c5

mongo:
in_cluster: true
uri: "" # if in_cluster is false, use the external mongo instead
Expand Down
2 changes: 1 addition & 1 deletion internal/libs/cfg/cfg.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func xtraMCPURI() string {
if val != "" {
return val
}
return "http://paperdebugger-xtra-mcp-server.com/mcp"
return "http://paperdebugger-xtramcp-server:8080/mcp"
}

func mongoURI() string {
Expand Down
14 changes: 7 additions & 7 deletions webapp/_webapp/src/components/markdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@ const MarkdownComponent = memo(({ children, prevAttachment, animated }: Markdown
</span>
),
},
p: {
component: ({ children, ...props }: ComponentProps) => (
<div {...props} className="mb-2 original-p">
<AnimatedText animated={animated}>{children}</AnimatedText>
</div>
),
},
// p: {
// component: ({ children, ...props }: ComponentProps) => (
// <div {...props} className="mb-2 original-p">
// <AnimatedText animated={animated}>{children}</AnimatedText>
// </div>
// ),
// },
h1: {
component: ({ children, ...props }: ComponentProps) => (
<div {...props} className="text-lg font-bold mt-2">
Expand Down
2 changes: 1 addition & 1 deletion webapp/_webapp/src/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ body {
}

.tool-card.narrow {
@apply px-2 py-0 my-1 bg-transparent;
@apply px-2 py-1 my-1 bg-transparent;
}

.tool-card.animated {
Expand Down
Loading