🚀 [firebase_ai] Public way to set thoughtSignature on request parts
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 67/100
Línea de trabajo
Start by reading the public part constructors and Part in the firebase_ai package, then check how ChatSession preserves thoughtSignature and how parsePart is exported. Confirm which proposed public API fits the package conventions and add or update focused tests for setting and round-tripping the signature. Done means callers can preserve it across turns without using test-only constructors.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What feature would you like to see?
A public way to set thoughtSignature on the parts of a request.
Gemini 3 models return a thoughtSignature on response parts, and the API expects it back on those parts in later turns, otherwise multi-turn function calling with thinking fails. ChatSession handles this internally, but code that builds Content itself (for example a framework keeping its own message history) has no supported way to do it in firebase_ai 5.1.0:
Partkeeps the signature in a private_thoughtSignature. It can be read back throughtoJson(), but not set.- The public
TextPart,InlineDataPart,FileDataandFunctionCallconstructors passthoughtSignature: null. - Only the
@visibleForTesting.forTestconstructors accept it, andparsePartisn't exported.
We use the .forTest constructors in the Genkit plugin for Firebase AI Logic (genkit_firebase_ai) to round-trip signatures, which works but relies on test-only API that could change in any release.
Any of these would solve it:
- A
thoughtSignaturenamed parameter on the public part constructors (and ideally a publicthoughtSignaturegetter onPart). - Exporting
parsePart, so a part can be rebuilt from the JSON the API returned.
- Lenguaje dominante
- Dart
- Estrellas
- 9.3k
- Forks
- 4.1k
- Merge medio
- 1 d 9 h
- PR fusionados (30 d)
- 69
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de firebase/flutterfire
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
firebase/flutterfire#18918 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
firebase/flutterfire#18908 ·
Los mantenedores suelen responder en 1 día
-
[📚] App Check Windows Support still N/A on ReadmePosiblemente ocupada @Adrianogba la tomó hace 1 día. Abiertogood first issue type: documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 35/100
firebase/flutterfire#18913 ·
Los mantenedores suelen responder en 1 día
-
[📚] Data Connect Windows Support still N/A on ReadmePosiblemente ocupada @Adrianogba la tomó hace 1 día. Abiertogood first issue type: documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 35/100
firebase/flutterfire#18911 ·
Los mantenedores suelen responder en 1 día
-
[📚] Realtime Database Windows Support still N/A on ReadmePosiblemente ocupada @Adrianogba la tomó hace 1 día. Abiertogood first issue type: documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 1/100
firebase/flutterfire#18909 ·
Los mantenedores suelen responder en 1 día
Todos los issues de firebase/flutterfire
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
customerio/customerio-flutter#441 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
jhomlala/betterplayer#1646 ·
Los mantenedores suelen responder en 1 día
-
Feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
amplitude/Amplitude-Flutter#337 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
google-pay/flutter-plugin#343 ·
-
JsonParseNode.getObjectValue returns non-null model on null JSON nodes and duplicates lifecycle hooksPosiblemente ocupada @hardikkaurani la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/kiota-dart#170 ·
Los mantenedores suelen responder en 1 día