Skip to content

Adds a config file defining our cargo feed for our Rust crates, for compliance purposes#18

Open
PankajBhojwani wants to merge 1 commit into
mainfrom
pabhojwa/intelligent/cargo_feed
Open

Adds a config file defining our cargo feed for our Rust crates, for compliance purposes#18
PankajBhojwani wants to merge 1 commit into
mainfrom
pabhojwa/intelligent/cargo_feed

Conversation

@PankajBhojwani

Copy link
Copy Markdown
Contributor

Summary of the Pull Request

As part of https://microsoft.visualstudio.com/OS/_workitems/edit/62007366, we have to make sure our Rust crates go through our custom feed. This PR adds the config file necessary to make that happen (the custom feed has already been set up here)

Validation Steps Performed

Able to build wta locally with the command cargo build --config .cargo/intelligent_terminal_feed.toml (FYI msrustup might be required to make sure this works for you)

PR Checklist

  • Closes #xxx
  • Tests added/passed
  • Documentation updated
    • If checked, please file a pull request on our docs repo and link it here: #xxx
  • Schema updated (if necessary)

Copilot AI review requested due to automatic review settings May 19, 2026 18:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a Cargo configuration file intended to route Rust crate resolution through the organization’s Azure Artifacts Cargo feed (for compliance).

Changes:

  • Adds a .cargo TOML config defining the Azure Artifacts registry index.
  • Configures crates-io to be replaced with the custom registry.
  • Sets global credential providers for authenticating to the feed.


[registries.intelligent_terminal_public_packages]
index = "sparse+https://microsoft.pkgs.visualstudio.com/Dart/_packaging/intelligent_terminal_public_packages/Cargo/index/"

Comment on lines +10 to +11
[source.crates-io]
replace-with = "intelligent_terminal_public_packages" No newline at end of file
Comment on lines +1 to +5
global-credential-providers = [
"artifacts-cargo-credprovider",
"cargo:token",
"cargo:wincred",
]
@@ -0,0 +1,11 @@
global-credential-providers = [
@@ -0,0 +1,11 @@
global-credential-providers = [
"artifacts-cargo-credprovider",
global-credential-providers = [
"artifacts-cargo-credprovider",
"cargo:token",
"cargo:wincred",
@github-actions

Copy link
Copy Markdown

@check-spelling-bot Report

⚠️ Dictionary not found

Problems were encountered retrieving check dictionaries (cspell:cpp/src/compiler-gcc.txt cspell:cpp/src/stdlib-c.txt cspell:cpp/src/people.txt cspell:dart/src/dart.txt cspell:gaming-terms/dict/gaming-terms.txt cspell:django/dict/django.txt cspell:java/src/java-terms.txt cspell:swift/src/swift.txt cspell:fullstack/dict/fullstack.txt cspell:public-licenses/src/generated/public-licenses.txt cspell:cpp/src/stdlib-cmath.txt cspell:clojure/src/clojure.txt cspell:node/dict/node.txt cspell:haskell/dict/haskell.txt cspell:scala/dict/scala.txt cspell:software-terms/dict/softwareTerms.txt cspell:lua/dict/lua.txt cspell:software-terms/dict/webServices.txt cspell:golang/dict/go.txt cspell:php/dict/php.txt cspell:r/src/r.txt cspell:latex/dict/latex.txt cspell:sql/src/sql.txt cspell:cpp/src/stdlib-cerrno.txt cspell:cpp/src/template-strings.txt cspell:python/src/python/python-lib.txt cspell:typescript/dict/typescript.txt cspell:ruby/dict/ruby.txt cspell:monkeyc/src/monkeyc_keywords.txt cspell:ada/dict/ada.txt cspell:npm/dict/npm.txt cspell:cpp/src/stdlib-cpp.txt cspell:cpp/src/ecosystem.txt cspell:css/dict/css.txt cspell:docker/src/docker-words.txt cspell:cpp/src/compiler-msvc.txt cspell:cpp/src/lang-keywords.txt cspell:html/dict/html.txt cspell:public-licenses/src/additional-licenses.txt cspell:svelte/dict/svelte.txt cspell:cpp/src/lang-jargon.txt cspell:elixir/dict/elixir.txt cspell:k8s/dict/k8s.txt cspell:shell/dict/shell-all-words.txt cspell:powershell/dict/powershell.txt cspell:dotnet/dict/dotnet.txt cspell:python/src/common/extra.txt cspell:rust/dict/rust.txt cspell:python/src/python/python.txt cspell:redis/dict/redis.txt cspell:java/src/java.txt cspell:python/src/additional_words.txt cspell:sql/src/tsql.txt cspell:cpp/src/compiler-clang-attributes.txt).

⚠️ For more information, see check-dictionary-not-found.

🔴 Please review

See the 📂 files view, the 📜action log, 👼 SARIF report, or 📝 job summary for details.

Unrecognized words (364)
adbea
Agendiga
agenta
agente
agentea
Agentearekin
agentem
agenten
Agentga
agenti
agentic
Agentni
agento
agentom
agentovi
agentti
Agenttia
agenttiin
agentul
Agentverbinding
Agjenti
agjentin
Aldatu
all'agente
Allillanchu
allinchu
almashtirish
amalga
Anslutningen
Arac
arget
asiant
asid
askuser
Atharraich
Athraigh
atopou
atrasts
atvyk
aurkitu
axente
azmcp
bei
Bem
Benvido
benvinguda
bestpractices
Bienvenido
bij
ble
blev
bspace
bulunamad
Byt
Bytt
caac
CACHEDIR
Cambiar
Canvia
capturep
cbe
cdfabe
ceangal
chanfuwyd
cheangal
checkmarks
chpwd
Chuy
chysylltu
Cim
claude
CLAUDECODE
clippy
clis
cmdkey
conectar
Conectarea
connectar
Connessione
credprovider
Croeso
crossterm
customises
CWDs
czenie
DACLs
dans
datang
deach
demotable
DFX
diffed
ditemui
ditemukan
donem
dotent
doy
drx
dtx
dzam
eef
egin
ejen
ekki
eku
encontrado
entrancy
ents
entu
epnout
ession
etorri
extened
Falha
falliet
fannst
fehlgeschlagen
ffi
Figma
focusp
fonnt
foob
fooba
footgun
Forbindelsen
formedness
fost
fundet
funnen
funnet
gagal
Ganti
gefunden
geldiniz
gescheitert
gevind
gevonden
Ghostty
githubnext
gjet
gpt
greenfield
greppable
haikus
Hinnant
hittades
hononga
Huri
Ibdel
ikke
ikkje
ilo
inputbox
installable
inte
introuvable
IOCP
ipfs
izveidot
kaitao
kelibsiz
keyspace
killp
kitea
kok
Koneksi
koneksyon
konektatzeak
konnessjoni
Laipni
leitud
Lidhja
llm
lmad
lmisiniz
loomine
lorg
lrx
LSBs
lsp
lsw
ltx
mai
Maligayang
MBM
mcp
meproj
Methwyd
misluk
mislukkast
mislukt
mislykkedes
mislyktes
misslyckades
MMdd
mojibake
mpsc
MRT
mtimes
myproj
Nabigo
nafter
nahanap
najti
ncwd
Ndrysho
neach
nem
Nepavyko
nepoda
nepodarilo
nerastas
Newid
neww
nezda
nie
niet
nije
NOAGGREGATION
noname
nopath
normaliser
normalises
noshortcuts
notacommand
nrx
nstabx
nsummary
ntx
nuk
nurjus
Nushell
obra
Oids
oldu
Ongi
oobe
openai
oshmadi
pagdating
Pakeisti
Palitan
parallelizable
pogut
Povezava
Povezivanje
Prereq
Pripojenie
PRIs
prisijungti
proactively
Promeni
Promijeni
prona
prx
psobject
ptx
pudo
puido
pytest
qdk
qqqqq
quz
rahua
Rasterize
ratatui
recognises
regen
reparses
replacen
reprioritized
respawning
respawns
retryable
riuscita
rmcp
rrx
rtx
rustc
RUSTFLAGS
rustup
Sambungan
savienojumu
Schimb
Selamat
serde
sideload
SIGKILLs
signtool
sikertelen
Skipta
splitn
splitw
Spremeni
submittable
Sveiki
synthesises
t'ikray
t'inkiynin
tarikusqachu
taskkill
Tenging
Tere
Terminal'e
Terminali
Terminaliin
Tervetuloa
Theip
THH
tidak
Tilkoblingen
Tilkoplinga
tir
tokio
toolpath
topilmadi
trn
trobat
trovato
Tukar
tulemast
uat
ulanish
unrecognised
ursuz
usize
uspela
uspelo
uspjelo
Vaheta
Vaihda
vart
vcxprojs
Velkomen
Velkomin
Velkommen
vendored
venit
Verbinding
Verbindung
vindo
vini
Vitajte
Vos
wechseln
Wez
wiesselen
Willkommen
wincred
wisselen
Witamy
wlen
worktree
wta
wtai
wtcli
xush
yeelam
Yhteys
ZDOTDIR
zlyhalo
znaleziono
zum
zzzzz
These words are not needed and should be removed Bspace Ccc cplusplus ctl Debian dotnet drv endptr evt Fullwidth gitlab hdr idl IME inbox intelligentterminal Ioctl KOK KVM lbl lld lsb NONINFRINGEMENT notif oss outdir pri prioritization PSobject QUZ rcv segfault Signtool sourced SWP Tbl testname transitioning unk unparseable Virt VMs webpage websites xsi

Some files were automatically ignored 🙈

These sample patterns would exclude them:

^\.dotnet\/\.dotnet\/TelemetryStorageService/
^\Q.dotnet/.dotnet/.workloadAdvertisingManifestSentinel10.0.200\E$
^\Q.dotnet/.dotnet/10.0.201.aspNetCertificateSentinel\E$
^\Q.dotnet/.dotnet/10.0.201.dotnetFirstUseSentinel\E$
^\Q.dotnet/.dotnet/10.0.201.toolpath.sentinel\E$
^\Qinstaller/bootstrap/target/.rustc_info.json\E$
^copilot-version\.err$
^copilot-version\.out$

You should consider excluding directory paths (e.g. (?:^|/)vendor/), filenames (e.g. (?:^|/)yarn\.lock$), or file extensions (e.g. \.gz$)

You should consider adding them to:

.github/actions/spelling/excludes.txt

File matching is via Perl regular expressions.

To check these files, more of their words need to be in the dictionary than not. You can use patterns.txt to exclude portions, add items to the dictionary (e.g. by adding them to allow.txt), or fix typos.

To accept these unrecognized words as correct, update file exclusions, and remove the previously acknowledged and now absent words, you could run the following commands

... in a clone of the git@github.com:microsoft/intelligent-terminal.git repository
on the pabhojwa/intelligent/cargo_feed branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/cfb6f7e75bbfc89c71eaa30366d0c166f1bd9c8c/apply.pl' |
perl - 'https://github.com/microsoft/intelligent-terminal/actions/runs/26115811962/attempts/1' &&
git commit -m 'Update check-spelling metadata'
Available 📚 dictionaries could cover words (expected and unrecognized) not in the 📘 dictionary

This includes both expected items (2048) from .github/actions/spelling/expect/alphabet.txt .github/actions/spelling/expect/expect.txt .github/actions/spelling/expect/web.txt and unrecognized words (364)

Dictionary Entries Covers Uniquely
cspell:csharp/csharp.txt 32 1 1
cspell:aws/aws.txt 232 1 1
cspell:fonts/fonts.txt 536 1 1

Consider adding to the extra_dictionaries array (in the .github/actions/spelling/config.json file):

    "cspell:csharp/csharp.txt",
    "cspell:aws/aws.txt",
    "cspell:fonts/fonts.txt",

To stop checking additional dictionaries, put (in the .github/actions/spelling/config.json file):

"check_extra_dictionaries": []
Forbidden patterns 🙅 (14)

In order to address this, you could change the content to not match the forbidden patterns (comments before forbidden patterns may help explain why they're forbidden), add patterns for acceptable instances, or adjust the forbidden patterns themselves.

These forbidden patterns matched content:

Homoglyph (Turkish) should be i
[ı](?=[A-Za-z]{2,})|(?<=[A-Za-z]{2})[ı]|(?<=[A-Za-z])[ı](?=[A-Za-z])
Should be nonexistent
\b[Nn]o[nt][- ]existent\b
Should be a
\san (?=(?:[b-dgjkpqtvwz]|f(?!f|d\b)|h(?!onest|onou?r|our|s[lv]|tml|ttp|ref)|l(?!cov)|n(?!ginx|grok|pm)|r(?!c)|s(?!s[ho]|log|vg))[a-z]|x(?!\b|[-\d]|ml))
Should be an
(?<!(?:\b[Ii]|git) )(?<![-.])(?<!\d\s?)\bam\b(?!/pm|[:")]| I\b)
Should be ; otherwise or . Otherwise

https://study.com/learn/lesson/otherwise-in-a-sentence.html

, [Oo]therwise\b
Should probably be Otherwise,
(?<=\. )Otherwise\s
Complete sentences in parentheticals should not have a space before the period.
\s\.\)(?!.*\}\})
Should be an
(?<=\s)a(?= (?:a(?!nd\s|s\s)|e(?!u)|i(?![ns]\s)|o(?!f\b|nc?e)|u(?!\d|biquitous|int|kr|n[ai]|r[ael]|s[aeiu]|short|tf\d*|t_|til|topia|uid|vula|v\b)|y(?!aml|arn|e|ie|oga|oung|y)))
Should be set up (setup is a noun / set up is a verb)
\b[Ss]etup(?= (?:an?|the|to)\b)
Should be preexisting
[Pp]re[- ]existing
Should be reentrancy
[Rr]e[- ]entrancy
Should be reentrant
[Rr]e[- ]entrant
Should be whether or not ...
(?i)\b(?:whe|ra)ther(?:\s\w+)+ or not\.
Should be WinGet
\bWinget\b

Pattern suggestions ✂️ (1)

You could add these patterns to .github/actions/spelling/patterns/fcb4353cd3066bf874078110f5a779d636b81a19.txt:

# Automatically suggested patterns

# hit-count: 1 file-count: 1
# python
\b(?i)py(?!gment|gmy|lon|ramid|ro|th)(?=[a-z]{2,})

Alternatively, if a pattern suggestion doesn't make sense for this project, add a # to the beginning of the line in the candidates file with the pattern to stop suggesting it.

Errors, Warnings, and Notices ❌ (8)

See the 📂 files view, the 📜action log, 👼 SARIF report, or 📝 job summary for details.

❌ Errors, Warnings, and Notices Count
⚠️ binary-file 6
ℹ️ candidate-pattern 1
⚠️ check-dictionary-not-found 54
❌ check-file-path 209
❌ forbidden-pattern 30
⚠️ noisy-file 7
⚠️ single-line-file 1
⚠️ token-is-substring 3

See ❌ Event descriptions for more information.

✏️ Contributor please read this

By default the command suggestion will generate a file named based on your commit. That's generally ok as long as you add the file to your commit. Someone can reorganize it later.

If the listed items are:

  • ... misspelled, then please correct them instead of using the command.
  • ... names, please add them to .github/actions/spelling/allow/names.txt.
  • ... APIs, you can add them to a file in .github/actions/spelling/allow/.
  • ... just things you're using, please add them to an appropriate file in .github/actions/spelling/expect/.
  • ... tokens you only need in one place and shouldn't generally be used, you can add an item in an appropriate file in .github/actions/spelling/patterns/.

See the README.md in each directory for more information.

🔬 You can test your commits without appending to a PR by creating a new branch with that extra change and pushing it to your fork. The check-spelling action will run in response to your push -- it doesn't require an open pull request. By using such a branch, you can limit the number of typos your peers see you make. 😉

If the flagged items are 🤯 false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

@yeelam-gordon

Copy link
Copy Markdown
Collaborator

@PankajBhojwani , the current yml in CI already handle the following for the requirement:
it generates its own cargo config — job-build-project.yml (lines 214-236) creates .cargo/config.toml at build time pointing to IntelligentTerminal_Cargo on pkgs.dev.azure.com/microsoft/Dart, with CargoAuthenticate@0 handling auth

yeelam-gordon added a commit that referenced this pull request Jun 8, 2026
r4-human-only verifier caught a real semantic bug: the previous
"any comment by us in the last 100" semantic miscounted threads
where Copilot **re-raises** after our reply — last=copilot but the
script saw our older reply and reported "not awaiting" even though
the ball was clearly back in our court.

Fix: count threads where the LAST comment is NOT from the
authenticated user. This is the "ball-in-court" model:
- Copilot/human posts a finding → last=them → awaiting our reply.
- We reply → last=us → ball passes back → not awaiting.
- Copilot re-raises after our reply → last=them again → awaiting.

Empirically verified on yeelam-gordon/ABCSkillTest:
- PR #17 baseline 38/38, after 1 reply-NoResolve r3 showed 38/37
  earlier; current measurement is 37/36 (we resolved 1 thread
  since, matching the math exactly).
- PR #18 (human-only fresh) Mode=human-only correctly reported.
  awaiting=0 in that single-account test setup because the agent's
  gh user is also the human reviewer — an unavoidable identity-
  conflation limitation of the test, NOT a script bug. In real
  production usage the agent's gh user is distinct from the
  reviewer's identity (Copilot bot OR a separate human).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants