Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
233 commits
Select commit Hold shift + click to select a range
07c3f75
chore(git): initialize gitignore with standard node and dist targets
waleedcodes Oct 9, 2026
1cb654e
chore(git): add coverage, vsix, and os metadata exclusions
waleedcodes Oct 9, 2026
a23b88f
chore(git): finalize gitignore with proofcode transient report filters
waleedcodes Oct 9, 2026
ca24a5b
Merge pull request #1 from waleedcodes/pr-01-gitignore
waleedcodes Oct 9, 2026
fdf945e
chore(lint): initialize eslint configuration file
waleedcodes Oct 9, 2026
1bc93b4
chore(lint): add typescript-eslint parser and recommended plugin rules
waleedcodes Oct 9, 2026
273c4b4
chore(lint): configure custom rule constraints and overrides
waleedcodes Oct 9, 2026
daec404
Merge pull request #2 from waleedcodes/pr-02-eslintrc
waleedcodes Oct 9, 2026
5d58238
chore(ts): initialize tsconfig compiler options
waleedcodes Oct 9, 2026
1e0811b
chore(ts): enable strict type checking flags and module resolution
waleedcodes Oct 9, 2026
15b0088
chore(ts): configure include/exclude paths and declaration outputs
waleedcodes Oct 9, 2026
679749e
Merge pull request #3 from waleedcodes/pr-03-tsconfig
waleedcodes Oct 9, 2026
483d92d
feat(manifest): initialize package manifest metadata and npm scripts
waleedcodes Oct 9, 2026
f839c5c
feat(manifest): contribute activity bar container, views, and commands
waleedcodes Oct 9, 2026
a967700
feat(manifest): declare extension configuration schema and CLI binary…
waleedcodes Oct 9, 2026
74b6a30
Merge pull request #4 from waleedcodes/pr-04-package
waleedcodes Oct 9, 2026
7731f0f
chore(deps): lock core compiler and bundler dependencies
waleedcodes Oct 9, 2026
771ec12
chore(deps): lock test runner and coverage dependencies
waleedcodes Oct 9, 2026
a8336e0
chore(deps): finalize complete dependency graph lockfile
waleedcodes Oct 9, 2026
5d413fb
Merge pull request #5 from waleedcodes/pr-05-package-lock
waleedcodes Oct 9, 2026
f495f99
test(config): initialize vitest configuration setup
waleedcodes Oct 9, 2026
f9f9c88
test(config): configure test match patterns and environment
waleedcodes Oct 9, 2026
1f8d913
test(config): enable v8 coverage reporting and path exclusions
waleedcodes Oct 9, 2026
bb58a9b
Merge pull request #6 from waleedcodes/pr-06-vitest-config
waleedcodes Oct 9, 2026
29507e5
build(esbuild): initialize esbuild build script and options
waleedcodes Oct 9, 2026
64b97b4
build(esbuild): add CLI executable target with shebang banner
waleedcodes Oct 9, 2026
53ba32d
build(esbuild): implement production minification and watch mode context
waleedcodes Oct 9, 2026
7ebc57c
Merge pull request #7 from waleedcodes/pr-07-esbuild-config
waleedcodes Oct 9, 2026
1ff748f
chore(packaging): create initial vscodeignore filter
waleedcodes Oct 9, 2026
b61a049
chore(packaging): exclude dev sources, tests, and coverage artifacts
waleedcodes Oct 9, 2026
5794c59
chore(packaging): optimize inclusion rules for minimal VSIX bundle
waleedcodes Oct 9, 2026
e278342
Merge pull request #8 from waleedcodes/pr-08-vscodeignore
waleedcodes Oct 9, 2026
4cb5c21
chore(vscode): initialize launch.json configuration
waleedcodes Oct 9, 2026
913c5d7
chore(vscode): configure extensionHost launch options and pre-launch …
waleedcodes Oct 9, 2026
8b2f4fc
chore(vscode): link demo-app workspace folder for interactive F5 testing
waleedcodes Oct 9, 2026
c4c1191
Merge pull request #9 from waleedcodes/pr-09-vscode-launch
waleedcodes Oct 9, 2026
1c7ac63
feat(ui): create initial SVG shield vector paths
waleedcodes Oct 9, 2026
9a5d762
feat(ui): style shield geometry with emerald brand palette
waleedcodes Oct 9, 2026
1a05a82
feat(ui): optimize SVG viewBox and theme compatibility
waleedcodes Oct 9, 2026
f4e56e3
Merge pull request #10 from waleedcodes/pr-10-resources-icon
waleedcodes Oct 9, 2026
9193373
feat(rules): draft initial architectural policies template
waleedcodes Oct 9, 2026
145fba4
feat(rules): specify authentication and data privacy rules
waleedcodes Oct 9, 2026
6d65dfc
feat(rules): add resource ownership and idempotency guidelines
waleedcodes Oct 9, 2026
82ba5c3
Merge pull request #11 from waleedcodes/pr-11-proofcode-rules
waleedcodes Oct 9, 2026
c539bf1
ci(github): initialize GitHub Actions CI workflow structure
waleedcodes Oct 9, 2026
cb7c127
ci(github): add Node matrix strategy and test execution steps
waleedcodes Oct 9, 2026
932eff8
ci(github): include bundle verification, CLI check, and VSIX packaging
waleedcodes Oct 9, 2026
b2a2715
Merge pull request #12 from waleedcodes/pr-12-github-workflows-ci
waleedcodes Oct 9, 2026
dd42661
feat(types): define git diff and AST symbol extraction interfaces
waleedcodes Oct 9, 2026
22c01bf
feat(types): define impact analysis, callers, and risk evidence trace…
waleedcodes Oct 9, 2026
58157d8
feat(types): define verification report, score, and breakage risk models
waleedcodes Oct 9, 2026
4417c53
Merge pull request #13 from waleedcodes/pr-13-src-types-index
waleedcodes Oct 9, 2026
782c0b7
feat(git): scaffold diff parser structure and file header matchers
waleedcodes Oct 9, 2026
5157d57
feat(git): implement hunk header parser and line number tracking
waleedcodes Oct 9, 2026
cfd8b79
feat(git): compute exact modified line ranges and handle renames
waleedcodes Oct 9, 2026
79def1f
Merge pull request #14 from waleedcodes/pr-14-src-git-diffParser
waleedcodes Oct 9, 2026
aae2360
feat(git): initialize GitService class and shell runner
waleedcodes Oct 9, 2026
af01357
feat(git): implement branch discovery and porcelain status parser
waleedcodes Oct 9, 2026
0222d86
feat(git): handle untracked files with synthetic diff generation
waleedcodes Oct 9, 2026
e1e21f5
Merge pull request #15 from waleedcodes/pr-15-src-git-gitService
waleedcodes Oct 9, 2026
4434373
feat(analyzer): initialize ASTAnalyzer using TypeScript Compiler API
waleedcodes Oct 9, 2026
6f59c47
feat(analyzer): implement symbol, import, and export declaration visi…
waleedcodes Oct 9, 2026
68f7e6d
feat(analyzer): add Next.js App and Pages Router endpoint detection
waleedcodes Oct 9, 2026
d0bb376
Merge pull request #16 from waleedcodes/pr-16-src-analyzer-astAnalyzer
waleedcodes Oct 9, 2026
db4d8f8
feat(graph): scaffold ProjectGraph file discovery and module resolution
waleedcodes Oct 9, 2026
33fa617
feat(graph): build reverse dependency map and function call relations…
waleedcodes Oct 9, 2026
fa00054
feat(graph): implement computeImpact with blast radius and test cover…
waleedcodes Oct 9, 2026
a62d0f1
Merge pull request #17 from waleedcodes/pr-17-src-graph-projectGraph
waleedcodes Oct 9, 2026
b7567ae
feat(risk): scaffold RiskEngine with AST visitor and evidence trace b…
waleedcodes Oct 9, 2026
1d50bd9
feat(risk): implement SQL injection and missing authorization checks
waleedcodes Oct 9, 2026
19f153d
feat(risk): implement hardcoded secret scanner and SSRF detector
waleedcodes Oct 9, 2026
82768b9
Merge pull request #18 from waleedcodes/pr-18-src-rules-riskEngine-part1
waleedcodes Oct 9, 2026
7f1057f
feat(risk): implement unhandled null database query result detector (…
waleedcodes Oct 9, 2026
ec13c08
feat(risk): implement unhandled async operation detector (PC-REL-006)
waleedcodes Oct 9, 2026
577da93
feat(risk): add test fixture filter and deduplication logic
waleedcodes Oct 9, 2026
2a25102
Merge pull request #19 from waleedcodes/pr-19-src-rules-riskEngine-part2
waleedcodes Oct 9, 2026
5187c77
feat(rules): scaffold ProjectRulesEngine and markdown rules parser
waleedcodes Oct 9, 2026
908a04f
feat(rules): implement authentication and sensitive field leak checks
waleedcodes Oct 9, 2026
5458fe1
feat(rules): implement resource ownership, test requirements, and ide…
waleedcodes Oct 9, 2026
0c5c05f
Merge pull request #20 from waleedcodes/pr-20-src-rules-projectRulesE…
waleedcodes Oct 9, 2026
ebfaa11
feat(runner): scaffold TestRunner class and command execution helper
waleedcodes Oct 9, 2026
e460bea
feat(runner): implement package manager detection via lockfiles
waleedcodes Oct 9, 2026
cb52684
feat(runner): implement typecheck, lint, test, and build execution me…
waleedcodes Oct 9, 2026
8440008
Merge pull request #21 from waleedcodes/pr-21-src-test-runner-testRunner
waleedcodes Oct 9, 2026
f80910c
feat(engine): scaffold ProofCodeEngine class and verify options inter…
waleedcodes Oct 9, 2026
b7f92d0
feat(engine): orchestrate Git diff, AST parsing, and graph impact pip…
waleedcodes Oct 9, 2026
ace36f5
feat(engine): implement transparent score deductions and verdict logic
waleedcodes Oct 9, 2026
901332f
Merge pull request #22 from waleedcodes/pr-22-src-engine-proofCodeEng…
waleedcodes Oct 9, 2026
40ba39b
feat(engine): define BreakageRiskItem model and collection pipeline
waleedcodes Oct 9, 2026
e021f33
feat(engine): implement downstream auth and core service breakage det…
waleedcodes Oct 9, 2026
9695fa1
feat(engine): map rule violations and untested dependents into breaka…
waleedcodes Oct 9, 2026
bbbabe6
Merge pull request #23 from waleedcodes/pr-23-src-engine-proofCodeEng…
waleedcodes Oct 9, 2026
d2149fe
feat(formatters): initialize ReportFormatter class structure
waleedcodes Oct 9, 2026
2ba9e06
feat(formatters): implement toMarkdown with tables, evidence traces, …
waleedcodes Oct 9, 2026
a314faf
feat(formatters): implement toTerminal and toJson serialization methods
waleedcodes Oct 9, 2026
a778451
Merge pull request #24 from waleedcodes/pr-24-src-engine-reportFormatter
waleedcodes Oct 9, 2026
8a699ba
feat(ui): scaffold ProofCodeTreeDataProvider and tree item models
waleedcodes Oct 9, 2026
c122dd5
feat(ui): implement root category nodes and evidence jump commands
waleedcodes Oct 9, 2026
d178ffa
feat(ui): add What Could Break tree node and dynamic refresh event em…
waleedcodes Oct 9, 2026
540603c
Merge pull request #25 from waleedcodes/pr-25-src-ui-treeDataProvider
waleedcodes Oct 9, 2026
3888668
feat(ui): scaffold ProofCodeCodeLensProvider structure
waleedcodes Oct 9, 2026
24f259f
feat(ui): match document functions against impact analysis symbols
waleedcodes Oct 9, 2026
10ad489
feat(ui): render caller counts, risk indicators, and dashboard naviga…
waleedcodes Oct 9, 2026
c365bfb
Merge pull request #26 from waleedcodes/pr-26-src-ui-codeLensProvider
waleedcodes Oct 9, 2026
67dc49e
feat(ui): scaffold ProofCodeCodeActionProvider and quick fix registra…
waleedcodes Oct 9, 2026
34b8bb9
feat(ui): implement wrap in try/catch quick fix for PC-REL-006
waleedcodes Oct 9, 2026
7932cf1
feat(ui): implement null guard and session auth insertion quick fixes
waleedcodes Oct 9, 2026
58ef343
Merge pull request #27 from waleedcodes/pr-27-src-ui-codeActionProvider
waleedcodes Oct 9, 2026
4c8ed0d
feat(ui): scaffold ProofCodeWebviewPanel singleton and webview creation
waleedcodes Oct 9, 2026
b312c6f
feat(ui): style glassmorphic dark-mode layout and animated SVG radial…
waleedcodes Oct 9, 2026
6a5de49
feat(ui): implement tab navigation and webview message bridge
waleedcodes Oct 9, 2026
aec5fc2
Merge pull request #28 from waleedcodes/pr-28-src-ui-webviewPanel-part1
waleedcodes Oct 9, 2026
e8f6541
feat(ui): add visual blast tree container layout and connector styling
waleedcodes Oct 9, 2026
111d95c
feat(ui): implement caller status cards, test badges, and route cards
waleedcodes Oct 9, 2026
ff00773
feat(ui): add client-side live search and untested callers filtering …
waleedcodes Oct 9, 2026
7c3b144
Merge pull request #29 from waleedcodes/pr-29-src-ui-webviewPanel-part2
waleedcodes Oct 9, 2026
9353eff
feat(cli): scaffold CLI argument parser and options handling
waleedcodes Oct 9, 2026
ad6cd69
feat(cli): integrate ProofCodeEngine and report formatters
waleedcodes Oct 9, 2026
a428757
feat(cli): implement CI exit codes and report export flag
waleedcodes Oct 9, 2026
32c5bdf
Merge pull request #30 from waleedcodes/pr-30-src-cli
waleedcodes Oct 9, 2026
5e24c7f
feat(extension): scaffold activate function and register status bar item
waleedcodes Oct 9, 2026
caa86ec
feat(extension): register sidebar tree view, commands, and webview panel
waleedcodes Oct 9, 2026
bde13b6
feat(extension): integrate diagnostic collection, codelens, code acti…
waleedcodes Oct 9, 2026
5991d81
Merge pull request #31 from waleedcodes/pr-31-src-extension-index
waleedcodes Oct 9, 2026
36e79b9
feat(scripts): initialize demo script runner structure
waleedcodes Oct 9, 2026
5b31c73
feat(scripts): execute ProofCodeEngine against demo-app workspace
waleedcodes Oct 9, 2026
7cae11a
feat(scripts): format terminal output and export markdown verificatio…
waleedcodes Oct 9, 2026
5f2f761
Merge pull request #32 from waleedcodes/pr-32-scripts-run-demo
waleedcodes Oct 9, 2026
44af2c6
test(mocks): mock core vscode window, workspace, and tree classes
waleedcodes Oct 9, 2026
1e57726
test(mocks): mock Range, Position, Selection, and Diagnostic models
waleedcodes Oct 9, 2026
835fab9
test(mocks): mock CodeLens, CodeAction, WorkspaceEdit, and languages API
waleedcodes Oct 9, 2026
88740d8
Merge pull request #33 from waleedcodes/pr-33-tests-mocks-vscode
waleedcodes Oct 9, 2026
894b443
test(diff): scaffold diff parser test suite
waleedcodes Oct 9, 2026
05cd188
test(diff): test single file added and deleted line extraction
waleedcodes Oct 9, 2026
ecc3250
test(diff): test multi-file diff parsing and empty diff edge cases
waleedcodes Oct 9, 2026
6732cf8
Merge pull request #34 from waleedcodes/pr-34-tests-diffParser-test
waleedcodes Oct 9, 2026
61af7dc
test(ast): scaffold AST analyzer test suite
waleedcodes Oct 9, 2026
7f5a459
test(ast): test function, class, and variable symbol extraction
waleedcodes Oct 9, 2026
739c36d
test(ast): test import/export resolution and Next.js API route detection
waleedcodes Oct 9, 2026
61d4863
Merge pull request #35 from waleedcodes/pr-35-tests-astAnalyzer-test
waleedcodes Oct 9, 2026
7f45134
test(graph): scaffold project graph test fixture and suite
waleedcodes Oct 9, 2026
b4d9b19
test(graph): test dependency resolution and reverse mapping
waleedcodes Oct 9, 2026
d693efa
test(graph): test impact calculation and untested caller flags
waleedcodes Oct 9, 2026
421419e
Merge pull request #36 from waleedcodes/pr-36-tests-projectGraph-test
waleedcodes Oct 9, 2026
a725461
test(risk): test SQL injection and hardcoded secret detectors
waleedcodes Oct 9, 2026
0882ca4
test(risk): test dangerous execution, SSRF, and missing auth rules
waleedcodes Oct 9, 2026
1c09dfa
test(risk): test unhandled null results and optional chaining edge cases
waleedcodes Oct 9, 2026
4f84d10
Merge pull request #37 from waleedcodes/pr-37-tests-riskEngine-test
waleedcodes Oct 9, 2026
511d937
test(rules): scaffold project rules test suite
waleedcodes Oct 9, 2026
c53fa88
test(rules): test markdown rules file parsing
waleedcodes Oct 9, 2026
4c5fd69
test(rules): test rule evaluation and violation detection
waleedcodes Oct 9, 2026
687bc10
Merge pull request #38 from waleedcodes/pr-38-tests-projectRulesEngin…
waleedcodes Oct 9, 2026
4cd4859
test(runner): scaffold test runner test suite
waleedcodes Oct 9, 2026
4e35025
test(runner): test package manager detection across lockfiles
waleedcodes Oct 9, 2026
bcee407
test(runner): test typecheck command runner execution
waleedcodes Oct 9, 2026
9adf65f
Merge pull request #39 from waleedcodes/pr-39-tests-testRunner-test
waleedcodes Oct 9, 2026
5d2c778
test(engine): test engine verification execution and score bounds
waleedcodes Oct 9, 2026
6719c64
test(engine): test Markdown report formatting and evidence paths
waleedcodes Oct 9, 2026
d48501e
test(engine): test What Could Break formatting and terminal/json outputs
waleedcodes Oct 9, 2026
f4e69bf
Merge pull request #40 from waleedcodes/pr-40-tests-proofCodeEngine-test
waleedcodes Oct 9, 2026
8f93676
test(tree): scaffold tree data provider test suite
waleedcodes Oct 9, 2026
3e13282
test(tree): test empty state prompt and report set handling
waleedcodes Oct 9, 2026
1c8c1a0
test(tree): test root nodes and child element resolution
waleedcodes Oct 9, 2026
39b4663
Merge pull request #41 from waleedcodes/pr-41-tests-treeDataProvider-…
waleedcodes Oct 9, 2026
b710e93
test(codelens): scaffold codelens provider test suite
waleedcodes Oct 9, 2026
7b3db7b
test(codelens): test empty return when no report exists
waleedcodes Oct 9, 2026
07b4366
test(codelens): test lens title generation with callers and risk tags
waleedcodes Oct 9, 2026
613e464
Merge pull request #42 from waleedcodes/pr-42-tests-codeLensProvider-…
waleedcodes Oct 9, 2026
75f7ae5
test(quickfix): scaffold code action provider test suite
waleedcodes Oct 9, 2026
64cf50a
test(quickfix): test try/catch wrap quick fix for PC-REL-006
waleedcodes Oct 9, 2026
f01c29b
test(quickfix): test null guard and session auth insertion quick fixes
waleedcodes Oct 9, 2026
5b3f1a4
Merge pull request #43 from waleedcodes/pr-43-tests-codeActionProvide…
waleedcodes Oct 9, 2026
1ba21fa
test(webview): scaffold webview panel test suite and mocks
waleedcodes Oct 9, 2026
0e871d0
test(webview): test dashboard HTML generation and tab structure
waleedcodes Oct 9, 2026
41cc78b
test(webview): test visual blast graph and live search input rendering
waleedcodes Oct 9, 2026
ea8b3a6
Merge pull request #44 from waleedcodes/pr-44-tests-webviewPanel-test
waleedcodes Oct 9, 2026
76c9c86
test(extension): scaffold extension lifecycle test suite
waleedcodes Oct 9, 2026
267a881
test(extension): test command registrations and subscription tracking
waleedcodes Oct 9, 2026
d3e31f9
test(extension): test clean disposal in deactivate
waleedcodes Oct 9, 2026
39834b1
Merge pull request #45 from waleedcodes/pr-45-tests-extension-test
waleedcodes Oct 9, 2026
b55e25e
test(workflow): scaffold demo workflow integration test suite
waleedcodes Oct 9, 2026
a49f78f
test(workflow): execute ProofCodeEngine over demo-app fixture
waleedcodes Oct 9, 2026
42c8eca
test(workflow): assert BLOCKED verdict, risk findings, and rule viola…
waleedcodes Oct 9, 2026
2b7f284
Merge pull request #46 from waleedcodes/pr-46-tests-demoWorkflow-test
waleedcodes Oct 9, 2026
ad25cb9
fixture(demo): initialize demo app package manifest
waleedcodes Oct 9, 2026
a9c9fa6
fixture(demo): add next, react, and typescript dependencies
waleedcodes Oct 9, 2026
d3a1435
fixture(demo): configure dev and test scripts
waleedcodes Oct 9, 2026
9e891e4
Merge pull request #47 from waleedcodes/pr-47-examples-demo-app-package
waleedcodes Oct 9, 2026
2210e51
fixture(demo): initialize tsconfig compiler options
waleedcodes Oct 9, 2026
e5b7663
fixture(demo): configure jsx and module resolution
waleedcodes Oct 9, 2026
48cee4e
fixture(demo): configure path aliases for src directory
waleedcodes Oct 9, 2026
e22afcc
Merge pull request #48 from waleedcodes/pr-48-examples-demo-app-tsconfig
waleedcodes Oct 9, 2026
c71a567
fixture(demo): create demo project rules file
waleedcodes Oct 9, 2026
29bd94e
fixture(demo): specify authentication and data privacy constraints
waleedcodes Oct 9, 2026
a15e610
fixture(demo): add ownership and idempotency rules
waleedcodes Oct 9, 2026
4446d22
Merge pull request #49 from waleedcodes/pr-49-examples-demo-app-proof…
waleedcodes Oct 9, 2026
b4d759a
fixture(demo): initialize db client structure and collections
waleedcodes Oct 9, 2026
03eed57
fixture(demo): implement user and order collection operations
waleedcodes Oct 9, 2026
395fc26
fixture(demo): implement raw query execution method
waleedcodes Oct 9, 2026
431a084
Merge pull request #50 from waleedcodes/pr-50-examples-demo-app-src-l…
waleedcodes Oct 9, 2026
7244a5d
fixture(demo): scaffold auth module and interfaces
waleedcodes Oct 9, 2026
74d230f
fixture(demo): implement getUser lookup via db client
waleedcodes Oct 9, 2026
17da8d4
fixture(demo): implement auth session verification helper
waleedcodes Oct 9, 2026
fc3e218
Merge pull request #51 from waleedcodes/pr-51-examples-demo-app-src-l…
waleedcodes Oct 9, 2026
c2bbea0
fixture(demo): initialize order service module
waleedcodes Oct 9, 2026
e37c8e9
fixture(demo): implement getOrderForUser method
waleedcodes Oct 9, 2026
2597ec3
fixture(demo): integrate user verification and order query
waleedcodes Oct 9, 2026
6588373
Merge pull request #52 from waleedcodes/pr-52-examples-demo-app-src-s…
waleedcodes Oct 9, 2026
141394f
fixture(demo): initialize payment service module
waleedcodes Oct 9, 2026
e8f6e2c
fixture(demo): implement processPayment method signature
waleedcodes Oct 9, 2026
5e4b415
fixture(demo): integrate order verification and payment execution
waleedcodes Oct 9, 2026
a4506a0
Merge pull request #53 from waleedcodes/pr-53-examples-demo-app-src-s…
waleedcodes Oct 9, 2026
81b01c3
fixture(demo): scaffold dashboard component structure
waleedcodes Oct 9, 2026
b09c5c1
fixture(demo): implement renderDashboard function
waleedcodes Oct 9, 2026
438bd0e
fixture(demo): integrate user data rendering
waleedcodes Oct 9, 2026
6a29649
Merge pull request #54 from waleedcodes/pr-54-examples-demo-app-src-c…
waleedcodes Oct 9, 2026
6b9986f
fixture(demo): scaffold admin panel component structure
waleedcodes Oct 9, 2026
9988c36
fixture(demo): implement renderAdminPanel function
waleedcodes Oct 9, 2026
5dc644e
fixture(demo): integrate admin view rendering
waleedcodes Oct 9, 2026
0007dc8
Merge pull request #55 from waleedcodes/pr-55-examples-demo-app-src-c…
waleedcodes Oct 9, 2026
9cf186a
fixture(demo): scaffold Next.js App Router login route
waleedcodes Oct 9, 2026
b18c117
fixture(demo): implement POST request handler with database query
waleedcodes Oct 9, 2026
ab9bc28
fixture(demo): return response payload with user record
waleedcodes Oct 9, 2026
98d32b3
Merge pull request #56 from waleedcodes/pr-56-examples-demo-app-src-a…
waleedcodes Oct 9, 2026
7302cc3
fixture(demo): scaffold Next.js App Router dynamic order route
waleedcodes Oct 9, 2026
e8038f1
fixture(demo): implement GET order lookup handler
waleedcodes Oct 9, 2026
dd6162d
fixture(demo): return order json response
waleedcodes Oct 9, 2026
539a263
Merge pull request #57 from waleedcodes/pr-57-examples-demo-app-src-a…
waleedcodes Oct 9, 2026
65343c1
fixture(demo): initialize demo app test file and imports
waleedcodes Oct 9, 2026
af90bd1
fixture(demo): implement unit test for getUser function
waleedcodes Oct 9, 2026
d272b6d
fixture(demo): implement unit test for Dashboard component
waleedcodes Oct 9, 2026
fed8978
Merge pull request #58 from waleedcodes/pr-58-examples-demo-app-tests…
waleedcodes Oct 9, 2026
bfc5acb
fix(engine): synthesize diff files for subfolder workspaces when repo…
waleedcodes Oct 9, 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
25 changes: 25 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2022,
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"rules": {
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-unused-vars": [
"error",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
],
"@typescript-eslint/explicit-module-boundary-types": "off"
},
"ignorePatterns": ["dist/**", "node_modules/**", "coverage/**", "*.config.js"]
}
50 changes: 50 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: CI

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

jobs:
verify:
name: Typecheck, Lint, Test & Package
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]

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

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install Dependencies
run: npm ci

- name: TypeScript Typecheck
run: npm run typecheck

- name: ESLint Check
run: npm run lint

- name: Run Test Suite
run: npm test

- name: Build Extension & CLI Bundles
run: npm run build

- name: Verify CLI Runner & Killer Workflow Demo
run: |
node dist/cli.js --help
npm run demo

- name: Package VS Code Extension (.vsix)
run: npx --yes @vscode/vsce package --no-dependencies
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
node_modules/
dist/
out/
coverage/
*.vsix
.DS_Store
*.log
.vscode-test/
.proofcode/report.*
examples/**/.proofcode/report.*
9 changes: 9 additions & 0 deletions .proofcode/rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Project Rules

Define organizational and architectural standards for your codebase. ProofCode evaluates every code change against these rules.

- **Rule 1 (Authentication):** Every API route must authenticate the user.
- **Rule 2 (Data Privacy):** Never expose passwordHash or secrets in responses.
- **Rule 3 (Resource Ownership):** Users can only access their own orders or user resources.
- **Rule 4 (Test Coverage):** All public API endpoints require tests.
- **Rule 5 (Financial Safety):** Payment operations must be idempotent.
18 changes: 18 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run ProofCode Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"${workspaceFolder}/examples/demo-app"
],
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "npm: build"
}
]
}
16 changes: 16 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.vscode/**
.vscode-test/**
src/**
tests/**
examples/**
scripts/**
coverage/**
.proofcode/report.*
.eslintrc.json
tsconfig.json
vitest.config.ts
esbuild.config.js
.git/**
.github/**
**/*.map
node_modules/**
56 changes: 56 additions & 0 deletions esbuild.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
const esbuild = require('esbuild');

const isProduction = process.argv.includes('--production');
const isWatch = process.argv.includes('--watch');

/** @type {esbuild.BuildOptions[]} */
const buildConfigs = [
// VS Code Extension Bundle
{
entryPoints: ['src/extension/index.ts'],
bundle: true,
outfile: 'dist/extension.js',
external: ['vscode'],
format: 'cjs',
platform: 'node',
target: 'node18',
sourcemap: !isProduction,
minify: isProduction,
logLevel: 'info'
},
// Standalone CLI Bundle
{
entryPoints: ['src/cli.ts'],
bundle: true,
outfile: 'dist/cli.js',
external: ['vscode'],
format: 'cjs',
platform: 'node',
target: 'node18',
banner: {
js: '#!/usr/bin/env node\n'
},
sourcemap: !isProduction,
minify: isProduction,
logLevel: 'info'
}
];

async function main() {
try {
for (const config of buildConfigs) {
if (isWatch) {
const ctx = await esbuild.context(config);
await ctx.watch();
console.log(`Watching ${config.entryPoints[0]} -> ${config.outfile}`);
} else {
await esbuild.build(config);
}
}
} catch (e) {
console.error(e);
process.exit(1);
}
}

main();
9 changes: 9 additions & 0 deletions examples/demo-app/.proofcode/rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Project Rules

Define organizational and architectural standards for your codebase. ProofCode evaluates every code change against these rules.

- **Rule 1 (Authentication):** Every API route must authenticate the user.
- **Rule 2 (Data Privacy):** Never expose passwordHash or secrets in responses.
- **Rule 3 (Resource Ownership):** Users can only access their own orders or user resources.
- **Rule 4 (Test Coverage):** All public API endpoints require tests.
- **Rule 5 (Financial Safety):** Payment operations must be idempotent.
8 changes: 8 additions & 0 deletions examples/demo-app/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "ecommerce-next-demo",
"version": "1.0.0",
"private": true,
"scripts": {
"test": "echo \"Tests passed\""
}
}
17 changes: 17 additions & 0 deletions examples/demo-app/src/app/api/auth/login/route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { db } from '../../../../lib/db';

export async function POST(req: Request) {
const body = await req.json();
const username = body.username;

// Unescaped dynamic SQL query
const result = await db.query(`SELECT * FROM users WHERE username = '${username}'`);
const user = result.rows[0];

// Leaks passwordHash in response
return Response.json({
success: true,
user,
passwordHash: user ? user.passwordHash : null
});
}
17 changes: 17 additions & 0 deletions examples/demo-app/src/app/api/orders/[id]/route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { db } from '../../../../lib/db';

/**
* Route modified by AI agent:
* Fetches order directly from DB without ownership check
*/
export async function GET(req: Request) {
const url = new URL(req.url);
const orderId = url.pathname.split('/').pop() || '';

// Direct database query without session or ownership check
const order = await db.order.findUnique({
where: { id: orderId }
});

return Response.json(order);
}
6 changes: 6 additions & 0 deletions examples/demo-app/src/components/AdminPanel.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { getUser } from '../lib/auth';

export async function renderAdminPanel(adminId: string) {
const user = await getUser(adminId);
return `<div>Admin panel for: ${user?.email}</div>`;
}
6 changes: 6 additions & 0 deletions examples/demo-app/src/components/Dashboard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { getUser } from '../lib/auth';

export async function renderDashboard(userId: string) {
const user = await getUser(userId);
return `<div>Welcome, ${user?.email}</div>`;
}
13 changes: 13 additions & 0 deletions examples/demo-app/src/lib/auth.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { db, User } from './db';

/**
* AI modified getUser to add OAuth provider mapping
*/
export async function getUser(userId: string): Promise<User | null> {
const user = await db.user.findUnique({ where: { id: userId } });
return user;
}

export async function verifySession(token: string): Promise<boolean> {
return Boolean(token && token.length > 10);
}
30 changes: 30 additions & 0 deletions examples/demo-app/src/lib/db.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
export interface User {
id: string;
email: string;
passwordHash: string;
}

export interface Order {
id: string;
userId: string;
amount: number;
}

export const db = {
user: {
findUnique: async (query: { where: { id: string } }) => {
return { id: query.where.id, email: 'alex@example.com', passwordHash: '$2b$10$e8...' };
}
},
order: {
findUnique: async (query: { where: { id: string } }) => {
return { id: query.where.id, userId: 'user-123', amount: 99.99 };
},
findMany: async () => {
return [{ id: 'order-1', userId: 'user-123', amount: 49.0 }];
}
},
query: async (sql: string) => {
return { rows: [{ id: '1', sql }] };
}
};
8 changes: 8 additions & 0 deletions examples/demo-app/src/services/orderService.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { getUser } from '../lib/auth';
import { db } from '../lib/db';

export async function getOrderForUser(orderId: string, userId: string) {
const user = await getUser(userId);
if (!user) throw new Error('User not found');
return db.order.findUnique({ where: { id: orderId } });
}
8 changes: 8 additions & 0 deletions examples/demo-app/src/services/paymentService.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { getUser } from '../lib/auth';
import { getOrderForUser } from './orderService';

export async function processPayment(orderId: string, userId: string) {
const user = await getUser(userId);
const order = await getOrderForUser(orderId, userId);
return { success: true, user, order };
}
9 changes: 9 additions & 0 deletions examples/demo-app/tests/auth.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { describe, expect, it } from 'vitest';
import { getUser } from '../src/lib/auth';

describe('Auth Service', () => {
it('should retrieve user', async () => {
const user = await getUser('1');
expect(user).toBeDefined();
});
});
12 changes: 12 additions & 0 deletions examples/demo-app/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"compilerOptions": {
"target": "es2022",
"module": "esnext",
"moduleResolution": "node",
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src/**/*", "tests/**/*"]
}
Loading
Loading