Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
716 commits
Select commit Hold shift + click to select a range
45e1acb
Fix visibility plan verifier key
angellllkr-eng Jun 9, 2026
5096248
Expand MindReply platform front end
angellllkr-eng Jun 9, 2026
467e27a
Clean public design growth wording
angellllkr-eng Jun 9, 2026
b43fd6f
Add MRagent operating context
angellllkr-eng Jun 9, 2026
d4ca3fa
Refine pack dashboard and delivery email
angellllkr-eng Jun 9, 2026
3002546
Document full frontend operating pack
angellllkr-eng Jun 9, 2026
047a298
Add defensive security pack report
angellllkr-eng Jun 9, 2026
40a45e2
Fix manual deploy verification script
angellllkr-eng Jun 9, 2026
70daa78
Add promotion readiness pack report
angellllkr-eng Jun 9, 2026
d71776c
Add defensive security and growth operating pack
angellllkr-eng Jun 9, 2026
985d640
Clarify Figma edit access limit
angellllkr-eng Jun 9, 2026
e0ee02c
Add domain and hosting backup runbook
angellllkr-eng Jun 9, 2026
7795ec1
SLACK DETAILS
angellllkr-eng Jun 9, 2026
c99d0c5
Codex/full frontend platform pack (#14)
angellllkr-eng Jun 9, 2026
b6facd1
Allow conversion route in middleware
angellllkr-eng Jun 9, 2026
b30f462
Keep trust pages public and memory opt-in
angellllkr-eng Jun 9, 2026
34c5842
Remove personal email from pack page
angellllkr-eng Jun 9, 2026
4c121ed
Replace personal report email in operating pack
angellllkr-eng Jun 9, 2026
989147c
Remove personal email from README
angellllkr-eng Jun 9, 2026
5b68698
Fix personal pack report module scope
angellllkr-eng Jun 9, 2026
8292a4b
Add capability teams dashboard
angellllkr-eng Jun 9, 2026
d859527
Fix promotion report module scope
angellllkr-eng Jun 9, 2026
05d109c
Add activation pack delivery report
angellllkr-eng Jun 9, 2026
72fed65
Add clear pricing and conversion page
angellllkr-eng Jun 9, 2026
814add1
Activate security and promotion report scripts
angellllkr-eng Jun 9, 2026
4b3abd7
Schedule activation pack reports
angellllkr-eng Jun 9, 2026
e9f481a
Replace template security policy with defensive process
angellllkr-eng Jun 9, 2026
b52b8ef
Add pricing and capabilities to sitemap
angellllkr-eng Jun 9, 2026
1ca6589
Document activation security and promotion packs
angellllkr-eng Jun 9, 2026
c51e38c
Add owner decision desk to security pack
angellllkr-eng Jun 9, 2026
d4d28cb
Add owner decision desk to activation pack
angellllkr-eng Jun 9, 2026
e89914a
Document owner security decision process
angellllkr-eng Jun 9, 2026
810d973
Keep security owner email private by env
angellllkr-eng Jun 9, 2026
647847c
Document owner decision routing for activation reports
angellllkr-eng Jun 9, 2026
af1e9ec
Declare MCP API runtime directly
angellllkr-eng Jun 9, 2026
8264794
Add owner security decision desk report
angellllkr-eng Jun 9, 2026
e5bde68
Remove personal email from public report examples
angellllkr-eng Jun 9, 2026
8c6b02a
Wrap MCP API route handlers locally
angellllkr-eng Jun 9, 2026
c92643c
Merge branch 'main' into mind-reply
angellllkr-eng Jun 9, 2026
24ca74e
Mind reply (#16)
angellllkr-eng Jun 9, 2026
a124c53
Skip docs and report-only Vercel builds
angellllkr-eng Jun 9, 2026
0e612d3
Add agent expansion command board
angellllkr-eng Jun 9, 2026
ec5c65d
Add agents board to sitemap
angellllkr-eng Jun 9, 2026
a5e8c5b
Document expanded agent board
angellllkr-eng Jun 9, 2026
d6e90be
Add Website Completion Package sales page
angellllkr-eng Jun 9, 2026
b1054d0
Add assisted close contact page
angellllkr-eng Jun 9, 2026
cb81425
Add Website Completion Package to sitemap
angellllkr-eng Jun 9, 2026
dd47304
Reframe homepage around website completion revenue offer
angellllkr-eng Jun 9, 2026
17cadaf
Turn pack page into website completion offer
angellllkr-eng Jun 9, 2026
e910316
Upgrade contact page for package close and owner security routing
angellllkr-eng Jun 9, 2026
d3d2bef
Clean homepage imports after revenue offer update
angellllkr-eng Jun 9, 2026
85eca7f
Add hourly owner report npm commands
angellllkr-eng Jun 9, 2026
2f502a8
Add hourly owner revenue operating prompt
angellllkr-eng Jun 9, 2026
c7bd8ac
Add hourly owner report generator
angellllkr-eng Jun 9, 2026
fb535f4
Add hourly owner report sender
angellllkr-eng Jun 9, 2026
32aac0c
Add hourly owner automation verifier
angellllkr-eng Jun 9, 2026
feb046d
Add revenue-first owner goal verifier
angellllkr-eng Jun 9, 2026
c4f9d82
Add hourly owner report workflow
angellllkr-eng Jun 9, 2026
6b48124
Remove npm cache requirement from owner report workflow
angellllkr-eng Jun 9, 2026
e67a5b1
Restore relief promise and add package payment CTA
angellllkr-eng Jun 9, 2026
c518f70
Add package payment route to pack page
angellllkr-eng Jun 9, 2026
7f3dd8d
Add payment route to canonical package page
angellllkr-eng Jun 9, 2026
0b75bad
Make website package first paid pricing option
angellllkr-eng Jun 9, 2026
baf2268
Expose package payment route to hourly report
angellllkr-eng Jun 9, 2026
7da6737
Report package payment route status hourly
angellllkr-eng Jun 9, 2026
c328228
Verify hourly report payment route coverage
angellllkr-eng Jun 9, 2026
46d728c
Verify revenue pages include payment and relief promise
angellllkr-eng Jun 9, 2026
c353aca
Add payment route to hourly owner prompt
angellllkr-eng Jun 9, 2026
072165b
Allow mailto contact fallback in CSP
angellllkr-eng Jun 9, 2026
6502cb3
Skip hourly report script-only Vercel builds
angellllkr-eng Jun 9, 2026
2349528
Add package request receipt and delivery helpers
angellllkr-eng Jun 9, 2026
4dc134f
Add package request API route
angellllkr-eng Jun 9, 2026
52eff3f
Add client package request form
angellllkr-eng Jun 9, 2026
44f6e6b
Use API-backed package request form on contact page
angellllkr-eng Jun 9, 2026
9e86b50
Expose package request readiness in health API
angellllkr-eng Jun 9, 2026
8f218c5
Expose package request delivery secrets to owner workflow
angellllkr-eng Jun 9, 2026
7e0d064
Clean package request form imports
angellllkr-eng Jun 9, 2026
b4232b3
Report package request readiness hourly
angellllkr-eng Jun 9, 2026
839ca86
Verify assisted close package request path
angellllkr-eng Jun 9, 2026
c894124
Verify hourly package request contract
angellllkr-eng Jun 9, 2026
fb84216
Document package request assisted close lane
angellllkr-eng Jun 9, 2026
c643a3c
ci: harden manual Vercel production deploy
angellllkr-eng Jun 9, 2026
1b1351a
docs: add Vercel limit resolution guide
angellllkr-eng Jun 9, 2026
3ae63c2
Set owner report automation to 50-minute cadence
angellllkr-eng Jun 9, 2026
2e705b5
Verify 50-minute owner report automation
angellllkr-eng Jun 9, 2026
b4ed19c
docs: record current Vercel deployment state
angellllkr-eng Jun 9, 2026
353b35d
docs: add owner-controlled Vercel deploy runbook
angellllkr-eng Jun 9, 2026
558cf51
chore: disable automatic Vercel Git deployments
angellllkr-eng Jun 9, 2026
d31f547
Label owner report email as 50-minute cadence
angellllkr-eng Jun 9, 2026
f63ef87
Restore hourly private owner report workflow
angellllkr-eng Jun 9, 2026
47603c2
Enforce hourly private owner report contract
angellllkr-eng Jun 9, 2026
dac4ebb
docs: update deployment state after quota controls
angellllkr-eng Jun 9, 2026
b0b7723
Re-enable guarded Vercel main deployments
angellllkr-eng Jun 9, 2026
a13c21f
docs: add manual deploy click path
angellllkr-eng Jun 9, 2026
21364e0
Update current deployment controls
angellllkr-eng Jun 9, 2026
db125b3
Document guarded Vercel Git deployments
angellllkr-eng Jun 9, 2026
1828d3a
Clarify guarded deploy quota policy
angellllkr-eng Jun 9, 2026
fbc1434
Redact security owner report route
angellllkr-eng Jun 9, 2026
b92e21c
ci: make manual deploy env fallback safer
angellllkr-eng Jun 9, 2026
3d540a0
Add revenue war plan prompt
angellllkr-eng Jun 9, 2026
7dac902
Document hourly owner report delivery setup
angellllkr-eng Jun 9, 2026
d04a883
Allow canonical MindReply Vercel hosts
angellllkr-eng Jun 9, 2026
1ba6e3e
Tighten Vercel ignore guard self-test
angellllkr-eng Jun 9, 2026
598d456
ci: add deployment readiness check
angellllkr-eng Jun 9, 2026
8588a6b
docs: clarify deploy readiness and manual deploy path
angellllkr-eng Jun 9, 2026
6e51b9a
Add live revenue surface verifier
angellllkr-eng Jun 9, 2026
3cca8d8
Add live revenue verification script
angellllkr-eng Jun 9, 2026
8e57d0e
Verify live revenue surface after deploy
angellllkr-eng Jun 9, 2026
269a6aa
Remove blocked homepage positioning term
angellllkr-eng Jun 9, 2026
361d79c
Align owner report sender wording with hourly cadence
angellllkr-eng Jun 9, 2026
24c3bc6
Avoid blocked terms in vision dictionary
angellllkr-eng Jun 9, 2026
6846858
Activate hourly owner report workflow triggers
angellllkr-eng Jun 9, 2026
7fd797b
Fix hourly owner report workflow validation
angellllkr-eng Jun 9, 2026
7f57a82
Remove setup-node cache from owner report workflow
angellllkr-eng Jun 9, 2026
741e8ce
Harden production deploy alias and owner proof flow
angellllkr-eng Jun 9, 2026
9623716
Require live revenue verifier to detect stale deploys
angellllkr-eng Jun 9, 2026
394eda0
Attach live proof before owner report delivery
angellllkr-eng Jun 9, 2026
f7db9f0
ci: report after every main implementation push
angellllkr-eng Jun 9, 2026
a413abf
test: enforce owner report push trigger
angellllkr-eng Jun 9, 2026
911417d
Treat live revenue verifier as automation-only
angellllkr-eng Jun 9, 2026
7491818
Fix Vercel guard automation self-test separator
angellllkr-eng Jun 9, 2026
293cecb
Add country-aware locale endpoint
angellllkr-eng Jun 9, 2026
0cb7b21
Document live revenue proof report contract
angellllkr-eng Jun 9, 2026
9002835
Add subtle multilingual locale selector
angellllkr-eng Jun 9, 2026
4cced72
Verify production recovery live proof contract
angellllkr-eng Jun 9, 2026
f3af030
Add premium global footer
angellllkr-eng Jun 9, 2026
7767186
Wire footer locale assist and stronger SEO metadata
angellllkr-eng Jun 9, 2026
f26daf4
Allow geo locale API through middleware
angellllkr-eng Jun 9, 2026
16adb3b
Add search demand observatory contract
angellllkr-eng Jun 9, 2026
f859fde
Remove blocked term from layout metadata
angellllkr-eng Jun 9, 2026
a7c0022
Add emergency Vercel alias repair workflow
angellllkr-eng Jun 9, 2026
5cec88d
Remove blocked terms from capabilities copy
angellllkr-eng Jun 9, 2026
46a90e4
Document production alias recovery proof gate
angellllkr-eng Jun 9, 2026
04fb076
Refresh homepage authority copy for verifier
angellllkr-eng Jun 9, 2026
d2cdeee
Align Vercel guard report-only wording
angellllkr-eng Jun 9, 2026
db5d86a
Fix Vercel guard self-test fixtures
angellllkr-eng Jun 9, 2026
ef3be33
Open robots access for revenue pages
angellllkr-eng Jun 9, 2026
458b0f7
Expand geo locale support for high demand markets
angellllkr-eng Jun 9, 2026
727007d
Strengthen metadata for package and locale demand
angellllkr-eng Jun 9, 2026
b1a1608
Add locale alternates to revenue sitemap
angellllkr-eng Jun 9, 2026
df18ece
Polish locale assist for multilingual buying friction
angellllkr-eng Jun 9, 2026
2325c29
Add website audit action blueprint
angellllkr-eng Jun 9, 2026
83066a1
Add owner decision security boundary
angellllkr-eng Jun 9, 2026
1e33015
Make alias repair owner report install lockfile-free
angellllkr-eng Jun 9, 2026
97f37a6
Add revenue i18n SEO verifier
angellllkr-eng Jun 9, 2026
fc5eb9e
Run revenue i18n SEO verifier in decision checks
angellllkr-eng Jun 9, 2026
314b1ae
Put buying-friction demand wedge in homepage hero
angellllkr-eng Jun 9, 2026
e89330a
Polish localized premium landing
Jun 9, 2026
aa0725b
feat: move locale assist into footer with ten market languages
angellllkr-eng Jun 9, 2026
fed81f3
Add assisted close details to package request receipt
angellllkr-eng Jun 9, 2026
a758d03
feat: target ten demand locales from geo headers
angellllkr-eng Jun 9, 2026
6d99ee5
feat: align metadata with priority locale markets
angellllkr-eng Jun 9, 2026
dbed892
Show assisted close state in package request form
angellllkr-eng Jun 9, 2026
8da6a8f
Clarify assisted close package request API response
angellllkr-eng Jun 9, 2026
2b80024
test: verify ten-language market locale contract
angellllkr-eng Jun 9, 2026
93bbc2d
feat: align sitemap alternates to ten priority locales
angellllkr-eng Jun 9, 2026
cff97f8
Verify package request assisted close contract
angellllkr-eng Jun 9, 2026
379698b
Schedule emergency Vercel alias repair guard
angellllkr-eng Jun 9, 2026
735b077
Skip alias repair when production is already healthy
angellllkr-eng Jun 9, 2026
266b611
ci: add explicit Vercel production deploy workflow
angellllkr-eng Jun 9, 2026
ce3bbbc
Use Vercel API metadata for protected alias source check
angellllkr-eng Jun 9, 2026
5951cec
fix: make Vercel production main builds reliable
angellllkr-eng Jun 9, 2026
9f571ca
Check live health before requiring alias token
angellllkr-eng Jun 9, 2026
5283b78
Strengthen homepage premium authority layer
angellllkr-eng Jun 9, 2026
79d23c8
Verify homepage premium authority layer
angellllkr-eng Jun 9, 2026
f76192c
feat: localize priority revenue surface copy
angellllkr-eng Jun 9, 2026
9367bf2
fix: route footer handoff through contact form
angellllkr-eng Jun 9, 2026
b0d2218
test: verify localized revenue surface and footer handoff
angellllkr-eng Jun 9, 2026
8fcf661
Add MRagent post-read upgrade trigger
angellllkr-eng Jun 9, 2026
3926ad3
Verify MRagent upgrade trigger
angellllkr-eng Jun 9, 2026
8c8de8a
fix: make capabilities page customer-safe
angellllkr-eng Jun 9, 2026
991adbf
fix: redirect public agents board to capabilities
angellllkr-eng Jun 9, 2026
70f3624
fix: redirect legacy pack route to package
angellllkr-eng Jun 9, 2026
66d2e6b
fix: remove internal legacy routes from robots allowlist
angellllkr-eng Jun 9, 2026
e5d67cd
fix: remove legacy internal routes from sitemap
angellllkr-eng Jun 9, 2026
830e24e
test: verify customer-safe public capability routing
angellllkr-eng Jun 9, 2026
bfdbcf8
fix: update emergency alias repair target
angellllkr-eng Jun 9, 2026
aa352d5
fix: detect stale live deployment assets
angellllkr-eng Jun 9, 2026
e0dacf5
ci: verify live domain after production deploy
angellllkr-eng Jun 9, 2026
4d5a6ea
docs: record production alias secret blocker
angellllkr-eng Jun 9, 2026
7829834
ci: make Vercel production deploy manual to preserve build quota
angellllkr-eng Jun 9, 2026
d339afb
ci: keep owner report hourly and manual only
angellllkr-eng Jun 9, 2026
457dc7e
ci: skip non-canonical Vercel project builds
angellllkr-eng Jun 9, 2026
3230de6
test: include Vercel ignore guard verification
angellllkr-eng Jun 9, 2026
148b37d
feat: show package delivery receipt proof
angellllkr-eng Jun 9, 2026
a32259d
fix: correct package receipt proof class
angellllkr-eng Jun 9, 2026
9f93ead
test: verify package delivery proof
angellllkr-eng Jun 9, 2026
f536ace
test: include package proof verifier
angellllkr-eng Jun 9, 2026
720b2cb
docs: update production blocker with package proof state
angellllkr-eng Jun 9, 2026
186dbad
fix: derive Vercel changed files from git
angellllkr-eng Jun 9, 2026
787ec27
docs: record Vercel ignore guard improvement
angellllkr-eng Jun 9, 2026
76e6721
feat: strengthen geo locale market priority
angellllkr-eng Jun 9, 2026
2e4e2f1
feat: harden multilingual market SEO metadata
angellllkr-eng Jun 9, 2026
805c786
feat: compact auto language and market assist
angellllkr-eng Jun 9, 2026
758f8d9
docs: record production alias recovery state
angellllkr-eng Jun 9, 2026
69df3de
fix: tighten mobile visual spacing
angellllkr-eng Jun 9, 2026
de2c342
test: verify market i18n and mobile surface
angellllkr-eng Jun 9, 2026
fdb894a
docs: add market SEO positioning lane
angellllkr-eng Jun 9, 2026
8a448fc
feat: add priority market footer strip
angellllkr-eng Jun 9, 2026
336cc5c
test: require footer market strip
angellllkr-eng Jun 9, 2026
bfd58e1
docs: record deployment alias status check
angellllkr-eng Jun 9, 2026
b8832a7
Add assisted close playbook for website package
angellllkr-eng Jun 9, 2026
c34c0ca
Update production recovery state with latest deployment proof
angellllkr-eng Jun 9, 2026
1cdc16a
ci: explicitly alias Vercel production domains
angellllkr-eng Jun 9, 2026
1aa3faa
test: fail stale live domain assets
angellllkr-eng Jun 9, 2026
bcf9a46
ci: attach live domain proof to owner reports
angellllkr-eng Jun 9, 2026
73906a3
test: require live proof in owner report workflow
angellllkr-eng Jun 9, 2026
5e3e126
Add package payment and invoice env placeholders
angellllkr-eng Jun 9, 2026
32c141f
Make package request receipt invoice-first by default
angellllkr-eng Jun 9, 2026
de207d6
Clarify invoice-first package request form
angellllkr-eng Jun 9, 2026
1382d92
Clarify package request fallback invoice message
angellllkr-eng Jun 9, 2026
9b86693
Add invoice-first close verifier
angellllkr-eng Jun 9, 2026
fa153da
Add invoice-first close verifier to decision gate
angellllkr-eng Jun 9, 2026
dff4370
feat: harden auto locale and market assist
angellllkr-eng Jun 9, 2026
6aa14ca
fix: tighten mobile locale spacing
angellllkr-eng Jun 9, 2026
85cea90
test: verify country locale and mobile footer polish
angellllkr-eng Jun 9, 2026
2fbe6d9
docs: add i18n market observation lanes
angellllkr-eng Jun 9, 2026
479d86b
ci: auto deploy production surface on main changes
angellllkr-eng Jun 9, 2026
7b80139
Clarify invoice-first homepage close path
angellllkr-eng Jun 9, 2026
8c4d69a
ci: fix deploy workflow without npm lockfile
angellllkr-eng Jun 9, 2026
517ac5a
ci: fix mragent verify without npm lockfile
angellllkr-eng Jun 9, 2026
0519a9b
Guard invoice-first homepage language
angellllkr-eng Jun 9, 2026
0140d6e
ci: fix manual production deploy install path
angellllkr-eng Jun 9, 2026
696897a
test: align locale verifier with dynamic market count
angellllkr-eng Jun 9, 2026
e0cab2d
Clarify package invoice route and SEO proof
angellllkr-eng Jun 9, 2026
f3d3367
Guard package page invoice proof
angellllkr-eng Jun 9, 2026
e21a228
ci: split production verification steps
angellllkr-eng Jun 9, 2026
661ecd9
ci: split decision layer verification
angellllkr-eng Jun 9, 2026
0ee372a
ci: split mragent verification gates
angellllkr-eng Jun 9, 2026
d050f50
Update production recovery state for invoice proof deploy
angellllkr-eng Jun 9, 2026
d373d3e
ci: restore reporting-only Vercel guard paths
angellllkr-eng Jun 9, 2026
3d2d8c2
ci: accept common Vercel token secret names
angellllkr-eng Jun 9, 2026
2e629f6
Verify live package page invoice proof
angellllkr-eng Jun 9, 2026
3f04c1c
ci: accept fallback Vercel token in manual deploy
angellllkr-eng Jun 9, 2026
fe1132b
Guard live package proof verifier contract
angellllkr-eng Jun 9, 2026
a7b257b
Update recovery state with live package gate
angellllkr-eng Jun 9, 2026
4c0cfe9
Add no-build Vercel alias recovery workflow
angellllkr-eng Jun 9, 2026
55480c5
Guard no-build alias workflow contract
angellllkr-eng Jun 9, 2026
aa361c5
Document no-build alias recovery path
angellllkr-eng Jun 9, 2026
b0b8c77
Link no-build alias workflow in recovery state
angellllkr-eng Jun 9, 2026
99b75ef
Point alias recovery at latest ready deployment
angellllkr-eng Jun 9, 2026
46644e3
Update no-build alias target to latest ready deployment
angellllkr-eng Jun 9, 2026
85a86a6
Guard latest alias recovery target
angellllkr-eng Jun 9, 2026
5802e62
Refresh production alias recovery state
angellllkr-eng Jun 9, 2026
0aaf177
Point alias recovery at latest ready contract deployment
angellllkr-eng Jun 9, 2026
adc8604
Update alias recovery runbook to latest ready contract deployment
angellllkr-eng Jun 9, 2026
cddbb13
Guard current alias recovery deployment target
angellllkr-eng Jun 9, 2026
64043a0
Refresh alias state for latest ready contract deployment
angellllkr-eng Jun 9, 2026
5cd4c68
fix: keep footer evidence copy customer-facing
angellllkr-eng Jun 10, 2026
1a6a104
Merge current main for deployment
Jun 10, 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
11 changes: 11 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.next/
node_modules/
npm-debug.log
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
.git/
.gitignore
README.md
13 changes: 0 additions & 13 deletions .editorconfig

This file was deleted.

35 changes: 27 additions & 8 deletions .env
Original file line number Diff line number Diff line change
@@ -1,8 +1,27 @@
# API keys (replace with your real keys after creating a Stripe account)
# This is your test secret API key.
STRIPE_SECRET_KEY=
# This is your test publishable API key.
VITE_STRIPE_PUBLISHABLE_KEY=

# Domain to return to after checkout
DOMAIN=http://localhost:3000
NEXT_PUBLIC_SITE_URL=https://www.mind-reply.com
NEXT_PUBLIC_WEBSITE_COMPLETION_PACKAGE_PAYMENT_URL=

# MRagent provider (optional)
OPENAI_API_KEY=
MRAGENT_MODEL=gpt-5
BLOB_READ_WRITE_TOKEN=

# Website Completion Package close route
MINDREPLY_PACKAGE_REQUEST_TO=
MINDREPLY_PACKAGE_REQUEST_FROM=
MINDREPLY_PACKAGE_REQUEST_DRY_RUN=false

# Owner reports
MINDREPLY_REPORT_EMAIL=
MINDREPLY_REPORT_FROM=
RESEND_API_KEY=
MINDREPLY_SLACK_WEBHOOK_URL=
SLACK_WEBHOOK_URL=

# Gmail / IMAP intake
MINDREPLY_IMAP_HOST=imap.gmail.com
MINDREPLY_IMAP_USER=
MINDREPLY_IMAP_PASSWORD=

# Calendar action outbox
MINDREPLY_CALENDAR_OUTBOX=calendar-outbox.jsonl
12 changes: 12 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
* text=auto

*.sh text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.js text eol=lf
*.jsx text eol=lf
*.json text eol=lf
*.md text eol=lf
Dockerfile text eol=lf
55 changes: 55 additions & 0 deletions .github/workflows/activation-pack-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Activation Pack Report

on:
workflow_dispatch:
inputs:
channels:
description: "Comma-separated channels: console,slack,email"
required: false
default: "console"
dry_run:
description: "Keep true until Slack/email secrets are verified"
required: false
default: "true"
require_delivery:
description: "Fail unless Slack or email actually sends"
required: false
default: "false"
schedule:
- cron: "*/30 * * * *"

permissions:
contents: read
statuses: read

jobs:
activation-pack-report:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
NEXT_PUBLIC_SITE_URL: ${{ vars.NEXT_PUBLIC_SITE_URL || 'https://www.mind-reply.com' }}
MINDREPLY_REPORT_ENABLED: ${{ vars.MINDREPLY_REPORT_ENABLED || 'false' }}
MINDREPLY_REPORT_DRY_RUN: ${{ github.event.inputs.dry_run || vars.MINDREPLY_REPORT_DRY_RUN || 'true' }}
MINDREPLY_REPORT_REQUIRE_DELIVERY: ${{ github.event.inputs.require_delivery || vars.MINDREPLY_REPORT_REQUIRE_DELIVERY || 'false' }}
MINDREPLY_REPORT_CHANNELS: ${{ github.event.inputs.channels || vars.MINDREPLY_REPORT_CHANNELS || 'console' }}
MINDREPLY_REPORT_PERSONAL_ONLY: "true"
MINDREPLY_REPORT_EMAILS: ${{ secrets.MINDREPLY_REPORT_EMAILS }}
MINDREPLY_REPORT_EMAIL: ${{ secrets.MINDREPLY_REPORT_EMAIL }}
MINDREPLY_REPORT_EMAIL_ALLOWLIST: ${{ secrets.MINDREPLY_REPORT_EMAIL_ALLOWLIST }}
MINDREPLY_REPORT_FROM: ${{ secrets.MINDREPLY_REPORT_FROM }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
MINDREPLY_SLACK_WEBHOOK_URL: ${{ secrets.MINDREPLY_SLACK_WEBHOOK_URL }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Install
run: npm install

- name: Generate activation pack report
run: npm run report:activation-pack
52 changes: 52 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Decision Layer CI

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Install
run: npm install --no-audit --fund=false --progress=false

- name: Verify Vercel build guard
run: npm run vercel:ignore:verify

- name: Verify decision layer contract
run: npx tsx scripts/verify-decision-layer.ts

- name: Verify production version contract
run: npx tsx scripts/verify-production-version-contract.ts

- name: Verify revenue i18n SEO surface
run: npx tsx scripts/verify-revenue-i18n-seo.ts

- name: Verify package delivery proof
run: npx tsx scripts/verify-package-delivery-proof.ts

- name: Verify invoice-first close path
run: npx tsx scripts/verify-invoice-first-close.ts

- name: Verify MRagent MCP
run: npm run mcp:verify

- name: Typecheck
run: npm run typecheck

- name: Build
run: npm run build

- name: Python backend tests
run: python -m unittest discover src
82 changes: 82 additions & 0 deletions .github/workflows/deployment-readiness.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: MindReply Deployment Readiness Check

on:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: mindreply-deployment-readiness
cancel-in-progress: false

jobs:
readiness:
name: Verify production deploy readiness without deploying
runs-on: ubuntu-latest
timeout-minutes: 25
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID || vars.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID || vars.VERCEL_PROJECT_ID }}
NEXT_PUBLIC_SITE_URL: https://www.mind-reply.com
MINDREPLY_LIVE_VERIFY_URL: https://www.mind-reply.com
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm

- name: Install dependencies
run: npm ci

- name: Verify report state
run: npm run report:check

- name: Generate owner state report
run: npm run launch:report

- name: Verify revenue blueprint
run: npm run audit:blueprint

- name: Verify app contract
run: npm run verify:all

- name: Verify Vercel target secrets
run: |
test -n "$VERCEL_TOKEN"
test "$VERCEL_ORG_ID" = "team_0plIJmQLgZC1wVv9zI2eVf3B"
test "$VERCEL_PROJECT_ID" = "prj_EuO1lFvbwoFSdDxBlezNyXG8eVV3"

- name: Install Vercel CLI
run: npm install --global vercel@latest

- name: Pull Vercel production environment
run: vercel pull --yes --environment=production --token "$VERCEL_TOKEN"

- name: Build Vercel artifact without deploying
run: vercel build --prod --token "$VERCEL_TOKEN"

- name: Check current live health
run: |
curl --fail --show-error --silent https://www.mind-reply.com/ > /tmp/mindreply-home.html
curl --fail --show-error --silent https://www.mind-reply.com/api/health > /tmp/mindreply-health.json
if curl --fail --show-error --silent https://www.mind-reply.com/api/version > /tmp/mindreply-version.json; then
echo "Live /api/version is already deployed."
else
echo "Live /api/version is not deployed yet; manual production deploy is still required."
fi

- name: Upload readiness artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: mindreply-deployment-readiness
path: |
reports/outbox/**
.vercel/output/**
if-no-files-found: ignore
93 changes: 93 additions & 0 deletions .github/workflows/hourly-owner-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: MindReply Hourly Owner Report

on:
workflow_dispatch:
inputs:
channels:
description: "Comma-separated channels: email,slack"
required: false
default: "email,slack"
dry_run:
description: "Set true to write receipts without sending"
required: false
default: "false"
schedule:
- cron: "0 * * * *"

permissions:
contents: read

concurrency:
group: mindreply-hourly-owner-report-${{ github.ref }}
cancel-in-progress: true

jobs:
owner-report:
name: Owner revenue report
runs-on: ubuntu-latest
timeout-minutes: 15
env:
MINDREPLY_REPORT_ENABLED: ${{ vars.MINDREPLY_REPORT_ENABLED || 'true' }}
MINDREPLY_REPORT_DRY_RUN: ${{ github.event.inputs.dry_run || vars.MINDREPLY_REPORT_DRY_RUN || 'false' }}
MINDREPLY_REPORT_CHANNELS: ${{ github.event.inputs.channels || vars.MINDREPLY_REPORT_CHANNELS || 'email,slack' }}
MINDREPLY_REPORT_REQUIRE_LIVE_PROOF: ${{ vars.MINDREPLY_REPORT_REQUIRE_LIVE_PROOF || 'true' }}
MINDREPLY_REPORT_EMAIL: ${{ secrets.MINDREPLY_REPORT_EMAIL || vars.MINDREPLY_REPORT_EMAIL }}
MINDREPLY_REPORT_EMAILS: ${{ secrets.MINDREPLY_REPORT_EMAILS || vars.MINDREPLY_REPORT_EMAILS }}
MINDREPLY_REPORT_FROM: ${{ secrets.MINDREPLY_REPORT_FROM || vars.MINDREPLY_REPORT_FROM }}
MINDREPLY_PACKAGE_REQUEST_TO: ${{ secrets.MINDREPLY_PACKAGE_REQUEST_TO || vars.MINDREPLY_PACKAGE_REQUEST_TO }}
MINDREPLY_PACKAGE_REQUEST_FROM: ${{ secrets.MINDREPLY_PACKAGE_REQUEST_FROM || vars.MINDREPLY_PACKAGE_REQUEST_FROM }}
MINDREPLY_PACKAGE_REQUEST_DRY_RUN: ${{ vars.MINDREPLY_PACKAGE_REQUEST_DRY_RUN || 'false' }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
MINDREPLY_SLACK_WEBHOOK_URL: ${{ secrets.MINDREPLY_SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
NEXT_PUBLIC_SITE_URL: ${{ vars.NEXT_PUBLIC_SITE_URL || 'https://www.mind-reply.com' }}
NEXT_PUBLIC_WEBSITE_COMPLETION_PACKAGE_PAYMENT_URL: ${{ vars.NEXT_PUBLIC_WEBSITE_COMPLETION_PACKAGE_PAYMENT_URL }}
VERCEL_PROJECT_ID: ${{ vars.VERCEL_PROJECT_ID || 'prj_EuO1lFvbwoFSdDxBlezNyXG8eVV3' }}
VERCEL_TEAM_ID: ${{ vars.VERCEL_TEAM_ID || 'team_0plIJmQLgZC1wVv9zI2eVf3B' }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}

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

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install dependencies
run: npm ci || npm install

- name: Check report contract
run: npm run report:check

- name: Generate launch report
run: npm run launch:report

- name: Verify revenue blueprint
run: npm run audit:blueprint

- name: Capture live production revenue surface
continue-on-error: true
env:
MINDREPLY_LIVE_VERIFY_URL: ${{ env.NEXT_PUBLIC_SITE_URL }}
MINDREPLY_REQUIRE_LIVE_SHA_MATCH: "false"
MINDREPLY_REQUIRE_LIVE_DEPLOYMENT_MATCH: "false"
run: npm run verify:live-revenue

- name: Send owner report
run: npm run report:send

- name: Upload owner report artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: mindreply-hourly-owner-report
path: |
reports/outbox/hourly-owner-report-latest.md
reports/outbox/hourly-owner-delivery-receipt-latest.json
reports/outbox/hourly-owner-report-*.md
reports/outbox/hourly-owner-delivery-receipt-*.json
mindreply-live-revenue-surface.json
if-no-files-found: warn
retention-days: 7
Loading
Loading