[Bug]: `updateProfileRecord` drops the profile's `links` on every update
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 86/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- swift
- Ambito
- backend-api-design
Direzione di ricerca
Leggi UpdateProfileRecord.swift, in particolare le copie dei campi esistenti intorno alle righe 69–77 e l’inizializzatore di ProfileRecord intorno alle righe 189–200. Segui come replace seleziona i valori e come putRecord scrive il profilo. Il lavoro è completato quando l’aggiornamento di un altro campo conserva i links esistenti; esegui i test pertinenti sull’aggiornamento del profilo, se disponibili.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
ATProtoBluesky.updateProfileRecord(profileURI:replace:) reads the existing profile record, rebuilds it as a new AppBskyLexicon.Actor.ProfileRecord, and writes it back with putRecord. The rebuilt record never carries over links, so any update — even one that only changes pinnedPost or labels — removes all of the profile's links (app.bsky.actor.profile#links, the ordered strongRefs to app.bsky.actor.link records).
Reproduction Steps
- Use an account whose
app.bsky.actor.profile/selfrecord has a non-emptylinksarray (e.g. one set from the official Bluesky app). - Call
updateProfileRecord(profileURI:replace:)with any field, e.g.replace: [.pinnedPost(with: someReference)]. - Fetch the profile record again with
getRepositoryRecord, or the profile withgetProfile.
Expected Results
Fields not listed in replace are preserved, including links.
Actual Results
links is removed from the profile record, and getProfile no longer returns any links.
What operating systems did you experience this bug?
macOS
Operating System Version
macOS Golden Gate 27.2
ATProtoKit Version
0.34.1
Additional Context
The app.bsky.actor.link records themselves remain in the repo but are no longer referenced by the profile.
In UpdateProfileRecord.swift, the existing values are copied for every other field (lines 69–77), but links is not, and the ProfileRecord initializer is called without it, so it falls back to its default of nil (lines 189–200):
let profileRecord = AppBskyLexicon.Actor.ProfileRecord(
displayName: newDisplayName,
description: newDescription,
pronouns: newPronouns,
websiteURL: newWebsiteURL,
avatarBlob: newAvatarImage,
bannerBlob: newBannerImage,
labels: newLabels,
joinedViaStarterPack: newJoinedViaStarterPack,
pinnedPost: newPinnedPost,
createdAt: Date()
)
Because putRecord replaces the whole record, the omitted field is deleted.
- Lingua principale
- Swift
- Stelle
- 226
- Fork
- 40
- Merge medio
- 5h 8m
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MasterJ93/ATProtoKit
-
enhancement
Difficoltà 4/5 1-2 giorni Idoneità per principianti 52/100
MasterJ93/ATProtoKit#337 · 3 commenti ·
-
new feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
MasterJ93/ATProtoKit#321 · 1 commento ·
-
new feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 43/100
MasterJ93/ATProtoKit#320 · 1 commento ·
-
new feature
Difficoltà 4/5 1-2 giorni Idoneità per principianti 55/100
MasterJ93/ATProtoKit#316 · 1 commento ·
-
new feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
MasterJ93/ATProtoKit#216 · 1 commento ·
Tutte le issue di MasterJ93/ATProtoKit
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
🎉 Add WoundAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 77/100
jaywcjlove/awesome-mac#4357 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
Bug: on hover a tab's name in Cra stops ~16 pt short of Arc's, with 24 pt of air before the ✕Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
VictorKildahl/cra#243 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
OneBusAway/vehicle-positions#260 ·
I maintainer di solito rispondono entro 1 giorno