Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
f2cd523
refactor: rename project package to himarket
learnerjohn Dec 10, 2025
190a3af
feat: support Higress gateway IP for Model and MCP
learnerjohn Dec 10, 2025
834cbfd
fix: resolve issue where Model cannot use MCP in Higress
learnerjohn Dec 10, 2025
570869e
docs: add user guide and update README with PR guidelines
learnerjohn Dec 10, 2025
750848d
Merge remote-tracking branch 'upstream/main' into himarket_202512
learnerjohn Dec 10, 2025
9e6c5be
fix: developer consumer config and docs update
learnerjohn Dec 10, 2025
061ad1e
style: format code with spotless
learnerjohn Dec 10, 2025
96e2a61
merge
learnerjohn Dec 11, 2025
8497489
Merge remote-tracking branch 'upstream/main' into himarket_202512
learnerjohn Dec 11, 2025
1f17d1d
Merge remote-tracking branch 'upstream/main' into himarket_202512
learnerjohn Dec 11, 2025
07c092b
fix: correct branding to HiMarket and fix gateway address port handli…
learnerjohn Dec 12, 2025
8c5ed3c
Merge remote-tracking branch 'upstream/main' into himarket_202512
learnerjohn Dec 12, 2025
ad2caf6
fix: resolve MCP tools and Product config problems, optimize higress …
learnerjohn Dec 15, 2025
08447a1
merge
learnerjohn Dec 17, 2025
dbf19b8
Merge remote-tracking branch 'upstream/main' into himarket_product
learnerjohn Dec 17, 2025
19bee45
fix: extend request timeout to resolve MCP listTools timeout and add …
learnerjohn Dec 21, 2025
9991e4c
fix: Update image source in README
learnerjohn Dec 22, 2025
7f693ec
refactor: standardize code comments and improve consistency
learnerjohn Dec 22, 2025
2dca80b
fix: resolve product icon rendering issue and add missing port displa…
learnerjohn Dec 22, 2025
0a91d1e
merge
learnerjohn Dec 24, 2025
0a4799b
Merge remote-tracking branch 'upstream/main' into himarket_202512
learnerjohn Dec 25, 2025
846d81e
refactor: restructure chat flow to better leverage reasoning and acti…
learnerjohn Jan 4, 2026
3857bc1
Merge remote-tracking branch 'upstream/main' into himarket_202601
learnerjohn Jan 8, 2026
28500cd
fix: resolve ESLint and TypeScript type errors in lint
learnerjohn Jan 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion himarket-bootstrap/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ EXPOSE 8080
# Support reflection in java 17
ENV JAVA_OPTS="--add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED"

ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar --logging.file.name=/app/logs/himarket-server.log"]
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar --spring.profiles.active=prod"]

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.info(new Info().title("开放平台 API").version("1.0.0").description("API 文档描述"));
.info(
new Info()
.title("HiMarket Open API")
.version("1.0.0")
.description("API Document"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,37 +21,43 @@

import java.util.List;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig {
public class WebMvcConfig implements WebMvcConfigurer {

@Bean
public PageableHandlerMethodArgumentResolver pageableResolver() {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
// Create a thread pool for async handling
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(50);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("async-");
executor.initialize();

configurer.setTaskExecutor(executor);
configurer.setDefaultTimeout(30000);
}

@Override
public void addArgumentResolvers(@NotNull List<HandlerMethodArgumentResolver> resolvers) {
// Add pageable resolver
PageableHandlerMethodArgumentResolver resolver =
new PageableHandlerMethodArgumentResolver();
// Default page size is 100
resolver.setFallbackPageable(
PageRequest.of(0, 100, Sort.by(Sort.Direction.DESC, "createAt")));
// Page index starts from 1
resolver.setOneIndexedParameters(true);
return resolver;
}

@Bean
public WebMvcConfigurer webMvcConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addArgumentResolvers(
@NotNull List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(pageableResolver());
}
};
resolvers.add(resolver);
}
}
48 changes: 40 additions & 8 deletions himarket-bootstrap/src/main/resources/logback-spring.xml
Original file line number Diff line number Diff line change
@@ -1,21 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制台输出 -->
<!-- Console appender: enabled for all environments -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %msg%n</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>

<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
<!-- File appender: enabled only in prod profile -->
<springProfile name="prod">
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/app/logs/himarket-server.log</file>

<!-- 项目日志级别 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>

<!-- Rolling policy: by date and size -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/app/logs/archived/himarket-server-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>100MB</maxFileSize> <!-- Max size per file -->
<maxHistory>30</maxHistory> <!-- Keep 30 days -->
<totalSizeCap>3GB</totalSizeCap> <!-- Max total size of archived logs -->
</rollingPolicy>
</appender>
</springProfile>

<!-- Default: console only (local environment) -->
<springProfile name="!prod">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>

<!-- Prod profile: console + file -->
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</springProfile>

<!-- Application log levels -->
<logger name="com.alibaba.himarket" level="INFO"/>
<!-- 框架日志级别调整 -->

<!-- Framework log levels -->
<logger name="org.springframework" level="INFO"/>
<logger name="org.hibernate" level="INFO"/>
<logger name="org.hibernate.SQL" level="INFO"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,8 @@
package com.alibaba.himarket.entity;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.*;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
@Table(
name = "administrator",
Expand All @@ -40,6 +33,11 @@
columnNames = {"username"},
name = "uk_username")
})
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Administrator extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
import com.alibaba.himarket.support.enums.ChatStatus;
import jakarta.persistence.*;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.*;

@Entity
@Table(
Expand All @@ -38,7 +37,10 @@
name = "uk_chat_id")
})
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Chat extends BaseEntity {

@Id
Expand Down Expand Up @@ -74,6 +76,7 @@ public class Chat extends BaseEntity {
*/
@Column(name = "status", length = 32)
@Enumerated(EnumType.STRING)
@Builder.Default
private ChatStatus status = ChatStatus.INIT;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@

import com.alibaba.himarket.support.enums.ChatAttachmentType;
import jakarta.persistence.*;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.*;
import org.hibernate.annotations.ColumnDefault;

@Entity
Expand All @@ -34,7 +33,10 @@
name = "uk_attachment_id")
})
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChatAttachment extends BaseEntity {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
import com.alibaba.himarket.converter.ListJsonConverter;
import jakarta.persistence.*;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.*;

@Entity
@Table(
Expand All @@ -34,7 +33,10 @@
name = "uk_session_id")
})
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChatSession extends BaseEntity {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
package com.alibaba.himarket.entity;

import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.*;

@Entity
@Table(
Expand All @@ -36,6 +35,9 @@
})
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Consumer extends BaseEntity {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import com.alibaba.himarket.support.consumer.HmacConfig;
import com.alibaba.himarket.support.consumer.JwtConfig;
import jakarta.persistence.*;
import lombok.Data;
import lombok.*;

@Entity
@Table(
Expand All @@ -37,6 +37,10 @@
name = "uk_consumer_id")
})
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ConsumerCredential extends BaseEntity {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
@Entity
@Table(name = "consumer_ref")
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
public class ConsumerRef extends BaseEntity {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,8 @@
import com.alibaba.himarket.support.enums.DeveloperAuthType;
import com.alibaba.himarket.support.enums.DeveloperStatus;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.*;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
@Table(
name = "developer",
Expand All @@ -42,6 +35,11 @@
columnNames = {"portalId", "username"},
name = "uk_portal_username")
})
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Developer extends BaseEntity {

@Id
Expand Down
Loading
Loading