Commit 5f2b867
committed
fix(kb): replace stale chunk rows on re-chunk (issue #199)
When users re-chunk a document with different parameters, the old chunk
rows (different config_hash) must be removed. Introduce
`replace_chunks()` in the storage abstraction layer that safely inserts
new rows first then deletes the old generation (crash-safe: worst case
is brief duplicate data, never data loss).
Also:
- Add scope-key whitelist validation to prevent filter injection
- Add concurrency note (last-write-wins) to chunk_document docstring
- Add 4 unit tests for replace_chunks edge cases
- Make separator-vs-default integration test deterministic (tmp_path)
Refs: #1991 parent f03074a commit 5f2b867
5 files changed
Lines changed: 277 additions & 26 deletions
File tree
- src/xagent/core/tools/core/RAG_tools
- chunk
- storage
- tests/core/tools/core/RAG_tools
- chunk
- storage
Lines changed: 23 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
90 | 97 | | |
91 | 98 | | |
92 | 99 | | |
| |||
474 | 481 | | |
475 | 482 | | |
476 | 483 | | |
477 | | - | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
478 | 490 | | |
479 | 491 | | |
480 | 492 | | |
| |||
503 | 515 | | |
504 | 516 | | |
505 | 517 | | |
506 | | - | |
507 | 518 | | |
508 | | - | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
509 | 529 | | |
510 | 530 | | |
511 | 531 | | |
| |||
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
713 | 713 | | |
714 | 714 | | |
715 | 715 | | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
716 | 740 | | |
717 | 741 | | |
718 | 742 | | |
| |||
Lines changed: 62 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1448 | 1448 | | |
1449 | 1449 | | |
1450 | 1450 | | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
1451 | 1513 | | |
1452 | 1514 | | |
1453 | 1515 | | |
| |||
Lines changed: 26 additions & 23 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
810 | 810 | | |
811 | 811 | | |
812 | 812 | | |
813 | | - | |
| 813 | + | |
814 | 814 | | |
815 | 815 | | |
816 | 816 | | |
| |||
852 | 852 | | |
853 | 853 | | |
854 | 854 | | |
855 | | - | |
856 | 855 | | |
857 | 856 | | |
858 | 857 | | |
859 | | - | |
860 | 858 | | |
861 | 859 | | |
862 | 860 | | |
| |||
871 | 869 | | |
872 | 870 | | |
873 | 871 | | |
874 | | - | |
| 872 | + | |
875 | 873 | | |
876 | | - | |
877 | | - | |
878 | | - | |
879 | | - | |
880 | | - | |
881 | | - | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
882 | 877 | | |
883 | 878 | | |
884 | 879 | | |
| |||
934 | 929 | | |
935 | 930 | | |
936 | 931 | | |
937 | | - | |
| 932 | + | |
938 | 933 | | |
939 | | - | |
940 | | - | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
941 | 942 | | |
942 | 943 | | |
943 | | - | |
| 944 | + | |
944 | 945 | | |
945 | 946 | | |
946 | 947 | | |
| |||
953 | 954 | | |
954 | 955 | | |
955 | 956 | | |
| 957 | + | |
956 | 958 | | |
957 | 959 | | |
958 | 960 | | |
959 | 961 | | |
960 | 962 | | |
961 | | - | |
962 | | - | |
| 963 | + | |
| 964 | + | |
963 | 965 | | |
964 | 966 | | |
965 | 967 | | |
| |||
968 | 970 | | |
969 | 971 | | |
970 | 972 | | |
971 | | - | |
972 | | - | |
973 | | - | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
974 | 976 | | |
975 | 977 | | |
976 | 978 | | |
977 | 979 | | |
978 | | - | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
979 | 983 | | |
980 | 984 | | |
981 | 985 | | |
| |||
990 | 994 | | |
991 | 995 | | |
992 | 996 | | |
993 | | - | |
994 | | - | |
995 | | - | |
| 997 | + | |
| 998 | + | |
996 | 999 | | |
997 | 1000 | | |
998 | 1001 | | |
| |||
0 commit comments