Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2236 commits
Select commit Hold shift + click to select a range
f6a1a7e
Merge current base and resolve application version to 0.261.351
paullizer Oct 20, 2026
7623793
Merge latest base and reconcile action-test version
paullizer Oct 20, 2026
0ffe306
Merge pull request #1787 from microsoft/paullizer-sql-connection-inve…
paullizer Oct 20, 2026
00c80b8
Merge current base and resolve application version to 0.261.354
paullizer Oct 20, 2026
efb2033
Merge SQL diagnostics base and preserve combined Cosmos evidence
paullizer Oct 20, 2026
198b523
Fix multipart upload authentication response negotiation
paullizer Oct 20, 2026
8d28b04
Merge current V2 base and resolve upload fix version
paullizer Oct 20, 2026
0ff3757
Merge pull request #1788 from microsoft/paullizer-probable-potato
paullizer Oct 20, 2026
359c98e
Merge pull request #1789 from paullizer/paullizer-upload-failure-inve…
paullizer Oct 20, 2026
161d329
Merge pull request #1790 from microsoft/paullizer-chat-upload-failure
paullizer Oct 20, 2026
0e4cab3
Fix V2 first-agent-message context race
paullizer Oct 20, 2026
0680e29
Persist Microsoft 365 chat connections across sign-ins
paullizer Oct 20, 2026
dce39e4
Merge pull request #1793 from microsoft/paullizer-chat-context-invest…
paullizer Oct 20, 2026
acdda86
Merge pull request #1794 from microsoft/paullizer-congenial-spoon
paullizer Oct 20, 2026
e60207c
Fix placeholder document citation labels in both chat clients
paullizer Oct 20, 2026
76390c4
Fix public workspace missing-status chat visibility
paullizer Oct 20, 2026
6ebb1e7
Merge pull request #1796 from microsoft/paullizer-document-picker-inv…
paullizer Oct 20, 2026
6b84499
Fix V2 preflight ownership and extend safe SQL diagnostics
paullizer Oct 20, 2026
e5ca5cf
Fix selected-source orchestration planning
paullizer Oct 20, 2026
f1939f2
Merge latest base and unify action recovery context ownership
paullizer Oct 20, 2026
d03928a
Address SQL diagnostics CodeQL import feedback
paullizer Oct 20, 2026
f93ba53
Declare shared orchestration fixtures as exports
paullizer Oct 20, 2026
d8dd6c1
Merge pull request #1795 from microsoft/paullizer-ui-test-failure-inv…
paullizer Oct 20, 2026
911e639
Merge latest V2 base into attachment orchestration
paullizer Oct 20, 2026
7ecd3bf
Merge pull request #1797 from microsoft/paullizer-ui-acceptance-failures
paullizer Oct 20, 2026
7b3de96
Merge V2 preflight and SQL updates; resolve version conflict
paullizer Oct 20, 2026
025efee
Fix Azure Files token authentication and safe diagnostics
paullizer Oct 20, 2026
8116957
Merge latest V2 base and resolve Azure Files conflicts
paullizer Oct 20, 2026
a8f4e1a
Merge pull request #1798 from microsoft/paullizer-attachment-orchestr…
paullizer Oct 20, 2026
9fcf5f6
Fix Analyze and Compare document citation handoff
paullizer Oct 20, 2026
efccad9
Fix generated output reliability in composition and V2 chat
paullizer Oct 20, 2026
f013c70
Merge latest V2 base into citation handoff fix
paullizer Oct 20, 2026
b594831
Declare shared citation helpers and fixtures as exports
paullizer Oct 20, 2026
bd942bc
Merge latest V2 base into generated-output fixes
paullizer Oct 20, 2026
93ebd2d
Add File Sync Cosmos runtime evidence and clarify directory fallback
paullizer Oct 20, 2026
0038493
Declare generated-image test fixtures as exports
paullizer Oct 20, 2026
df367c7
Merge pull request #1800 from microsoft/paullizer-chat-validation-fai…
paullizer Oct 20, 2026
f5d345d
Merge pull request #1799 from microsoft/paullizer-file-source-connect…
paullizer Oct 20, 2026
084cf07
Export the generated-image suite UI marker
paullizer Oct 20, 2026
83b7c25
Merge current V2 base after review fixes
paullizer Oct 20, 2026
d71a486
Fix workflow budget failures and live status synchronization
paullizer Oct 20, 2026
95c8e21
Merge pull request #1801 from microsoft/paullizer-file-generation-fai…
paullizer Oct 20, 2026
de1192a
Merge latest V2 base and resolve workflow version conflict
paullizer Oct 20, 2026
690927e
Merge latest V2 base and advance workflow fix to 0.261.362
paullizer Oct 20, 2026
5b75727
Fix CodeQL test import and fixture exports
paullizer Oct 20, 2026
00e3f40
Merge pull request #1802 from microsoft/paullizer-workflow-recovery-i…
paullizer Oct 20, 2026
88bcc7e
Fix workflow Ask AI chat validation and rejection diagnostics
paullizer Oct 20, 2026
f5be433
Merge current V2 base and advance Ask AI fix to 0.261.364
paullizer Oct 20, 2026
94c1fb0
Merge pull request #1805 from microsoft/paullizer-workflow-ask-ai-fai…
paullizer Oct 20, 2026
17631c9
Fix search evidence citation handoffs
paullizer Oct 21, 2026
e127958
Declare the search citation UI marker directly on the test
paullizer Oct 21, 2026
99c295d
Fix orchestration clarification continuation with empty history
paullizer Oct 21, 2026
d1dc0d6
Fix OpenTelemetry cleanup for Flask streaming responses
paullizer Oct 21, 2026
2cf4fca
Fix streamed source evidence and plugin failure outcomes
paullizer Oct 21, 2026
ef8da7b
Merge pull request #1806 from microsoft/paullizer-policy-evidence-inv…
paullizer Oct 21, 2026
0e395fd
Merge V2 base and advance clarification fix to 0.261.367
paullizer Oct 21, 2026
eeb2bc0
Merge latest V2 base and advance combined version to 0.261.367
paullizer Oct 21, 2026
b3a1d7e
Merge pull request #1809 from microsoft/paullizer-orchestration-clari…
paullizer Oct 21, 2026
b5cab2c
Merge pull request #1808 from paullizer/paullizer-action-provenance-i…
paullizer Oct 21, 2026
056d9b1
Merge base search citation fixes into telemetry investigation
paullizer Oct 21, 2026
ace250c
Fix agent message author names at model request boundary
paullizer Oct 21, 2026
529b95a
Merge V2 base and advance agent name fix to 0.261.368
paullizer Oct 21, 2026
f6ac2d5
Merge latest V2 base and advance combined version to 0.261.368
paullizer Oct 21, 2026
095f7b7
Merge pull request #1807 from microsoft/paullizer-ui-test-investigation
paullizer Oct 21, 2026
4934a97
Merge pull request #1810 from microsoft/paullizer-workflow-recovery
paullizer Oct 21, 2026
c0b5e3a
Fix React V2 chat clipboard and drop uploads
paullizer Oct 21, 2026
18d0322
Fix bounded selected-source Blob downloads
paullizer Oct 21, 2026
17dbc24
Merge pull request #1811 from paullizer/paullizer-react-clipboard-paste
paullizer Oct 21, 2026
0219d82
Merge V2 base and resolve source-reader version conflict
paullizer Oct 21, 2026
8e4036d
Fix Azure Files selected-path deletion reconciliation
paullizer Oct 21, 2026
203c0ca
Merge latest V2 clipboard changes into source-reader fix
paullizer Oct 21, 2026
6951ea8
Merge V2 base and advance file-sync fix to 0.261.369
paullizer Oct 21, 2026
6760e41
Merge pull request #1812 from microsoft/paullizer-source-preparation-…
paullizer Oct 21, 2026
ed31575
Migrate workspace prompts to explicit Copilot skills
paullizer Oct 21, 2026
029c539
Merge pull request #1813 from paullizer/paullizer-file-sync-investiga…
paullizer Oct 21, 2026
ce0a188
Fix orchestration polling budgets and follow-up citation provenance
paullizer Oct 21, 2026
aefc85f
Merge pull request #1815 from paullizer/paullizer-orchestration-failu…
paullizer Oct 21, 2026
624df2b
Fix chat recovery for stale active group selections
paullizer Oct 21, 2026
a8c4ed4
Merge pull request #1817 from microsoft/paullizer-stale-active-group
paullizer Oct 21, 2026
830312d
Fix MCP tool failure outcome reporting
paullizer Oct 21, 2026
4be7e4c
Merge pull request #1818 from paullizer/paullizer-mcp-execution-inves…
paullizer Oct 21, 2026
df7b59e
Fix SQL managed identity authentication across action paths
paullizer Oct 21, 2026
c1e92e0
Fix SQL test loader portability and explicit network guard
paullizer Oct 21, 2026
785b14b
Fix V2 public source discovery across execution paths
paullizer Oct 21, 2026
fb8b2e6
Merge V2 base and reconcile public source policy inventory
paullizer Oct 21, 2026
b5370b2
Break public source import cycles and validate cold startup
paullizer Oct 21, 2026
c11df19
Merge pull request #1819 from microsoft/paullizer-sql-managed-identity
paullizer Oct 22, 2026
3ea6a8e
Merge pull request #1820 from microsoft/paullizer-document-picker-inv…
paullizer Oct 22, 2026
0227301
Improve workflow authorization names and navigation
paullizer Oct 22, 2026
81b48f6
Merge pull request #1821 from paullizer/paullizer-workflow-authorizat…
paullizer Oct 22, 2026
afc05a3
Fix orchestration saved-memory scope, citations, and recall ranking
paullizer Oct 22, 2026
89819ce
Merge pull request #1822 from paullizer/paullizer-orchestration-ui-te…
paullizer Oct 22, 2026
256b252
Fix multi-turn memory identifier context, scoped filtering, and basel…
paullizer Oct 22, 2026
14bee8a
Merge pull request #1823 from microsoft/paullizer-investigate-fed-35-…
paullizer Oct 22, 2026
65b028b
Fix multi-turn saved memory recall, elicitation guard, and tabular ci…
paullizer Oct 22, 2026
6701119
Merge branch 'paullizer-react-v2-ui' into paullizer-fix-orchestration…
paullizer Oct 22, 2026
4a028d7
Merge pull request #1824 from microsoft/paullizer-fix-orchestration-m…
paullizer Oct 22, 2026
082c4a3
Fix workflow task tool-failure status propagation and schema guidance
paullizer Oct 22, 2026
0619342
Fix mixed-mode conversation history ordering and superseded memory ha…
paullizer Oct 22, 2026
749e9df
Replace regex fenced JSON parsing with linear string split
paullizer Oct 22, 2026
b650844
Fix unseeded V2 orchestration agent availability and workflow catalog…
paullizer Oct 22, 2026
9c4e406
Merge pull request #1827 from microsoft/paullizer-fix-orchestration-a…
paullizer Oct 22, 2026
8ed2d21
Merge branch 'paullizer-react-v2-ui' into paullizer-fed-38-ui-test-in…
paullizer Oct 22, 2026
8fe80e6
Merge branch 'paullizer-react-v2-ui' into paullizer-workflow-run-fail…
paullizer Oct 22, 2026
1cebb02
Merge pull request #1825 from microsoft/paullizer-workflow-run-failur…
paullizer Oct 22, 2026
a1a8e01
Merge pull request #1826 from paullizer/paullizer-fed-38-ui-test-inve…
paullizer Oct 22, 2026
3e74ed1
Fix PPTX render_file overflow and strip zero-width URL chars (v0.261.…
paullizer Oct 23, 2026
7091af5
Merge pull request #1830 from paullizer/paullizer-fix-pptx-render-fil…
paullizer Oct 23, 2026
6a5483d
Fix calculator precision and non-finite tool results
paullizer Oct 23, 2026
be747b3
Reduce orchestration retained-result read amplification
paullizer Oct 23, 2026
40c3ad2
Merge pull request #1831 from paullizer/paullizer-bookish-broccoli
paullizer Oct 23, 2026
3220a86
Fix orchestration publication verification after numeric round trips
paullizer Oct 23, 2026
f7c7c13
Make workflows durable by default and keep legacy upgrade option
paullizer Oct 23, 2026
f998c76
Merge pull request #1832 from paullizer/paullizer-orchestration-failu…
paullizer Oct 23, 2026
35f99f8
Merge current base and reconcile Cosmos publication boundary evidence
paullizer Oct 23, 2026
56854a3
Merge pull request #1834 from microsoft/paullizer-durable-workflows-b…
paullizer Oct 23, 2026
c9d942d
Merge pull request #1833 from microsoft/paullizer-orchestration-failu…
paullizer Oct 23, 2026
7efabcf
Add model-assisted workflow and orchestration completeness checks
paullizer Oct 23, 2026
29ac7d4
Merge current base and reconcile completeness integration
paullizer Oct 23, 2026
4ab75b0
Add conversation references and queued AI handoffs (#1835)
paullizer Oct 23, 2026
c1582ca
Merge origin/paullizer-react-v2-ui and reconcile Cosmos boundaries
paullizer Oct 23, 2026
55f9c4c
Merge pull request #1836 from microsoft/paullizer-workflow-failure-in…
paullizer Oct 23, 2026
1937c09
Merge origin/paullizer-react-v2-ui and reconcile Cosmos boundaries
paullizer Oct 23, 2026
6ef4ad5
Merge pull request #1837 from microsoft/paullizer-conversation-refere…
paullizer Oct 23, 2026
2f50e2d
Fix orchestration completeness verification, unfound source coverage,…
paullizer Oct 26, 2026
034a0ba
Merge pull request #1840 from paullizer/paullizer-orchestration-verif…
paullizer Oct 26, 2026
75f1241
Handle unfound source info as complete answer with page coverage
paullizer Oct 26, 2026
884adb0
Merge origin/paullizer-react-v2-ui into paullizer-orchestrator-unfoun…
paullizer Oct 26, 2026
1911c8d
Merge pull request #1841 from microsoft/paullizer-orchestrator-unfoun…
paullizer Oct 27, 2026
964b6e5
Improve V2 voice dictation speed, progressive UX, and Ask AI voice input
paullizer Oct 27, 2026
b3668ef
Merge pull request #1842 from microsoft/paullizer-v2-voice-dictation-…
paullizer Oct 27, 2026
521d9fe
Fix conversation reference state in chat streaming
paullizer Oct 27, 2026
bb6edb2
Merge pull request #1843 from paullizer/paullizer-document-chat-failure
paullizer Oct 27, 2026
115af97
Add chat OpenAI timeouts, stream disconnect cancellation, and worker …
paullizer Oct 27, 2026
11daaaa
Merge pull request #1844 from microsoft/paullizer-chat-openai-timeout…
paullizer Oct 27, 2026
5cae5cb
fix state data
paullizer Oct 27, 2026
6e259cd
Update architecture.vsdx
paullizer Oct 27, 2026
e5fa88d
updated acr build
paullizer Oct 27, 2026
91065d6
Add Word document review comment extraction (#1850)
paullizer Oct 27, 2026
f08723d
Add V2 Responses API selection and grounded evidence status
paullizer Oct 27, 2026
1839a33
Remove unused imports in functions_content.py
paullizer Oct 27, 2026
9d33625
Clarify and bound Responses cancellation regression
paullizer Oct 27, 2026
f7eca33
Merge current React V2 base into model compatibility branch
paullizer Oct 27, 2026
eb54def
Merge pull request #1852 from paullizer/paullizer-customer-model-comp…
paullizer Oct 28, 2026
63c2bd1
Merge pull request #1851 from microsoft/paullizer-word-document-comme…
paullizer Oct 28, 2026
36a2bbe
Add PDF and Office document accessibility, tag-tree, and comment extr…
paullizer Oct 29, 2026
77a6d8e
Address CodeQL empty-except and unused-import review alerts
paullizer Oct 29, 2026
295a6e1
Merge pull request #1853 from microsoft/paullizer-document-accessibil…
paullizer Oct 29, 2026
34e8936
Add document formatting/style extraction and accessibility report action
paullizer Oct 29, 2026
ee53d20
Fix CodeQL alerts and Cosmos boundary module hash for style extraction
paullizer Oct 29, 2026
b5545e1
Fix global model connection edits and legacy custom recovery
paullizer Oct 29, 2026
bc1c7a7
Merge pull request #1854 from paullizer/paullizer-document-accessibil…
paullizer Oct 29, 2026
45a9c0c
Restore mixed-source chat excerpts, default system prompt, bracketed …
paullizer Oct 29, 2026
169d9bf
Merge pull request #1856 from paullizer/paullizer-model-endpoint-fixes
paullizer Oct 29, 2026
acf96e0
Merge pull request #1857 from microsoft/paullizer-retrieval-and-citat…
paullizer Oct 29, 2026
a3a9cb7
Fix V2 Admin Settings extraction and vision model saves
paullizer Oct 30, 2026
2d35eff
Port Development parity features and fixes to React V2 (v0.261.393)
paullizer Oct 30, 2026
d83783f
Merge pull request #1864 from paullizer/paullizer-extraction-model-se…
paullizer Oct 30, 2026
ccbcd52
Address CodeQL empty-except alerts in functions_tabular_model_diagnos…
paullizer Oct 30, 2026
e91836c
Merge pull request #1865 from microsoft/paullizer-dev-parity-react-v2
paullizer Oct 30, 2026
09c6517
fix for acr build
paullizer Nov 2, 2026
71e69bf
Remove generic agent action notice
paullizer Nov 3, 2026
96891a8
Merge pull request #1867 from paullizer/paullizer-remove-agent-select…
paullizer Nov 3, 2026
ce8dd4f
Add search to V2 chat model, agent, and prompt pickers
paullizer Nov 3, 2026
b0b6930
Merge pull request #1868 from paullizer/paullizer-v2-picker-search
paullizer Nov 3, 2026
ffbd352
Add workspace sidebar document picker for v2 chat
paullizer Nov 3, 2026
fe0524b
Merge latest v2 UI base and preserve picker integrations
paullizer Nov 3, 2026
bafa79c
Fix missing chat storage containers and add admin repair
paullizer Nov 3, 2026
0f79c18
Merge pull request #1871 from paullizer/paullizer-chat-analysis-failure
paullizer Nov 3, 2026
f08cd38
Fix Cosmos index maintenance partition-key preservation
paullizer Nov 3, 2026
7612646
Merge pull request #1872 from paullizer/paullizer-missing-indexes-fai…
paullizer Nov 3, 2026
04bdbf5
Merge latest v2 UI base with storage container repair
paullizer Nov 3, 2026
3f3bd3e
Merge latest base with Cosmos index maintenance fixes
paullizer Nov 3, 2026
f23d8f4
Fix V2 Speech resource ID settings saves
paullizer Nov 3, 2026
d06675e
Merge pull request #1870 from microsoft/paullizer-document-picker-con…
paullizer Nov 3, 2026
9f93c99
Merge pull request #1873 from paullizer/paullizer-v2-speech-save-fix
paullizer Nov 3, 2026
4183935
Fix Analyze observation identity and retained-result inspection
paullizer Nov 4, 2026
13db876
Merge pull request #1874 from microsoft/paullizer-orchestration-parti…
paullizer Nov 4, 2026
a5fe907
Fix contract regressions and prepare CI validation
paullizer Nov 4, 2026
36c3ded
Record verified staging access and remaining CI prerequisites
paullizer Nov 4, 2026
3859660
Handle orchestration information gaps without failing narrative outputs
paullizer Nov 4, 2026
8280a41
Update CI activation status after repository access restoration
paullizer Nov 4, 2026
f263fa8
Clarify isolated verification branch publication
paullizer Nov 4, 2026
9062f42
Record successful Linux contracts and separate dependency backlog
paullizer Nov 4, 2026
974f606
Add native Excel metadata and accessibility evidence
paullizer Nov 4, 2026
5f22edb
Merge pull request #1875 from paullizer/paullizer-orchestration-outpu…
paullizer Nov 4, 2026
0ee8893
Merge pull request #1876 from paullizer/paullizer-excel-metadata-support
paullizer Nov 4, 2026
0568a2f
Merge current V2 base for CI remediation
paullizer Nov 4, 2026
98e1d8c
Fix admin image and Key Vault connection test results
paullizer Nov 4, 2026
15032fb
Review current Cosmos owners and configure isolated staging CI
paullizer Nov 4, 2026
f50ac89
Record approved staging setup and renewed publication blocker
paullizer Nov 4, 2026
ff2ee01
Record passing current-base Windows contract gate
paullizer Nov 4, 2026
0583bce
docs: illustrate capabilities and repair documentation links
paullizer Nov 4, 2026
fa3a416
Preserve admin diagnostic subprocess timeout evidence
paullizer Nov 4, 2026
c7394f7
Fix document counts and metadata warnings
paullizer Nov 4, 2026
e3e997b
Document verified staging identity fixes and remaining consent gates
paullizer Nov 4, 2026
b728b13
Merge pull request #1878 from microsoft/paullizer-customer-capabiliti…
paullizer Nov 4, 2026
9b4db5f
Capture acknowledged chunk deletions before cleanup
paullizer Nov 4, 2026
cf44ced
Fix v2 document source discovery container import
paullizer Nov 4, 2026
54843d0
Merge pull request #1883 from paullizer/paullizer-document-sources-fa…
paullizer Nov 4, 2026
c905edf
Merge latest paullizer-react-v2-ui and resolve version conflict
paullizer Nov 4, 2026
29e8243
Merge current V2 base to resolve version conflict
paullizer Nov 4, 2026
6cfaa74
Merge pull request #1880 from paullizer/paullizer-admin-test-button-f…
paullizer Nov 4, 2026
83acf5c
Merge pull request #1881 from paullizer/paullizer-document-counts-and…
paullizer Nov 4, 2026
b5c0014
Harden staging smoke onboarding and require real model replies
paullizer Nov 4, 2026
d341666
Consolidate Dependabot updates for React V2
paullizer Nov 5, 2026
343dabf
Merge current V2 base for final CI validation
paullizer Nov 5, 2026
05bc879
Merge pull request #1885 from paullizer/paullizer-consolidated-depend…
paullizer Nov 5, 2026
9301008
Merge latest React V2 base into PR check remediation
paullizer Nov 5, 2026
b6c1c8a
Merge pull request #1877 from microsoft/paullizer-pr-check-remediation
paullizer Nov 5, 2026
d20c143
Restore DAI-first document source discovery
paullizer Nov 5, 2026
07e7412
Merge pull request #1886 from paullizer/paullizer-document-sources-fa…
paullizer Nov 5, 2026
0a2e368
Add Web IQ discovery and cloud-aware optional deployment
paullizer Nov 5, 2026
98e0134
Merge pull request #1888 from paullizer/paullizer-web-iq-deployment
paullizer Nov 5, 2026
efb89d3
Fix V2 conversation menu layout and clipping
paullizer Nov 5, 2026
860c27c
Merge pull request #1889 from paullizer/paullizer-conversation-menu
paullizer Nov 5, 2026
3d20626
Use document access index across V2 discovery and search
paullizer Nov 5, 2026
0fb76cd
Fix Excel comment evidence and add table-aware inspection
paullizer Nov 5, 2026
c77d3e1
Merge latest base into Excel inspection
paullizer Nov 5, 2026
54435df
Merge latest React V2 base into V2 index coverage
paullizer Nov 5, 2026
513be9d
Merge pull request #1890 from microsoft/paullizer-v2-index-coverage
paullizer Nov 5, 2026
1bf618a
Merge document-index base updates into Excel inspection
paullizer Nov 5, 2026
07cc12b
Fix Excel inspection import bindings
paullizer Nov 5, 2026
b0a3586
Merge pull request #1891 from microsoft/paullizer-excel-comment-inspe…
paullizer Nov 5, 2026
32353e1
Add automatic Foundry routing and Microsoft MAI support
paullizer Nov 5, 2026
c7ecc2f
Merge latest React V2 base into Microsoft AI connections
paullizer Nov 5, 2026
268bfa8
Merge pull request #1892 from microsoft/paullizer-microsoft-ai-connec…
paullizer Nov 5, 2026
0d0b74b
Add guided questions and safe local-agent continuations
paullizer Nov 5, 2026
8f5fa75
Fix question recovery response tuple consistency
paullizer Nov 6, 2026
bc3d258
Merge pull request #1894 from paullizer/paullizer-guided-agent-questions
paullizer Nov 6, 2026
946fcc9
Fix selected-document orchestration planning recovery
paullizer Nov 6, 2026
5f20d84
Merge latest React V2 base and preserve document planning recovery
paullizer Nov 6, 2026
a7c2954
Merge pull request #1895 from microsoft/paullizer-orchestrated-image-…
paullizer Nov 6, 2026
d71501f
Fix V2 conversation attachment isolation
paullizer Nov 6, 2026
22629d2
Merge current React V2 base into attachment isolation
paullizer Nov 6, 2026
78595f7
Merge pull request #1896 from microsoft/paullizer-conversation-attach…
paullizer Nov 6, 2026
bec8302
Fix durable orchestration planning and turn recovery
paullizer Nov 6, 2026
87495e6
Merge latest React V2 base into orchestration persistence
paullizer Nov 6, 2026
86892d0
Merge pull request #1897 from paullizer/paullizer-orchestrated-chat-p…
paullizer Nov 6, 2026
dbe6951
Improve orchestration activity and semantic answer checking
paullizer Nov 6, 2026
0452e9c
Merge pull request #1899 from paullizer/paullizer-chat-orchestration-…
paullizer Nov 6, 2026
3f4186f
Fix orchestration progress, native workbook citations, and cleanup
paullizer Nov 6, 2026
a78255a
Merge pull request #1900 from microsoft/paullizer-special-broccoli
paullizer Nov 6, 2026
8b41be5
Fix orchestration review contracts and context-only recovery
paullizer Nov 6, 2026
3145c0f
Merge current React V2 base and retain review recovery
paullizer Nov 6, 2026
34df840
Merge pull request #1901 from paullizer/paullizer-orchestration-revie…
paullizer Nov 6, 2026
783153c
Merge Development into React V2 integration
paullizer Nov 7, 2026
662b174
Address React V2 integration review comments
paullizer Nov 7, 2026
9ee327e
Fix React V2 static security blockers
paullizer Nov 7, 2026
7b174bf
Execute group agent API requests outside assertions
paullizer Nov 7, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
47 changes: 30 additions & 17 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,43 @@
!application/
!application/single_app/
!application/single_app/**
!application/v2_ui/
!application/v2_ui/**
!docker-customization/
!docker-customization/**
!LICENSE

.git/
.github/
.vscode/
.azure/
artifacts/
deployers/
docs/
functional_tests/
ui_tests/
scripts/
# ACR's archive matcher needs directory rules without trailing slashes.
.git
.github
.vscode
.azure
artifacts
deployers
docs
functional_tests
ui_tests
scripts

**/.env
**/.env.*
**/.venv/
**/venv/
**/__pycache__/
**/.pytest_cache/
**/.venv
**/venv
**/__pycache__
**/.pytest_cache
**/*.pyc
**/*.pyo
**/*.pyd

application/single_app/flask_session/
application/single_app/uploaded_openapi_files/
application/single_app/instance/
application/single_app/flask_session
application/single_app/uploaded_openapi_files

Check warning on line 36 in .dockerignore

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains AI, plugin, agent, or workspace boundary marker. Recommendation%3A Check whether prompts, chat history, uploaded documents, embeddings, citations, settings, or identity can cross a new boundary.
application/single_app/instance
# V2 React UI: never ship host build artifacts into the image context.
# node_modules would overwrite the container's Linux dependency tree with the host's
# platform-specific one, and a stale static/v2 from a local build would survive alongside
# the freshly compiled bundle because COPY merges rather than replaces.
application/v2_ui/node_modules
application/v2_ui/dist
application/single_app/static/v2
application/single_app/native/onenote_extractor/target
application/single_app/native/onenote_extractor/bin
80 changes: 80 additions & 0 deletions .github/instructions/cosmos-response-boundaries.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
applyTo: '**/*.py'
---

# Cosmos document response boundaries

Check warning on line 5 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains secret or sensitive data source marker. Recommendation%3A Pair this source with any nearby network, logging, serialization, or process execution sink before approving.

Point reads and returned create/replace/upsert/patch documents in the application's
pinned Cosmos SDK are `CosmosDict`, a mapping subclass. Query rows and nested JSON

Check warning on line 8 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains secret or sensitive data source marker. Recommendation%3A Pair this source with any nearby network, logging, serialization, or process execution sink before approving.
objects are plain dictionaries. `deepcopy(CosmosDict)` preserves its subclass.

Check warning on line 9 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains secret or sensitive data source marker. Recommendation%3A Pair this source with any nearby network, logging, serialization, or process execution sink before approving.

Storage owners must normalize a point response **before copying or passing it to

Check warning on line 11 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains security control, sanitization, or audit marker. Recommendation%3A Confirm the change does not weaken auth, CSRF, CSP, XSS defenses, settings sanitization, redaction, audit logging, or tests.

Check warning on line 11 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains secret or sensitive data source marker. Recommendation%3A Pair this source with any nearby network, logging, serialization, or process execution sink before approving.
an exact-dictionary/strict JSON contract**, using the bootstrap-free
`normalize_cosmos_document` in `cosmos_document_utils.py`. This helper accepts

Check warning on line 13 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains secret or sensitive data source marker. Recommendation%3A Pair this source with any nearby network, logging, serialization, or process execution sink before approving.
`Mapping`, returns a plain top-level dictionary, preserves all fields and `_etag`,
and rejects invalid types with `TypeError`. Translate invalid responses through
the owner's existing failure path. Never normalize arbitrary iterables into a
document, substitute `{}`, strip ETags, or recursively repair domain values.

Keep domain validators strict. Normalization is not authorization, sanitization,

Check warning on line 19 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains secret or sensitive data source marker. Recommendation%3A Pair this source with any nearby network, logging, serialization, or process execution sink before approving.
metadata stripping, or permission to replay an uncertain external effect. Raw SDK

Check warning on line 20 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains security control, sanitization, or audit marker. Recommendation%3A Confirm the change does not weaken auth, CSRF, CSP, XSS defenses, settings sanitization, redaction, audit logging, or tests.
responses are compatible with mapping consumers; an exposed wrapper by itself is
not a product defect. Prove a strict downstream mismatch with a runtime regression
before changing otherwise-compatible production code.

New Cosmos test containers use the **installed application's SDK `CosmosDict`**

Check warning on line 25 in .github/instructions/cosmos-response-boundaries.instructions.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains secret or sensitive data source marker. Recommendation%3A Pair this source with any nearby network, logging, serialization, or process execution sink before approving.
for point reads and returned write documents by default. Query rows stay plain.
Plain point responses require an explicit compatibility mode. Preserve ETags,
partition routing, conditional updates, failure injection and transaction atomicity.
Domain-level repository mocks do not need to impersonate Cosmos.

## Reviewed inventory and deterministic CI

`functional_tests/cosmos_response_boundaries.json` records point/query calls,
helper references, consumer classifications and evidence by storage function.
It separately inventories Cosmos-shaped inline/shared test containers. It is a
review/change guard, not an interprocedural type checker or proof that every
external service behaves correctly.

After adding/changing a storage boundary or double:

1. Run `python scripts/check_cosmos_response_boundaries.py --refresh`. Changed
implementations become `review-required`; regeneration never approves them.
2. Review every changed entry's actual consumer. Classify it as
`normalized-strict`, `sdk-compatible`, `response-unused`, or `not-cosmos`
with a specific contract and runtime test reference. A `not-cosmos` entry
needs a concrete explanation of the similarly named non-Cosmos API.
3. New/changed Cosmos doubles must use `sdk-default`; `legacy-inline` records
document unchanged pre-migration doubles, not permission to introduce another.
Add a real SDK runtime regression to the inventory's `tests` evidence for
changed owners. The gate automatically executes owner-runtime and SDK-default
evidence, in addition to its core contracts, so references are not merely
checked for existence.
4. Run `python scripts/check_cosmos_response_boundaries.py --run-contracts`.
This checks the inventory and runs its selected suites with
`-p test_support.cosmos_network_guard`. Set `PYTHONPATH` to the application
and functional test directories using the platform's path separator.

Do not copy a classification blindly, point every owner at a utility-only test,
or treat a grep match/count as evidence of a defect. Reviews and references are
invalidated when their implementations disappear or change. Legacy inline
doubles remain explicitly recorded for staged, owner-specific migration.
Unchanged legacy mapping consumers distinguish source review plus SDK API
evidence from owner-runtime SDK coverage. Their source fingerprints form a
closed baseline; a new or changed owner cannot borrow that limited assurance.
Replace its baseline entry with real owner-runtime evidence, rather than
expanding the source-only baseline.
Owner-runtime evidence executes representative real-owner behavior; it does not
claim exhaustive branch coverage for every function in that storage owner.
Existing test-local compatibility seams also have a closed fingerprint baseline.
A new or changed point override needs explicit `fault-injection` runtime evidence,
which the gate executes; it cannot silently retain an old easy response override.

The dedicated `cosmos-response-contract-check.yml` installs the existing pinned
application/test requirements, uses no cloud credentials, and blocks socket/DNS
network access before test collection. New application storage modules and test
doubles cannot bypass it by choosing a new filename.
Tokenizer data needed by the pinned application dependency is warmed during
dependency setup into a workspace-local cache, before network access is blocked.
Tests keep the real context-budget calculation; they do not download assets or
replace budget/token behavior merely to run offline.
12 changes: 12 additions & 0 deletions .github/instructions/location_of_functional_tests.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ if __name__ == "__main__":
sys.exit(0 if success else 1)
```

Under pytest, the `return False` path in this template now fails the test; see **pytest return-False guard (#1572)** below. New checks should use `assert`.

### **Multi-Test Pattern:**
```python
def test_feature_a():
Expand All @@ -119,6 +121,16 @@ if __name__ == "__main__":
sys.exit(0 if success else 1)
```

### pytest return-False guard (#1572)

pytest ignores a test function's return value, so under pytest a template-style test that returned `False` used to be reported as passed. `functional_tests/conftest.py` and `ui_tests/conftest.py` now fail a test that returns exactly `False` under pytest, with a message that names the test and refers to #1572. `True`, `None` and every other value are left alone. `python test_x.py` runs never load a conftest, so they behave as before.

- Write new checks with `assert`. Where a check must still run under `python -O`, raise explicitly, for example `if not saved: raise AssertionError("settings were not saved")`.
- Use `return True`/`return False` only to feed a `__main__` runner's exit code, as in the templates above. Under pytest, the `return False` path now fails the test, which is the intended outcome.
- The guard does not cover `async def` tests or `unittest.TestCase` methods. A script whose `__main__` calls `pytest.main()` loads the conftest, so the guard applies to that run.
- Keep the guard blocks identical. The code between `# --- begin pytest return-False guard (#1572) ---` and `# --- end pytest return-False guard (#1572) ---` must match in both conftest files, and `functional_tests/test_pytest_return_false_guard.py` fails if they differ. Put fixtures for one directory outside the block, and do not add collection hooks to either file.
- A guard failure means the test returned `False` under pytest in that environment; it is not necessarily a product bug. Many older tests need Azure configuration, a running app, or setup that only their `__main__` runner performs, so run those with `python <file>`.

## 🔍 **Test Discovery & Reuse**

### Import Lifecycle and Assertion Safety
Expand Down
71 changes: 65 additions & 6 deletions .github/instructions/xss-prevention.instructions.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
applyTo: '**/*.js, **/*.html, **/*.py'
applyTo: '**/*.js, **/*.html, **/*.py, **/*.ts, **/*.tsx, **/*.jsx, **/*.mjs'
---

# Security: XSS Prevention and Browser Rendering
Expand Down Expand Up @@ -110,24 +110,83 @@ When a static HTML shell is genuinely simpler, it is acceptable only if:
- It contains no `${...}` interpolation or dynamic concatenation
- Untrusted values are populated afterward with `textContent`, `setAttribute(...)`, or `dataset`

## React and TypeScript (V2 UI)

The V2 UI in `application/v2_ui/src` is React 18 with TypeScript. React removes most string-to-HTML risk, but not all of it, so the same trust-boundary thinking applies.

### What React 18 escapes

- Text rendered as JSX children, such as `<p>{message.text}</p>`, is inserted as text, never parsed as HTML.
- String values in attributes are escaped, so a quote in a value cannot break out of the attribute.

### What React 18 does not protect

- **URL-bearing props.** React 18 only logs a development warning for a `javascript:` URL in `href`, `src`, `action` or `formAction`; React 19 blocks it, React 18 does not. Treat these props, plus `srcDoc`, `xlinkHref` and router `to` on `Link`, `NavLink` and `Navigate`, as sinks.
- **`dangerouslySetInnerHTML`.** The value is parsed as HTML with no escaping.
- **Refs and DOM APIs.** `ref.current.innerHTML`, `outerHTML`, `insertAdjacentHTML`, `document.write`, `createContextualFragment`, and `DOMParser` output appended to the page all bypass React.
- **DOM URL properties.** `element.href`, `element.src`, `form.action`, `frame.srcdoc` and `setAttribute('href', ...)` are not React props, so React never inspects them.
- **Navigation.** `window.open(url)`, `location.href = url`, `location = url`, and `location.assign(url)` or `location.replace(url)` can run a `javascript:` URL with the page's origin.
- **String-to-code APIs.** `eval`, `new Function`, and `setTimeout`/`setInterval` with a string argument.

### Required patterns

- Render untrusted text as JSX children. Never route text through `dangerouslySetInnerHTML` to get formatting.
- Use `dangerouslySetInnerHTML` only with the output of `DOMPurify.sanitize(...)`, either inline or through a clearly named `const`. Rich renderers must also run their own safe mode first: KaTeX with `trust: false`, Mermaid with `securityLevel: 'strict'` and `htmlLabels: false`.
- Give every dynamic URL prop or navigation value one of these safe sources:
- a literal, or a same-origin path built from a literal prefix and `encodeURIComponent(...)` segments;
- a reviewed URL builder (the lists are `TS_SAME_ORIGIN_URL_BUILDERS` and `TS_HREF_URL_BUILDERS` in `scripts/check_xss_sinks.py`; add a builder there only after reviewing that it cannot return a script URL);
- a `sanitize*Url`, `normalize*Url` or `safe*Url` helper;
- a guard such as `isSafeOriginHref(url)` or an `http(s)` scheme test, in the same expression or in an enclosing `if` or early return.
- `iframe`, `script`, `embed`, `object` and worker sources are stricter. A pinned `https://host/` prefix or a same-origin path with encoded segments is fine; an arbitrary host or `//` is not.
- Keep `react-markdown` raw HTML off. Do not add `rehype-raw`, `allowDangerousHtml: true`, or a `urlTransform` that returns the URL unchanged; keep the default URL transform.
- `<img src>` and media sources are not script sinks, so the checker does not flag them. Still pass them through the same helpers when the value comes from a user.

### React examples

```tsx
<p>{message.text}</p>
<a href={isSafeOriginHref(link) ? link : undefined}>Open</a>
<Link to={`/workspace/${encodeURIComponent(workspaceId)}`}>Open workspace</Link>
<div dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(renderedSvg) }} />
```

Unsafe, because nothing proves the value's scheme or origin:

```tsx
<a href={message.link}>Open</a>
<div dangerouslySetInnerHTML={{ __html: modelOutput }} />
window.location.href = searchParams.get('next') ?? '/';
```

### Suppressions in TypeScript

In `.ts`, `.tsx`, `.jsx` and `.mjs` files the suppression token counts only when a reason follows it on the same line. Put it within four lines above the finding:

```tsx
{/* xss-check: ignore reviewed: value is restricted to https URLs before it is stored */}
<a href={agent.homepage}>Homepage</a>
```

A bare token does not suppress anything; the finding stays and says the reason is missing.

## PR Review Checklist

For any JavaScript, HTML, or Python change that affects browser rendering:
For any JavaScript, TypeScript, HTML, or Python change that affects browser rendering:

1. Identify the trust boundary for every value that reaches the browser.
2. Prefer DOM node creation and `textContent` for untrusted text.
3. Normalize dynamic URLs before assigning them to clickable or loadable attributes.
2. Prefer DOM node creation and `textContent` for untrusted text; in React, render it as JSX children.
3. Normalize dynamic URLs before assigning them to clickable or loadable attributes, React props, or navigation calls.
4. If HTML rendering is required, document the sanitizer boundary explicitly.
5. Add or update a regression test when untrusted data reaches a browser-rendering path.

## Workflow Guardrail

This repository includes a Development PR check in `.github/workflows/xss-sink-check.yml` backed by `scripts/check_xss_sinks.py`.
This repository includes a PR check in `.github/workflows/xss-sink-check.yml` backed by `scripts/check_xss_sinks.py`. It runs on PRs into `Development` and, until the V2 branch merges into `Development`, on PRs into `paullizer-react-v2-ui`. It checks the added lines of changed `.js`, `.html`, `.py`, `.ts`, `.tsx`, `.jsx` and `.mjs` files under `application/`, and skips vendored browser assets such as `application/v2_ui/public/vendor/`. `.github/workflows/xss-full-scan.yml` runs the same checker over whole files on demand.

If a reviewed exception is unavoidable, add the suppression token below near the specific line and include a justification comment:

```text
xss-check: ignore
```

Use that escape hatch rarely. It is for reviewed legacy exceptions, not for normal rendering code.
Use that escape hatch rarely. It is for reviewed legacy exceptions, not for normal rendering code. In TypeScript-family files the justification must follow the token on the same line.
5 changes: 3 additions & 2 deletions .github/prompts/prepare-for-pull-request.prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,12 @@ When Python route files changed:
`python functional_tests/route_tests/test_route_unauthenticated_policy_contract.py`
`python functional_tests/route_tests/test_route_policy_test_coverage.py`

When JavaScript, HTML, or Python browser-rendering surfaces changed:
When JavaScript, TypeScript, HTML, or Python browser-rendering surfaces changed:

- Run `python scripts/check_xss_sinks.py` against changed `application/**/*.js`, `application/**/*.html`, and `application/**/*.py` files.
- Run `python scripts/check_xss_sinks.py` against changed `application/**/*.js`, `application/**/*.html`, `application/**/*.py`, `application/**/*.ts`, `application/**/*.tsx`, `application/**/*.jsx`, and `application/**/*.mjs` files.
- If validating only committed changes, prefer changed-line mode:
`python scripts/check_xss_sinks.py --base-sha <remote>/Development --head-sha HEAD <files>`.
For a PR into the temporary V2 branch `paullizer-react-v2-ui`, use `<remote>/paullizer-react-v2-ui` as the base instead.
- If the working tree has uncommitted changes, use `--full-file` for those files because they are not represented by `HEAD`.

When Python authorization-sensitive surfaces changed:
Expand Down
Loading
Loading